Notify operators when background queued work finishes #260

Closed
opened 2026-08-08 04:09:44 +00:00 by rockachopa · 0 comments
Member

Problem

Installed mobile operators can queue issue captures and authored replies for Background Sync, but the service worker discards the flush result. After the app closes, operators receive no success or permanent-failure receipt and must reopen Drafts to discover the outcome.

Slice

Add opt-in, privacy-safe background delivery receipts. Bind the preference to the current account, request notification permission only from a user gesture, emit one deduplicated receipt per queued operation, and route receipt taps to the created issue/conversation or Drafts recovery lane under the dashboard subpath. Unsupported/denied browsers keep existing behavior.

Acceptance

  • Notifications are off by default and permission is requested only after an explicit tap.
  • A successful background delivery emits one privacy-safe receipt per operation; retries do not duplicate it.
  • Success taps open/focus the resulting issue or source conversation; permanent 4xx failures open Drafts.
  • Retryable failures never claim success or permanent failure.
  • Preference is account-bound and cleared on sign-out.
  • Controls remain usable at 320px with 44px targets and no horizontal overflow.
  • Subpath routing, focused tests, full suite, and CI remain green.

Evidence / non-duplication

At origin/main a7afd856, frontend/background-issue-sync.js returns aggregate confirmed/attention, while frontend/service-worker.js calls issueSync.flush() without consuming it and contains no notification click flow. All 133 historical issue titles, six open issues, zero open PRs, releases, and recent commits were checked; none covers background delivery receipts. Closest shipped work #250-#253 added closed-app transport only.

## Problem Installed mobile operators can queue issue captures and authored replies for Background Sync, but the service worker discards the flush result. After the app closes, operators receive no success or permanent-failure receipt and must reopen Drafts to discover the outcome. ## Slice Add opt-in, privacy-safe background delivery receipts. Bind the preference to the current account, request notification permission only from a user gesture, emit one deduplicated receipt per queued operation, and route receipt taps to the created issue/conversation or Drafts recovery lane under the dashboard subpath. Unsupported/denied browsers keep existing behavior. ## Acceptance - Notifications are off by default and permission is requested only after an explicit tap. - A successful background delivery emits one privacy-safe receipt per operation; retries do not duplicate it. - Success taps open/focus the resulting issue or source conversation; permanent 4xx failures open Drafts. - Retryable failures never claim success or permanent failure. - Preference is account-bound and cleared on sign-out. - Controls remain usable at 320px with 44px targets and no horizontal overflow. - Subpath routing, focused tests, full suite, and CI remain green. ## Evidence / non-duplication At origin/main a7afd856, `frontend/background-issue-sync.js` returns aggregate `confirmed`/`attention`, while `frontend/service-worker.js` calls `issueSync.flush()` without consuming it and contains no notification click flow. All 133 historical issue titles, six open issues, zero open PRs, releases, and recent commits were checked; none covers background delivery receipts. Closest shipped work #250-#253 added closed-app transport only.
timmy was assigned by rockachopa 2026-08-08 04:09:44 +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#260
No description provided.