Sync personalized mobile queue priority across devices #1464

Closed
opened 2026-08-27 09:02:02 +00:00 by timmy · 0 comments
Owner

Evidence

The adaptive mobile queue order added in #1460 is account-keyed but device-local (frontend/mobile-queue-priority.js). Switching phones or reinstalling the PWA silently restores the default routine, so the operator's Start / Continue recommendation changes across devices. A scan of all 735 historical issue titles and recent commits found no cross-device queue-priority synchronization or revision-conflict flow.

User flow

  1. An authenticated operator reorders routine queues on one phone.
  2. The order remains immediately usable and is synchronized to encrypted, account-scoped server state.
  3. A second device loads the same order.
  4. Concurrent edits surface a conflict instead of silently overwriting either order.
  5. Reset synchronizes the default order.

Delivery and Human Gates remain immutable safety priorities; only routine queue ordering is synchronized.

Acceptance tests

  • Revisioned encrypted storage validates the complete canonical queue set and isolates Gitea identities.
  • Authenticated GET and CSRF-protected PUT return no-store; stale writes return the current snapshot with HTTP 409.
  • Local reorder remains immediate, shows a sync-pending state, and flushes successfully.
  • A remote snapshot hydrates the local recommendation; stale writes preserve the local order and expose explicit use-local/use-remote conflict resolution.
  • Reset persists the canonical default order.
  • Focused behavioral tests and the full suite pass.
## Evidence The adaptive mobile queue order added in #1460 is account-keyed but device-local (`frontend/mobile-queue-priority.js`). Switching phones or reinstalling the PWA silently restores the default routine, so the operator's Start / Continue recommendation changes across devices. A scan of all 735 historical issue titles and recent commits found no cross-device queue-priority synchronization or revision-conflict flow. ## User flow 1. An authenticated operator reorders routine queues on one phone. 2. The order remains immediately usable and is synchronized to encrypted, account-scoped server state. 3. A second device loads the same order. 4. Concurrent edits surface a conflict instead of silently overwriting either order. 5. Reset synchronizes the default order. Delivery and Human Gates remain immutable safety priorities; only routine queue ordering is synchronized. ## Acceptance tests - Revisioned encrypted storage validates the complete canonical queue set and isolates Gitea identities. - Authenticated GET and CSRF-protected PUT return `no-store`; stale writes return the current snapshot with HTTP 409. - Local reorder remains immediate, shows a sync-pending state, and flushes successfully. - A remote snapshot hydrates the local recommendation; stale writes preserve the local order and expose explicit use-local/use-remote conflict resolution. - Reset persists the canonical default order. - Focused behavioral tests and the full suite pass.
timmy self-assigned this 2026-08-27 09:02:02 +00:00
timmy closed this issue 2026-08-27 09:39:52 +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#1464
No description provided.