Sync completed Filed acknowledgements across devices #880

Closed
opened 2026-08-15 08:20:50 +00:00 by timmy · 0 comments
Owner

User problem

Completed Filed outcomes acknowledged on one signed-in device reappear on another because the receipt exists only in localStorage. This makes operators re-review delegated work and breaks the otherwise cross-device My Work flow.

Vertical slice

  • Add an account-scoped, bounded SQLite acknowledgement ledger.
  • Add authenticated, non-cacheable snapshot and merge endpoints.
  • Keep Acknowledge & next local-first, then synchronize pending receipts.
  • Merge server receipts before rendering Filed; a newer upstream updated_at must re-open review.
  • Preserve local acknowledgement and report sync pending when offline/server unavailable.

Acceptance

  • Same-account device B suppresses the exact revision acknowledged on device A.
  • Different accounts remain isolated.
  • Concurrent acknowledgement batches union without lost updates.
  • Older receipts cannot replace newer revisions; an upstream update reappears.
  • Storage and request batches are bounded to 200 valid records.
  • Store I/O does not block the async event loop and API responses are Cache-Control: no-store.
  • Focused behavioral tests and full suite pass.

This extends #878, which intentionally shipped device-local persistence only; no historical issue or recent commit implements cross-device Filed acknowledgement sync.

## User problem Completed Filed outcomes acknowledged on one signed-in device reappear on another because the receipt exists only in localStorage. This makes operators re-review delegated work and breaks the otherwise cross-device My Work flow. ## Vertical slice - Add an account-scoped, bounded SQLite acknowledgement ledger. - Add authenticated, non-cacheable snapshot and merge endpoints. - Keep Acknowledge & next local-first, then synchronize pending receipts. - Merge server receipts before rendering Filed; a newer upstream `updated_at` must re-open review. - Preserve local acknowledgement and report sync pending when offline/server unavailable. ## Acceptance - Same-account device B suppresses the exact revision acknowledged on device A. - Different accounts remain isolated. - Concurrent acknowledgement batches union without lost updates. - Older receipts cannot replace newer revisions; an upstream update reappears. - Storage and request batches are bounded to 200 valid records. - Store I/O does not block the async event loop and API responses are `Cache-Control: no-store`. - Focused behavioral tests and full suite pass. This extends #878, which intentionally shipped device-local persistence only; no historical issue or recent commit implements cross-device Filed acknowledgement sync.
timmy self-assigned this 2026-08-15 08:20:50 +00:00
timmy closed this issue 2026-08-15 08:31:06 +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#880
No description provided.