Files
brain-of-reese/.agents/reports/14_chat_persistence.a1.md
ducoterra dbf2af26c6 refactor(agents): migrate .agent/ planning tree to .agents/
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.
2026-09-05 10:57:07 -04:00

18 lines
1.5 KiB
Markdown

Working tree clean, phase committed. Final report:
**Phase 14 — Chat persistence: complete**
- `app.js`: conversation model + save/restore/clear on `bor.chat.v1` (raw text only, re-rendered through escape-first markdown; user saved on send, brain on `done` with sources/deflected/suggestions; 700k-char budget dropping oldest first; every localStorage access try/catch'd; failed turns keep the question)
- `#new-chat-btn` ghost pill in chat header (icon-only ≤640px, aria-label, ≥44px), clears key + list, restores empty state, confirms via `#send-status` live region; ignored mid-turn
- `index.html`/`styles.css`: button + Phase-08 tokens, header layout via `margin-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 passed
- `uv 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`