3.7 KiB
3.7 KiB
UX Audit — Browser Walkthrough 2026-07-04
Method: real browser session (headless Chromium, 1440×900) against dev build
(sidecar :3333 + vite :8080), walked as a first-time user via ?forceWizard=true.
Screenshots in session scratchpad ux-01..ux-16.
The first-run interruption stack (the P0 story)
A new user's first 90 seconds today:
- Onboarding ends with "Let's go!" — but the first task is never sent; it sits prefilled in the composer (broken promise). (F2)
- The instant the workspace loads, a "Your 15-day trial has ended" modal covers everything. (F1)
- Dismissing it immediately reveals a 4-step coach-mark carousel over the welcome panel. (F5)
- Sending the message manually then fails: "API key is invalid or expired" — even though onboarding's model step showed a green "You have a working model — you're ready to go." (F3)
- The error is dead-end small text: no Retry, no link to the settings screen it names. (F4)
Findings
| # | Sev | Finding | Evidence |
|---|---|---|---|
| F1 | P0 | Trial-ended paywall modal re-fires on EVERY route navigation; "Continue with Free" dismissal is not persisted (fired 3× in 10 min: post-onboarding, /, /memory) |
ux-07, ux-11, ux-12 |
| F2 | P0 | Onboarding final step "Let's go!" navigates to chat but does NOT send the chosen first task; text sits in composer | ux-08 |
| F3 | P0 | Model-gate step claims "You have a working model — you're ready to go" from key presence only; first real call 401s. Probe exists server-side (llm-key-probe.ts) but the claim isn't probe-backed |
ux-03 vs ux-10 |
| F4 | P1 | Chat LLM error is inline small text, no Retry button, no link to "Settings > API Keys" it references | ux-10 |
| F5 | P1 | Coach-mark carousel fires immediately on first landing, stacking on top of the paywall dismissal; suppress on first-run landing / show later | ux-08 |
| F6 | P2 | Onboarding polish: (a) disabled "English (US)" pill looks clickable; (b) duplicate Back controls (header ← Back + footer Back); (c) all 8 "help with" chips preselected → zero signal; (d) template picker ignores stated role — no "Recommended" ranking (Strategy Consultant → no consulting-flavored guidance); (e) final step loses Back + step counter; (f) final-step suggestion chips not template/role-tailored (PRD/campaign chips inside Research Hub) | ux-01..06 |
| F7 | P2 | IA naming drift: sidebar "Agents & tasks" → page "Agent Center" (no tasks visible anywhere on it); sidebar "Library" → page/URL "Artifacts"; section label "EVERYTHING ELSE" is filler copy | ux-13, ux-14 |
| F8 | P2 | Sidebar active-state wrong on workspace Overview (highlights "Chat") | ux-15 |
| F9 | P3 | Welcome-back panel on a fresh workspace: "Here's where you left off … across 0 sessions"; should have a first-visit variant | ux-08 |
| F10 | P3 | ⌘K palette: ESC chip collides with close ✕ icon | ux-16 |
| F11 | P3 | Working-step accordion duplicates ("Worked across your memory, web & files" ×2 for one turn) | ux-10 |
| F12 | P3 | Agent Center: single row floats over a vast honeycomb void — needs a richer empty/sparse state (template suggestions) | ux-13 |
What's already good (don't regress)
- Welcome hero: calm, single CTA, on-device trust line.
- Live greeting preview in who-are-you step.
- "Claude Code detected — 495 items — Import my history" one-click harvest.
- Chat working-state transparency (Auto Recall chip, timing).
- ⌘K palette structure (Jump to / Do).
- Trial modal's honest "You keep / You lose" framing (the content, not the timing).
Wave plan
- Wave 1 (this session): F1, F2, F3/F4 (probe + actionable error), F5, F8, F9, F10.
- Wave 2: F6 (onboarding polish set), F7 (IA naming — product naming decision), F11, F12.