# Journey result: Offline first-time use

> 2026-06-24 supersession note: the old "not exercisable headless" statement is
> no longer current for the deterministic browser harness.
> `offline-shell-routes` now drives `context.setOffline(true)`, BFF-unreachable
> `/healthz`, and a captive-portal-shaped `200 text/html` health response;
> `offline-write-deepening` drives a browser-offline library collection mutation
> that persists to `oshun.library.collections.v1` and a live Nisaba search
> result save while offline that persists to `oshun.web.library.saved-items.v1`
> with visible local-sync feedback; `first-tara-sit-deepening` drives Tara
> reflection save under `context.setOffline(true)` with a queued localStorage
> entry, `LSyncDot`, and will-sync copy. Background-sync replay, true
> network-only auth/session cache denial, the profile Active devices offline
> refresh denial copy, real-SW uncached deep-route document fallback to the
> cached shell with a durable service-worker marker and visible
> retry/cached-surface controls that hydrate when the client is available, and
> the PWA queued-write prompt are now browser-driven. The Nisaba 24-hour offline
> cache window is now browser-driven too: fresh cached
> `/v1/nisaba/passages/daily` is returned from the real service worker while
> offline, while a >24h entry returns `503 no-store`; the expired-cache
> workspace explanation is covered at component level. The uncached
> lexicon/morphology offline hint is now browser-driven in `nisaba-split-view`;
> natural sync scheduling for the write surfaces remains open in the journey
> doc.

- **Walked**: 2026-05-29 by Claude (Opus 4.8) against commit `bf12b0f7d8`
- **Verdict**: **pass (SW/cache foundation)** — Service Worker registers and the
  runtime caches materialize; full offline toggle is a DevTools-only manual
  branch.
- **Walker**:
  `/tmp/claude-oshun-lt-2-walkthrough/walk.mjs offline-first-time-use`

## Observations

- Prior blocker (CC-BUG-C: SW never registered) is **resolved** — SW reaches
  active and the four runtime caches (`oshun-static-v4`, `oshun-media-v4`,
  `oshun-bff-v4`, `oshun-runtime-v4`) materialize on first visit.
- Home h1 is the proper greeting (prior "Refresh to finish updating" hijack
  resolved). 0 page errors.

## Not exercisable headless

- Toggling the browser offline, reloading, and navigating the cached shell needs
  a manual DevTools walk (Playwright headless can't toggle the network panel).
