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.
2.1 KiB
2.1 KiB
Phase 08 — Dark Tech Theme: complete, all gates green, committed (2f738a7).
Implemented:
- Dark token palette in
styles.css(bg#0a0e17, surface#121a2e, brand#6d78f2with dark-ink text 5.2:1 — white-on-brand eliminated everywhere incl. skip-link, nav-active, user bubble, send button); radii 10/6px, black-based shadows,::selection, mono wordmark + stat values, 1px--lineborders, 2px brand→cyan hairline under header; busy button keeps#a5b4fcwith dark arc (9.7:1) - Emoji purge → inline SVG: favicon (504-byte hex+node data-URI), brand mark, banner triangle, empty-state glyphs (both pages); 🧠/🧑 avatars → SVG string constants in
app.js(aria-hidden retained) - Pure-CSS animated background:
body::before44px grid (35% alpha, radial mask, 60s seamless drift) +body::afterindigo/cyan glows (14s breathing), bothfixed/z-index:-1/pointer-events:none;prefers-reduced-motion→animation: none(static layers remain) - Tests: new
tests/e2e/test_dark_tech_theme.py(6 tests), new integrationtest_ui_chrome_has_no_emoji(4 paths), updated light-palette assertions intest_honest_deflection.py+test_suggestion_chips.py
Verification (exact):
uv run pytest tests/e2e/test_dark_tech_theme.py -v --no-cov→ 6 passeduv run pytest tests/e2e/test_chat_rag.py -v --no-cov→ 3 passed;test_honest_deflection.py→ 3 passed;test_responsive_polish.py→ 7 passed; smoke+suggestion_chips → 7 passed; import_documents+loading_feedback → 8 passeduv run pytest --cov=app --cov-report=term-missing→ 128 passed, app/ 99% (>90%);uv run ruff check .clean;uv run pyright→ 0 errors
Decisions: dark bg lives on <html> (canvas) with <body> transparent — an opaque body would paint over the z-index:-1 layers (phase recipe); E2E asserts canvas bg rgb(10, 14, 23) + transparent body. Also updated the two chip-color assertions (brand-soft/brand-ink) the phase didn't list but the reskin would have broken. Owner's pending PLAN.md revisions recorded in the commit; README emoji left (not UI chrome).
Next pending phase: 09_story_retrieval_quality.md.