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.
1.8 KiB
1.8 KiB
Phase 05 complete and committed (2364e1e).
Implemented
app.js: extracted sharedrenderChips(container, items, {onSelect})+submitSuggestion()(fill → focus →composer.requestSubmit()); onboarding chips and "Maybe try" deflection chips now both one-tap-submit. Mobile CSS verified (existing tokens, no duplication); defaults confirmed against real Homelab/Deployments topics..env.example: documentedBOR_SUGGESTIONS(JSON list; pydantic-settings override verified).- Tests: 3 new unit (default ≥3, JSON env override, malformed-JSON fails loudly), 1 new integration (endpoint honors
BOR_SUGGESTIONSvia fresh app), new E2Etests/e2e/test_suggestion_chips.py(render ≥3 from API, click submits, Tab+Enter, 375px scroll row). - Updated Phase 04 E2E
test_deflection_suggestions_are_clickableto the new one-tap contract (shared component behavior change).
Gates (all green)
uv run pytest→ 114 passeduv run pytest --cov=app --cov-report=term-missing→ TOTAL 99% (>90%)uv run ruff check .→ clean;uv run pyright→ 0 errorsuv run pytest tests/e2e/test_suggestion_chips.py -v --no-cov→ 4 passed in isolation; regression: honest_deflection/chat_rag/import_documents/smoke all 3 passed- UI pass: 1280px + 375px screenshots verified (centered wrap vs single scroll row, 999px pills ≥44px, brand-soft/brand-ink ≈8.8:1, hover/active, "Suggested questions" group, chips gone after first message)
Decisions: kept the story's 4 default suggestions (all map to real docs: kubernetes/k3s, Borg backup, Deployments, per-service inventory); deflection group keeps aria-label="Maybe try"/role=list for Phase 04 compatibility; commit also records the harness's 04→complete/ move.
Next pending phase: 06_story_loading_feedback.md