diff --git a/.planning/STATE.md b/.planning/STATE.md index 376a84258..7ce2fc099 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -79,8 +79,26 @@ Last update: 2026-05-09T16:10:00+02:00 ## Phase 5 — UX polish -- [ ] design-review walkthrough top-10 friction points -- [ ] CRITICAL/HIGH triage +- [x] /admin a11y reactivated — `e2e/a11y.spec.ts` now covers /admin, + /admin/system-status, /admin/users (no more `test.fixme`); fixed + duplicate `` no-aria-label, icon-only button-name + violations on /admin/users, empty `
` on the audit-log card +- [x] design-review walkthrough top-10 friction points filed at + `docs/audit/v15-ux-friction.md` +- [x] CRITICAL/HIGH triage — 6 inline fixes; LOW items deferred to + v1.5.1 with backlog in the audit doc +- [x] v1.4.6 deferred polish picked up: + - trend-arrow direction-as-good metric-aware (`directionSentiment` + prop, `up-good`/`up-bad`/`neutral`) + - "Remove saved AI key" button with AlertDialog confirmation + - semantic `--success`/`--warning`/`--info` tokens, migrated + feedback BUG / published badges, medication status, AI section + connection badges (charts untouched) +- [x] +2 inline friction items: dashboard quick-add menu disambiguation + (`Add` collision from phase-3) and `/admin` overview nav landmark +- Result: ok / commits `987ce0d 38f12df 788c8ad 569300e e3a6899 + 5ffe750 65cfb27` — `pnpm typecheck && pnpm lint && pnpm test` green + (97 files / 752 tests) - Detailed report: `.planning/phase-5-report.md` ## Phase 6 — Multi-agent QA (parallel) @@ -116,9 +134,14 @@ Last update: 2026-05-09T16:10:00+02:00 ## Phase 9 — Docs + landing sync -- [ ] healthlog-docs updated to v1.5 -- [ ] healthlog-landing updated -- [ ] both committed + pushed +- [x] healthlog-docs updated to v1.5 — Codex device-code rewrite, new + Backups + Users admin sections, CODEX_MODEL env var, dashboard + perf note, Codex troubleshooting block (7 files) +- [x] healthlog-landing updated — softwareVersion 1.4.6→1.5.0 in + JSON-LD, AI-providers copy mentions one-click device-code flow +- [x] both committed + pushed (docs `95a3523`, landing `0c62bb2`) +- Result: ok / docs `95a3523` + landing `0c62bb2` — Coolify + auto-redeploys docs.healthlog.dev on push - Detailed report: `.planning/phase-9-report.md` ## Phase 10 — Backfill GitHub releases v1.4.7-v1.4.13 diff --git a/.planning/phase-5-report.md b/.planning/phase-5-report.md new file mode 100644 index 000000000..6b2b42e4a --- /dev/null +++ b/.planning/phase-5-report.md @@ -0,0 +1,113 @@ +# Phase 5 — UX polish report + +Status: done. 6 atomic commits + 1 audit doc. `pnpm typecheck`, +`pnpm lint` (0 errors / 12 pre-existing warnings), `pnpm test` +(97 files / 752 tests) all green at the end of the phase. + +## Acceptance criteria + +1. **/admin a11y reactivated** — `e2e/a11y.spec.ts` no longer carries a + `test.fixme` for `/admin`. The audit now covers `/admin` (overview), + `/admin/system-status`, and `/admin/users` as the two representative + sub-routes called for in the Phase 5 spec. Done in commit + `987ce0d fix(a11y): clear axe-core violations on /admin and key + sub-routes`. The single commit also fixes the violations identified + while reading the relevant components: + - duplicate `` in `_shared.tsx` whose toggle had no + accessible name → re-export the canonical one from + `src/components/settings/password-input.tsx` (already aria-labelled + in phase 3), + - icon-only buttons in `user-management-section.tsx` got explicit + `aria-label` and `aria-hidden` icons, + - empty `
` placeholder in the audit-log status card removed. + +2. **Walk-through audit** — written up at + `docs/audit/v15-ux-friction.md`. Top-10 with severity, file + location, and status. Method note explains why this round was static + (Node-25 `Reflect.get` regression on the local machine; CI Node 22 + will exercise the e2e suite). + +3. **Triage** — applied. Three v1.4.6 deferred items closed inline: + - `feat(ui): trend arrow color reflects metric-specific direction + sentiment` (`38f12df`) — `directionSentiment` prop with `up-good` + / `up-bad` / `neutral` buckets; all 11 dashboard tile call sites + wired; new `trend-card.test.tsx` covers all 3 sentiments × 3 + slope directions plus the back-compat default. + - `feat(settings): allow removing saved AI provider key` + (`788c8ad`) — `` confirmation + PATCH null. EN + DE + i18n keys. + - `style(ui): use semantic tokens for mood and feedback indicators` + (`569300e`) — adds `--success` / `--warning` / `--info` to + `globals.css`; dark-mode aliases over the Dracula palette so + visuals stay pixel-identical, light-mode (Alucard) gets the + higher-contrast counterparts. Migrated callers: feedback BUG + badge (→ `destructive`), feedback published-to-GitHub badge, + medication card status, AI section connection badges and + success-toast colour. + +4. **Two extra friction fixes inline** (both <50 LOC): + - `fix(ui): disambiguate dashboard quick-add menu items` + (`e3a6899`) — closes the Phase-3 i18n collision where both + dropdown items rendered the literal "Add". New + `dashboard.quickAddMeasurement` / `dashboard.quickAddMood` keys; + e2e spec rewritten to target by name instead of `.first()`. + - `fix(a11y): label /admin overview quick-jump as a navigation + landmark` (`65cfb27`) — wraps the section list in `