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.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
Phase 06 complete and committed (`e5810b0`).
|
||||
|
||||
**Implemented**
|
||||
- `app.js`: single `setUiState(state)` state machine (`idle → thinking → streaming → done|error → idle`) driving typing indicator, button disabled/spinner/label, and `#send-status`; 10s elapsed-seconds aria-label hint; exported `TURN_TIMEOUT_MS = 120000` guard (cleared on first delta); error banner with actionable hint; reduced-motion-aware scrolling; ad-hoc `setBusy` removed
|
||||
- Server: `ChatErrorEvent` schema (exact `{type, detail}` SSE error wire shape) used in all 3 chat error branches; `embed_ms`/`total_ms` added to error-path logs (per-turn line already had both — confirmed)
|
||||
- Mock LLM: additive `POST /__shutdown__` hook; E2E `llm_down` fixture stops the mock and restores a fresh instance for later tests
|
||||
- Tests: SSE error-event serialization (unit + integration), frontend contract unit tests, `tests/e2e/test_loading_feedback.py` (5 tests: slow-think indicator, button machine, live streaming, reduced motion, LLM-down recovery)
|
||||
|
||||
**Results**
|
||||
- `uv run ruff check .` → all checks passed; `uv run pyright` → 0 errors
|
||||
- `uv run pytest --cov=app --cov-report=term-missing` → 123 passed, coverage 99% (>90% gate)
|
||||
- `uv run pytest tests/e2e/test_loading_feedback.py -v --no-cov` → 5 passed in isolation
|
||||
- Regression check: all 5 prior story E2E suites re-run in isolation → 16 passed
|
||||
|
||||
**Decisions**: no CSS changes needed (tokens + reduced-motion fallbacks already met spec); error→idle settles in the turn handler's `finally` so the banner persists while the button always recovers; committed only phase-06 files (`.agent/` file moves are harness-managed; the unrecorded phase-05 move predates this phase).
|
||||
|
||||
**Next pending phase**: `.agent/phases/todo/07_story_responsive_polish.md`
|
||||
Reference in New Issue
Block a user