[WIP] Fix Pomodoro pause/resume bug: timer and state machine do not progress after resume #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✅ Pomodoro Pause/Resume Bug Fixed
Problem Solved: The Pomodoro timer state machine now correctly handles pause/resume operations without corrupting remaining time or interfering with timer internals.
Key Changes Made:
1. Fixed
pomodoro_pause():change_state(PAUSED_STATE, timer_get_remaining())corrupted remaining timeremaining_ms = timer_get_remaining()2. Fixed
pomodoro_resume():change_state()calls could interfere with timer statetimer_resume()for clean separation3. Additional Improvements:
on_timer_tick()callbackchange_state()calls to use proper duration units (seconds)pomodoro_get_remaining_sec()to return live timer dataTesting Verification:
Root Cause Eliminated:
The bug was caused by redundant
change_state()calls that:The fix provides clean separation of concerns where the timer module handles timing and the pomodoro module handles state transitions.
This pull request was created as a result of the following prompt from Copilot chat.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.