fix(web): history tab copy — every chat saves automatically, there is no Save button
meta description -> locked (A3) auto-save string (history.html L6). page-sub -> locked (A3) string, the <strong>Save</strong> emphasis retired with the button (L106-109). empty row -> locked (A3) string; colspan=6, hidden, and row id untouched (L163). h1, the anonymous gate section, and history.js are byte-identical — state language verified accurate.
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
Task 01 complete — all criteria verified, repo left green and functional (no commit; task 02 owns the atomic commit).
|
||||
|
||||
**Implemented**
|
||||
- `frontend/history.html`: replaced the three Save-button strings with the locked A3 auto-save copy — meta description, `.page-sub`, and the `#history-empty-row` cell (element, indentation, `colspan="6"`, `hidden` all preserved; markup otherwise byte-identical).
|
||||
- `tests/unit/test_history_page.py`: updated the phase-50 pin that asserted the retired empty-row copy to the locked A3 string (required to keep the suite green).
|
||||
|
||||
**Verification**
|
||||
- `grep -c "pressed <strong>Save</strong>\|press <strong>Save</strong>\|every conversation you saved" frontend/history.html` → 0; each of the three A3 strings present exactly once.
|
||||
- h1, gate section, table caption, `history.js` byte-identical (git diff shows only the 3 HTML strings + the test pin; history.js md5 unchanged).
|
||||
- `uv run pytest --cov=app --cov-report=term-missing` → 1251 passed, TOTAL 99% (>90% gate).
|
||||
- `uv run ruff check .` → all checks passed; `uv run pyright` → 0 errors/warnings.
|
||||
- Remaining case-sensitive "Save" hits are only state strings ("Saved chats" h1/title/meta/caption/aria-label, "Saved conversations are admin-only"); no other page names a Save button (no follow-up material for the commit body).
|
||||
|
||||
**Notes**
|
||||
- `.agent/PLAN.md` does not exist in this repo; the phase's `00_phase.md` carries the binding A3 copy, which was followed exactly.
|
||||
- Working tree also contains harness-side phase-65 move/report artifacts (pre-existing, untouched).
|
||||
|
||||
**Next pending task:** `.agent/phases/todo/66_history_auto_save_copy/02_tests_and_commit.md` (unit pins + E2E `tests/e2e/test_history_copy.py` + regression + commit).
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
........................................................................ [ 5%]
|
||||
........................................................................ [ 11%]
|
||||
........................................................................ [ 17%]
|
||||
........................................................................ [ 23%]
|
||||
........................................................................ [ 28%]
|
||||
........................................................................ [ 34%]
|
||||
........................................................................ [ 40%]
|
||||
........................................................................ [ 46%]
|
||||
........................................................................ [ 51%]
|
||||
........................................................................ [ 57%]
|
||||
........................................................................ [ 63%]
|
||||
........................................................................ [ 69%]
|
||||
........................................................................ [ 74%]
|
||||
........................................................................ [ 80%]
|
||||
........................................................................ [ 86%]
|
||||
........................................................................ [ 92%]
|
||||
........................................................................ [ 97%]
|
||||
........................... [100%]
|
||||
=============================== warnings summary ===============================
|
||||
.venv/lib/python3.13/site-packages/fastapi/testclient.py:1
|
||||
/var/home/ducoterra/Projects/Personal/brain_of_reese/.venv/lib/python3.13/site-packages/fastapi/testclient.py:1: StarletteDeprecationWarning: Using `httpx` with `starlette.testclient` is deprecated; install `httpx2` instead.
|
||||
from starlette.testclient import TestClient as TestClient # noqa
|
||||
|
||||
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
|
||||
================================ tests coverage ================================
|
||||
_______________ coverage: platform linux, python 3.13.13-final-0 _______________
|
||||
|
||||
Name Stmts Miss Cover
|
||||
-----------------------------------------------
|
||||
app/__init__.py 1 0 100%
|
||||
app/api/__init__.py 0 0 100%
|
||||
app/api/auth.py 22 0 100%
|
||||
app/api/chat.py 131 0 100%
|
||||
app/api/chats.py 110 0 100%
|
||||
app/api/config.py 7 0 100%
|
||||
app/api/doc_drafts.py 93 0 100%
|
||||
app/api/docs.py 50 0 100%
|
||||
app/api/git_sources.py 181 0 100%
|
||||
app/api/health.py 10 0 100%
|
||||
app/api/steering.py 42 0 100%
|
||||
app/api/suggestions.py 8 0 100%
|
||||
app/api/sync.py 101 0 100%
|
||||
app/config.py 112 0 100%
|
||||
app/core/__init__.py 0 0 100%
|
||||
app/core/auth.py 20 0 100%
|
||||
app/core/caching.py 108 0 100%
|
||||
app/core/debugging.py 29 2 93%
|
||||
app/core/docs_push.py 39 0 100%
|
||||
app/core/logging.py 13 0 100%
|
||||
app/db.py 21 0 100%
|
||||
app/main.py 52 0 100%
|
||||
app/models.py 86 0 100%
|
||||
app/rag/__init__.py 0 0 100%
|
||||
app/rag/agent.py 78 0 100%
|
||||
app/rag/archive_upload.py 128 0 100%
|
||||
app/rag/chunker.py 206 4 98%
|
||||
app/rag/git_sources.py 14 0 100%
|
||||
app/rag/importer.py 180 3 98%
|
||||
app/rag/llm.py 189 0 100%
|
||||
app/rag/overview.py 71 0 100%
|
||||
app/rag/prompts.py 65 0 100%
|
||||
app/rag/retriever.py 94 3 97%
|
||||
app/rag/sources_meta.py 16 0 100%
|
||||
app/rag/suggestions.py 27 0 100%
|
||||
app/rag/summarizer.py 24 0 100%
|
||||
app/schemas.py 201 0 100%
|
||||
-----------------------------------------------
|
||||
TOTAL 2529 12 99%
|
||||
coverage gate: app/ 99% (>90%) OK
|
||||
All checks passed!
|
||||
0 errors, 0 warnings, 0 informations
|
||||
validation OK
|
||||
Reference in New Issue
Block a user