2.9 KiB
Fix List — 2026-05-27 UX Audit
Surgical fixes targeting the 5-persona baseline gaps. Per CLAUDE.md §3.3: minimal diffs, no scope creep, no unrelated refactors.
Shipping this iteration
FIX-1 · Filter test/audit workspaces in LoginBriefing [HIGH]
File: apps/web/src/components/os/overlays/LoginBriefing.tsx
Reason: E2E-Audit-* workspaces leaked into the user's real workspace list. Visible to all 5 personas.
Change: filter workspaces by name before .slice(0, 5). Patterns: /^E2E-Audit-\d+$/, /^test-/i, /^smoke-/i, /^audit-/i.
Dim impact: dim 6 (Visual clarity) — passes for all 5 personas (+5 pts).
FIX-2 · Personalize greeting with identity name [HIGH]
File: apps/web/src/components/os/overlays/LoginBriefing.tsx
Reason: "Good afternoon" → "Good afternoon, Marko" surfaces identity layer + provides one delight moment.
Change: call adapter.getIdentity() in the load effect, append , {name} to greeting if name is non-null.
Dim impact: dim 10 (Delight) — passes for all 5 personas (+5 pts).
FIX-3 · Auto-expand chat session sidebar when sessions exist [HIGH]
File: apps/web/src/components/os/apps/ChatApp.tsx
Reason: Sidebar starts collapsed (showSessions=false), New Session button renders at w=0, sessions list invisible. P2/P3/P5 can't start a fresh chat without finding the chevron.
Change: initialize showSessions = sessions && sessions.length > 0, OR add useEffect that opens it when sessions arrive for the first time. Also add aria-label/title to the toggle button.
Dim impact: dim 3 (Task completion) — passes for P2/P3/P5 (+3 pts); dim 1 (First-run clarity) borderline for P1/P4 (+1 pt provisional).
Deferred (next iteration)
FIX-4 · Persona indicator on desktop top bar [MED]
File: likely Desktop.tsx or a sub-TopBar — top bar shows Workspace · model but no persona when chat closed. Add a persona pill with "as: Researcher".
Dim impact: dim 2 for P1/P4 (+2 pts).
FIX-5 · Source citation badges on memory recall [MED]
Files: chat-blocks (TextBlock, BlockRenderer) Reason: P1 needs provenance — "from memory (2026-04-30)" badge on assistant turns that used recall. Risk: non-trivial — needs message metadata flow from agent to UI. Dim impact: dim 9 (Trust signals) — passes for all 5 (+5 pts).
FIX-6 · File attach affordance in chat input [LOW]
File: ChatApp.tsx — there IS drag-drop (line 660-662) + hidden file input (line 666-672), but no visible button. Add a small paperclip button next to the textbox.
Dim impact: dim 3 for P3 (+1 pt).
Out of scope (data / architecture)
- Runtime MCP install in chat (P1-4 found in real conversation) — major feature.
- Cleaning the actual E2E-Audit-* workspaces from the data store — UI filter is the surgical fix.
- Test runners that pollute user state — out of scope for this audit.