Files
brain-of-reese/.agent/reports/15_steering_notes.a1.md
T
ducoterra 4971e2859d
Build and Push Containers / build-and-push-app (push) Successful in 12s
Build and Push Containers / build-and-push-db (push) Successful in 10s
chore(agent): track .agent/ planning tree in git
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.
2026-09-01 10:18:22 -04:00

23 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.