Convert the two unchecked TODO items into executable phases (Protocol B,
appended after the 72 completed phases):
- 73_hidden_tab_stream (TODO L3): a merely-hidden browser tab must never
stop a generating answer; repro/root-cause decision tree + the pagehide
partial-correlation fix + the hidden-tab E2E pin.
- 74_llm_chat_history (TODO L4, history): client-provided history in
POST /api/chat (stateless, A10) mapped through both the deflected and
grounded agent paths, prior thinking blocks preserved via
reasoning_content, capped oldest-first; mock echo marker + E2E.
- 75_save_doc_full_session (TODO L4, save-as-doc): the Save-as-doc draft
body becomes the full session transcript; edit-out happens in the
existing doc-edit body; multi-turn git-verified E2E.
Owner-confirmed assumptions A1-A7 are recorded as ASSUMPTION lines in the
task files. TODO.md is cleared (items now live in .agents/phases/todo/).
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.