V1 Web PWA · Walk result

Journey result: Onboarding 10 steps

A dated evidence record for V1 Web PWA: observed behavior, current source reconciliation, automation evidence, and explicit proof limits.

verdict: pass· 2026-05-29
4sections2 minread

On this page
  • Source: WALKTHROUGH/journeys/onboarding-ten-steps.md
  • Walked: 2026-05-29 by Claude (Opus 4.8) against commit eff6655269 (+ fix)
  • Verdict: pass — all 10 ?step=<id> deep-links resolve to the right step, no hydration errors, no mid-onboarding session ejection.
  • Walker: /tmp/claude-oshun-lt-2-walkthrough/walk.mjs onboarding-ten-steps

Summary#

A clean reversal of the prior walk's failures. Previously: only 3/10 deep-links switched the heading, the last 3 steps bounced to /welcome?reauth=1, and 8 React #418 hydration errors fired (one per deep-linked step). Now: 0 page errors, 0 persistent failures, all step deep-links render their step. The hydration mismatch was rooted in useBrowserSearchParams reading window.location.search in its initializer on the client's first render — fixed this pass (initialize empty on both server and first client render, sync in the effect). The prior ?reauth=1 ejection (attributed to CC-BUG-D / 401 misdiagnosis) no longer reproduces with the BFF in mock-adapter mode.

2026-06-26 targeted follow-up: onboarding-deepening.spec.ts now covers the Step 4 sensitive-context branch in the real browser wizard. The test opts into wellbeing signals and sensitive traits on Interests, verifies those switches mirror into Memory, confirms they become editable after Approved memory is selected, checks the Ready summary chips, and asserts the real PATCH /v1/preferences payload carries both assistant memory categories.

2026-06-26 targeted follow-up: onboarding-deepening.spec.ts now also covers the no-redirect first-run target resolver in the actual browser Finish flow. The Metis case completes sign-up → wizard → Ready → real preferences PATCH with structured-learning / guided-courses selections and lands on /domains/metis?origin=home. The Tara fallback case completes the same flow with a general practice goal and only Tara selected, then lands on /domains/tara?origin=home.

2026-06-28 targeted follow-up: onboarding-lifecycle.spec.ts now covers the browser-offline Finish branch with the real service worker active. The test seeds a signed-in session, completes onboarding, forces the browser offline for Finish, verifies data-onboarding-finish-queued, inspects the persisted oshun-sync-queue IndexedDB PATCH /v1/preferences action including bearer auth and onboarding preference body, dispatches Chromium Background Sync, reads the BFF preference record back, and confirms the queue drains.

Steps#

  • Step 1 — Sign up to enter /onboarding: pass.
  • Step 2 — Deep-link each of 10 steps (welcome, goals, domains, interests, routine, guide, notifications, accessibility, memory, complete): pass — each switches to the correct step; previously-broken steps (domains, interests, guide, notifications) now resolve; no #418 on any.
  • Step 3 — Walk forward (welcome → goals → domains → …): pass.

Resolved since prior walk#

  • Bug 6-1 (4/10 deep-links didn't switch heading) — resolved (root-cause fix).
  • Bug 6-2 (P0: steps 8-10 bounce to /welcome?reauth=1) — no longer reproduces.
  • Bug 6-3 (hydration errors during navigation) — fixed at useBrowserSearchParams (React #418 eliminated).

Open questions / minor#

  • Bug 6-4 (welcome step shows wizard CTAs + cookie banner simultaneously) is a minor first-impression nit, not re-prioritized here.
  • Live Finish → syncProfilePreferences → handoff to redirectPath is now covered in automated browser flows, including no-redirect first-run targets, online 5xx error affordance, and offline service-worker replay.