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
+22
View File
@@ -0,0 +1,22 @@
Phase 15 complete. Final report:
**Implemented**
- `steering_notes` table (migration 0003, applied) + `SteeringNote` model + `BOR_STEERING_MAX_CHARS` setting
- Stateless CRUD: `GET/POST /api/steering` (trimmed, 1–2000 chars, 201/422), `DELETE /api/steering/{id}` (204/404), newest-first list
- `<tuning>` prompt section (numbered, budget-capped with `[…truncated…]`) in **both** HIGH and DEFLECT prompts, between `<relevance>` and the mode body; zero-note prompts byte-identical to before; per-turn log gains `tuning=N`
- E2E mock echoes first tuning note as ` (tuning: …)` suffix
- UI: Tune button in every completed brain bubble's meta row (≥44px), inline labeled form (maxlength 2000, keep-on-failure error `role=alert`, `.tune-saved` `role=status`), header "Tuning" toggle + count badge + panel (region, newest-first, labeled per-note delete, polite live-region announcer), text-only note rendering (XSS-safe), Phase-08 tokens
- README "Tuning your answers" + config rows; owner's persona edits applied (no "you've got this", no mandated deflection opening) with verbatim test aligned
**Gates**
- `uv run pytest --cov=app --cov-report=term-missing` → 241 passed, **99%** (was 98.9% pre-phase)
- `uv run ruff check .` → clean; `uv run pyright` → 0 errors
- `uv run pytest tests/e2e/test_steering.py -v --no-cov` → 4 passed; regressions `test_chat_rag`/`test_honest_deflection`/`test_retrieval_quality` + all 13 other E2E suites green in isolation
- Committed: `fc0d9a2 feat(rag): steering notes — tune how Brain answers…` (`--no-gpg-sign`)
**Decisions/deviations**
- `.agent/PLAN.md` untouched (harness rule overrides phase step 7) — the PLAN §6 persona revision is recorded in `app/rag/prompts.py` + test docstrings instead; §4/§5/§7.5/§9/roadmap rows still need the harness/owner update
- Owner's persona edits weren't present in the (clean) working tree; I applied exactly the two documented edits
- Unit file named `test_steering_prompts.py` (basename collision with integration `test_steering.py`); killed a stale pre-change uvicorn squatting on port 8123 that initially masked E2E results
**Next pending phase:** none — `todo/` is empty.