Plan: Home v2 UX alignment¶
Normative: home.md. Goal: Home is the only primary surface; other screens stay additional. Implement -> test -> visual QA.
Gaps vs current UI¶
| Req | Gap | Status |
|---|---|---|
| H2/H8/S1 | Agents-only headline | Fixed |
| H7 | Empty " - that is OK." | Fixed |
| H4 support | Needs-help copy | Fixed |
| S2 | Blocked today: N |
Fixed |
| S3 | Home footer doors | Fixed |
| Layout | Compact chrome + History empty without empty drawer | Fixed |
Workstreams¶
A - Home composition (frontend)¶
- Rewrite status copy matrix to v2 (incl. agents -> "Protection isn't set for everyday browsing").
- Empty story: Nothing blocked yet - that is OK.
- Footer: muted text links Settings - For AI tools.
- Quiet line:
Blocked today: Nwhen N > 0 (hide when 0 to stay calm). - Wire
onOpenSettings/onOpenAgentsfrom App. - CSS: footer links, keep one-composition hero (no widget grid).
B - Snapshot field (Go)¶
- Add
blocked_today inttoUISnapshot(count audit denials with today's date). - Unit test for counter helper.
- Expose in frontend
UISnapshottype.
C - Additional screens (light polish only)¶
- History empty already calm - leave.
- Top bar on Home: keep Protected pill; no new chrome clutter.
- Do not re-promote My agents / Jump.
D - Docs + preview¶
- Update
ux-preview-home.htmlfor all 4 states + footer + blocked today. - Tracker note: Home v2 implement Done.
E - Verify¶
npm run buildgo test ./internal/desktop/- Visual: Vite preview snapshots (protected / off / last-block / needs-help / agents)
Out of scope¶
HITL timing, tray expansion, Pi-hole charts, commit/PR.
Status¶
| Stream | Status |
|---|---|
| A Home composition | Done |
| B blocked_today | Done |
| C additional polish | Done (no re-promote) |
| D preview/docs | Done |
| E verify | Done - npm run build, go test ./internal/desktop, visual preview states |
| F compact layout pass | Done - narrower nav, quieter topbar, tighter Home/cards/History/drawer, mobile nav fix |
| G layout bugfix | Done - History empty without drawer; Problems healthy CTAs; denser card type |
| H re-audit polish | Done - Profiles empty card; shorter Settings find; History Refresh kept (list reload) |