Keep My Work available offline with a private read-only snapshot #228

Closed
opened 2026-08-07 21:07:57 +00:00 by timmy · 0 comments
Owner

Product gap

The installable dashboard currently caches only its application shell. A cold offline launch renders no My Work data even after a successful online refresh, so the installed app is useful only for draft recovery.

Vertical slice

Add an explicit opt-in that persists a minimized, versioned My Work snapshot after healthy live refreshes and hydrates it read-only on cold offline launch. Store queue-card metadata only; never bodies, comments, diffs, credentials, or whole API responses. Show the capture time, disable network-only actions, support clear/opt-out, reject expired/malformed/wrong-user data, and replace the snapshot after reconnection. Keep /api/ network-only in the service worker.

Acceptance criteria

  • Opted-in users can cold-launch offline and see saved My Work cards and counts with an honest saved-at status.
  • Persistent data is schema-minimized, versioned, user-bound, and expires; malformed/wrong-user records are ignored.
  • Offline network mutations and pagination remain unavailable; drafts still work.
  • Clear/opt-out deletes saved work data.
  • Reconnection refreshes live data and atomically replaces the saved snapshot.
  • Service worker continues to exclude API and mutation caching.
  • Behavioral focused tests and the full suite pass.

No historical issue or recent commit covers device-side read-only My Work persistence; #226 intentionally shipped shell-only offline support.

## Product gap The installable dashboard currently caches only its application shell. A cold offline launch renders no My Work data even after a successful online refresh, so the installed app is useful only for draft recovery. ## Vertical slice Add an explicit opt-in that persists a minimized, versioned My Work snapshot after healthy live refreshes and hydrates it read-only on cold offline launch. Store queue-card metadata only; never bodies, comments, diffs, credentials, or whole API responses. Show the capture time, disable network-only actions, support clear/opt-out, reject expired/malformed/wrong-user data, and replace the snapshot after reconnection. Keep `/api/` network-only in the service worker. ## Acceptance criteria - Opted-in users can cold-launch offline and see saved My Work cards and counts with an honest saved-at status. - Persistent data is schema-minimized, versioned, user-bound, and expires; malformed/wrong-user records are ignored. - Offline network mutations and pagination remain unavailable; drafts still work. - Clear/opt-out deletes saved work data. - Reconnection refreshes live data and atomically replaces the saved snapshot. - Service worker continues to exclude API and mutation caching. - Behavioral focused tests and the full suite pass. No historical issue or recent commit covers device-side read-only My Work persistence; #226 intentionally shipped shell-only offline support.
timmy self-assigned this 2026-08-07 21:07:57 +00:00
timmy closed this issue 2026-08-07 21:15:32 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#228
No description provided.