Defer unread updates until tomorrow from Web Push #563

Closed
opened 2026-08-11 10:20:13 +00:00 by timmy · 0 comments
Owner

Evidence

Web Push currently supports opening an unread update or marking it read, while the existing cross-device Later workflow already supports deferring work until a timestamp. Mobile operators must still launch and hydrate the dashboard to preserve a notification for tomorrow. No historical issue title or recent commit implements a direct Web Push-to-Later action.

User flow

Add a privacy-safe Tomorrow action beside Mark read. The service worker sends only the validated notification identity; the server resolves the canonical update identity and records a 09:00 next-local-day deferral without marking the update read. Failure opens the existing update reader.

Acceptance tests

  • A valid update push renders Mark read and Tomorrow without private repository/title content.
  • Tomorrow validates route/tag/ID agreement, obtains session-bound CSRF, and performs one deadline-bounded mutation.
  • The server resolves the unread notification to a canonical Later item and persists an idempotent deferral.
  • Success closes the notification without opening the app or marking it read.
  • Invalid identity, expired session, timeout, or upstream/store failure records no false success and opens the existing reader.
  • Focused tests and the full suite pass.
## Evidence Web Push currently supports opening an unread update or marking it read, while the existing cross-device Later workflow already supports deferring work until a timestamp. Mobile operators must still launch and hydrate the dashboard to preserve a notification for tomorrow. No historical issue title or recent commit implements a direct Web Push-to-Later action. ## User flow Add a privacy-safe **Tomorrow** action beside **Mark read**. The service worker sends only the validated notification identity; the server resolves the canonical update identity and records a 09:00 next-local-day deferral without marking the update read. Failure opens the existing update reader. ## Acceptance tests - A valid update push renders Mark read and Tomorrow without private repository/title content. - Tomorrow validates route/tag/ID agreement, obtains session-bound CSRF, and performs one deadline-bounded mutation. - The server resolves the unread notification to a canonical Later item and persists an idempotent deferral. - Success closes the notification without opening the app or marking it read. - Invalid identity, expired session, timeout, or upstream/store failure records no false success and opens the existing reader. - Focused tests and the full suite pass.
timmy closed this issue 2026-08-11 10:27:57 +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#563
No description provided.