Queue authored conversation messages during connectivity failures #234

Closed
opened 2026-08-07 22:08:09 +00:00 by rockachopa · 0 comments
Member

Problem

Mobile users can capture new issues offline, but issue comments, pull-request comments, and unread-update replies remain ordinary drafts after network failures and must be reopened and retried manually. The existing endpoints already support stable Idempotency-Key replay.

Product slice

Add one bounded durable authored-message outbox for issue comments, pull-request comments, and notification replies. Queue only connectivity/5xx failures, preserve stable operation IDs, flush sequentially on reconnect, expose queued/needs-attention messages in Drafts with Send now and Discard, and never queue reviews, merges, closures, or planning mutations.

Acceptance tests

  • A failed issue comment, PR comment, or update reply is durably queued with target, body, timestamp, and stable operation ID.
  • Reconnect sends queued messages sequentially to the correct endpoint with the original Idempotency-Key and removes only confirmed messages.
  • Network/5xx failures stay queued and stop the pass; 4xx failures become Needs attention without blocking later valid messages.
  • Concurrent flush/retry is single-flight.
  • Drafts exposes queue status and controls; service worker caches the module but never intercepts API mutations.
  • Focused behavioral tests and the complete suite pass.

This does not duplicate #232 (new issue capture only), #211 (draft discovery only), or #185/#201 (manual retry idempotency).

## Problem Mobile users can capture new issues offline, but issue comments, pull-request comments, and unread-update replies remain ordinary drafts after network failures and must be reopened and retried manually. The existing endpoints already support stable Idempotency-Key replay. ## Product slice Add one bounded durable authored-message outbox for issue comments, pull-request comments, and notification replies. Queue only connectivity/5xx failures, preserve stable operation IDs, flush sequentially on reconnect, expose queued/needs-attention messages in Drafts with Send now and Discard, and never queue reviews, merges, closures, or planning mutations. ## Acceptance tests - A failed issue comment, PR comment, or update reply is durably queued with target, body, timestamp, and stable operation ID. - Reconnect sends queued messages sequentially to the correct endpoint with the original Idempotency-Key and removes only confirmed messages. - Network/5xx failures stay queued and stop the pass; 4xx failures become Needs attention without blocking later valid messages. - Concurrent flush/retry is single-flight. - Drafts exposes queue status and controls; service worker caches the module but never intercepts API mutations. - Focused behavioral tests and the complete suite pass. This does not duplicate #232 (new issue capture only), #211 (draft discovery only), or #185/#201 (manual retry idempotency).
timmy was assigned by rockachopa 2026-08-07 22:08:09 +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#234
No description provided.