Track interruption-safe actual time through Today #577

Closed
opened 2026-08-11 15:51:31 +00:00 by timmy · 0 comments
Owner

Problem

Today planning records estimates, but an active Today session records only queue position. On mobile, operators lose any sense of actual time after app switching, reloads, or interruptions and cannot compare execution with the plan.

Vertical slice

Add an account-bound, device-local timer to the existing Today session checkpoint. Starting/resuming an item accrues elapsed wall-clock time; Previous/Next pauses the old item and starts the selected item; Pause/Resume is available in every sticky session control; reload restores the active timer without double-counting. End session stops timing while retaining per-item elapsed values with the Today plan. Private-device clearing removes the timer through the existing local-storage purge.

Acceptance tests

  • Start creates a running timer for the exact Today identity.
  • Ten minutes backgrounded/reloaded adds ten minutes exactly once.
  • Pause excludes paused wall time; resume continues accumulated time.
  • Previous/Next preserve each item elapsed value and activate only the selected item.
  • Sticky mobile controls display elapsed / estimate (or elapsed alone) and expose a 44px Pause/Resume control.
  • The checkpoint is account-bound and unavailable to a different login.
  • End session stops accumulation without altering the Today plan.

No Gitea time-entry mutation is included in this slice; measured time remains private to the device.

## Problem Today planning records estimates, but an active Today session records only queue position. On mobile, operators lose any sense of actual time after app switching, reloads, or interruptions and cannot compare execution with the plan. ## Vertical slice Add an account-bound, device-local timer to the existing Today session checkpoint. Starting/resuming an item accrues elapsed wall-clock time; Previous/Next pauses the old item and starts the selected item; Pause/Resume is available in every sticky session control; reload restores the active timer without double-counting. End session stops timing while retaining per-item elapsed values with the Today plan. Private-device clearing removes the timer through the existing local-storage purge. ## Acceptance tests - Start creates a running timer for the exact Today identity. - Ten minutes backgrounded/reloaded adds ten minutes exactly once. - Pause excludes paused wall time; resume continues accumulated time. - Previous/Next preserve each item elapsed value and activate only the selected item. - Sticky mobile controls display `elapsed / estimate` (or elapsed alone) and expose a 44px Pause/Resume control. - The checkpoint is account-bound and unavailable to a different login. - End session stops accumulation without altering the Today plan. No Gitea time-entry mutation is included in this slice; measured time remains private to the device.
timmy self-assigned this 2026-08-11 15:51:31 +00:00
timmy closed this issue 2026-08-11 16:17:05 +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#577
No description provided.