Continue a timed Today break across devices #1038

Closed
opened 2026-08-17 20:01:32 +00:00 by timmy · 0 comments
Owner

Evidence

Timed breaks are stored only in the originating browser (frontend/today-timer.js), while the durable Today-session contract (src/today_store.py, frontend/today-session-sync.js) publishes only identity, elapsed time, and running state. A paused break therefore disappears on another signed-in device and is rendered as a generic pause. All 521 historical issue titles and the latest 300 main commits were checked; #1036 added only the local timed-break flow.

User flow

Start a timed break on device A, see “On break until …” on device B, then atomically resume the same Today item on B without counting break time or creating concurrent timers.

Acceptance

  • Persist a bounded absolute break deadline in the revisioned account-scoped Today session.
  • A second device offers the paused break with its end time and can claim/resume it atomically.
  • A stale simultaneous claim loses through the existing revision conflict contract.
  • Reload/expiry never restarts elapsed time; resume remains explicit.
  • Legacy rows remain valid non-break sessions.
  • Add behavioral store, API, timer, sync, and mobile flow coverage.

Implementation must use strict RED/GREEN TDD and preserve privacy-safe UI copy.

## Evidence Timed breaks are stored only in the originating browser (`frontend/today-timer.js`), while the durable Today-session contract (`src/today_store.py`, `frontend/today-session-sync.js`) publishes only identity, elapsed time, and running state. A paused break therefore disappears on another signed-in device and is rendered as a generic pause. All 521 historical issue titles and the latest 300 main commits were checked; #1036 added only the local timed-break flow. ## User flow Start a timed break on device A, see “On break until …” on device B, then atomically resume the same Today item on B without counting break time or creating concurrent timers. ## Acceptance - Persist a bounded absolute break deadline in the revisioned account-scoped Today session. - A second device offers the paused break with its end time and can claim/resume it atomically. - A stale simultaneous claim loses through the existing revision conflict contract. - Reload/expiry never restarts elapsed time; resume remains explicit. - Legacy rows remain valid non-break sessions. - Add behavioral store, API, timer, sync, and mobile flow coverage. Implementation must use strict RED/GREEN TDD and preserve privacy-safe UI copy.
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#1038
No description provided.