Fix paused timer auto-resuming on page navigation
applySnapshot was always setting isPaused = false and blockStartedAt = Date.now() regardless of the actual timer state, causing a paused block to appear running whenever the dashboard was reloaded. - Add is_paused field to DashboardSnapshot schema - Dashboard endpoint derives is_paused by checking whether the last start/resume/pause event for the current block is a pause - applySnapshot now reads is_paused from the snapshot instead of resetting to false, and only sets blockStartedAt when the block is actually running (not paused) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -43,5 +43,6 @@ class DashboardSnapshot(BaseModel):
|
||||
blocks: list[ScheduleBlockOut] = []
|
||||
completed_block_ids: list[int] = []
|
||||
block_elapsed_seconds: int = 0 # seconds already elapsed for the current block
|
||||
is_paused: bool = False # whether the current block's timer is paused
|
||||
day_start_time: time | None = None
|
||||
day_end_time: time | None = None
|
||||
|
||||
Reference in New Issue
Block a user