chore(agent): track .agent/ planning tree in git
Build and Push Containers / build-and-push-app (push) Successful in 12s
Build and Push Containers / build-and-push-db (push) Successful in 10s

Remove the blanket .agent/ gitignore so the phase roadmap, user
stories, reports, and PLAN.md are versioned with the code. Only
runtime artifacts (.agent/phase-sessions/, .agent/pipeline.log)
remain ignored. Update AGENTS.md git protocol rule to match.
This commit is contained in:
2026-09-01 10:18:22 -04:00
parent 5fa620fde5
commit 4971e2859d
818 changed files with 23964 additions and 4 deletions
+11
View File
@@ -0,0 +1,11 @@
Phase 03 complete. Report:
**Phase 03 — Story: Chat RAG Answer (happy path) — COMPLETE** (`396e4d4`)
- Implemented: `app/rag/retriever.py` (cosine top-k → parent-doc selection, dedupe, 20k-char cap w/ `[…truncated…]`), `app/rag/prompts.py` (locked persona + HIGH/DEFLECT builders), `LLMClient.chat_stream` (+`LLMError`), `POST /api/chat` SSE (delta*→done, query_log row, PLAN §9 log line, error event mid-stream, 503 JSON if DB down), UI SSE reader w/ live streaming, source chips→/sources.html, role=alert error banner, always-recovers Send state.
- Tests: unit (retriever/prompts/SSE/llm) + integration (real Postgres turn, log row, error/503 + mid-turn failure paths) + new Playwright story suite (grounded answer, query_log, raw SSE shape); smoke placeholder test replaced with the real never-stale contract.
- `uv run pytest --cov=app --cov-report=term-missing` → **95 passed, TOTAL 98%** (chat/llm/prompts/retriever 100%).
- `uv run pytest tests/e2e/test_chat_rag.py -v --no-cov` (isolated) → **3 passed**; `test_smoke.py` → 3 passed; `test_import_documents.py` (regression) → 3 passed.
- `uv run ruff check .` → clean; `uv run pyright` → 0 errors.
- Fixed defect (scaffold): `.kb-banner` `display:flex` overrode the `hidden` attribute → banner always visible; added `[hidden]{display:none!important}` + regression assertion. UI verified at 1280px/375px + XSS-escape proof.
- Deviations: happy-path scope per phase file — LOW-threshold deflection/amber mode intentionally deferred to phase 04 (HIGH/DEFLECT builders + `deflected` plumbing ready).
- Next pending: `.agent/phases/todo/04_story_honest_deflection.md`.