Standardize on the .agents/ directory (shared with project skills): phases/, user_stories/, reports/, screenshots/, validate.sh, and phase-sessions/ + pipeline.log all move to .agents/ (git mv preserves history; runtime artifacts move alongside). Updates every reference in AGENTS.md, README.md, .gitignore, app docstrings, and test story headers. Historical KB content in data/ and the runtime pipeline.log transcript are left untouched.
1.5 KiB
1.5 KiB
Working tree clean, phase committed. Final report:
Phase 14 — Chat persistence: complete
app.js: conversation model + save/restore/clear onbor.chat.v1(raw text only, re-rendered through escape-first markdown; user saved on send, brain ondonewith sources/deflected/suggestions; 700k-char budget dropping oldest first; every localStorage access try/catch'd; failed turns keep the question)#new-chat-btnghost pill in chat header (icon-only ≤640px, aria-label, ≥44px), clears key + list, restores empty state, confirms via#send-statuslive region; ignored mid-turnindex.html/styles.css: button + Phase-08 tokens, header layout viamargin-left:auto(Sources header unchanged)- Tests: new
tests/e2e/test_chat_persistence.py(4 story-mapped tests) +tests/unit/test_chat_persistence.py(8 contract pins incl. structural try/catch check)
Results
uv run pytest tests/unit tests/integration→ 211 passeduv run pytest --cov=app→ 99% (gate >90%)uv run ruff check .+uv run pyright→ clean, 0 errors- Story E2E
tests/e2e/test_chat_persistence.py -v --no-cov→ 4 passed; all 15 E2E suites green in isolation (incl. regressions: chat_rag 3, suggestion_chips 4, loading_feedback 5, header_consistency 3, responsive_polish 7 — no 360px overflow) - Commit
19df7df(--no-gpg-sign)
Deviations: phase step 4 asks for PLAN §7.5/§7.4 notes, but harness rules forbid editing .agents/PLAN.md — left for the harness.
Next pending phase: 15_steering_notes.md