Finish unread-update triage offline with queued acknowledgements #351

Closed
opened 2026-08-08 23:29:47 +00:00 by timmy · 0 comments
Owner

Problem

The saved mobile Updates flow can open conversations and queue replies offline, but disables Mark read & next. Operators cannot complete inbox triage until connectivity returns.

Vertical slice

  • Admit an account-bound, deduplicated read acknowledgement durably while offline.
  • Immediately remove the acknowledged update from the saved local queue and open the next saved update.
  • Deliver queued acknowledgements through the existing foreground/background outbox with session CSRF and retry semantics.
  • Reconcile queue state after reload so locally acknowledged updates do not reappear.

Acceptance tests

  1. A saved update can be queued read offline and advances to the next saved update without a network request.
  2. Duplicate taps/reloads produce one queued acknowledgement per notification ID.
  3. Cold offline reload suppresses queued-read updates from the saved queue.
  4. Reconnect/background sync PATCHes the existing read endpoint and clears confirmed work; transient failures remain queued and account/session isolation is preserved.
  5. Mobile control remains enabled and clearly says Queue read & next offline.

Evidence

frontend/my-work.js rejects markReadAndNext when offlineHydrated; frontend/dashboard.js disables the control and tells users to reconnect. Historical issue/PR review found online acknowledgement (#135/#151), saved update conversations (#347), and Today hydration (#349), but no queued offline acknowledgement flow.

## Problem The saved mobile Updates flow can open conversations and queue replies offline, but disables **Mark read & next**. Operators cannot complete inbox triage until connectivity returns. ## Vertical slice - Admit an account-bound, deduplicated read acknowledgement durably while offline. - Immediately remove the acknowledged update from the saved local queue and open the next saved update. - Deliver queued acknowledgements through the existing foreground/background outbox with session CSRF and retry semantics. - Reconcile queue state after reload so locally acknowledged updates do not reappear. ## Acceptance tests 1. A saved update can be queued read offline and advances to the next saved update without a network request. 2. Duplicate taps/reloads produce one queued acknowledgement per notification ID. 3. Cold offline reload suppresses queued-read updates from the saved queue. 4. Reconnect/background sync PATCHes the existing read endpoint and clears confirmed work; transient failures remain queued and account/session isolation is preserved. 5. Mobile control remains enabled and clearly says **Queue read & next** offline. ## Evidence `frontend/my-work.js` rejects `markReadAndNext` when `offlineHydrated`; `frontend/dashboard.js` disables the control and tells users to reconnect. Historical issue/PR review found online acknowledgement (#135/#151), saved update conversations (#347), and Today hydration (#349), but no queued offline acknowledgement flow.
timmy self-assigned this 2026-08-08 23:29:47 +00:00
timmy closed this issue 2026-08-08 23:40:20 +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#351
No description provided.