When a coworker will be at your desk for a few minutes, fully disarming and remembering to re-arm is easy to forget. A temporary disarm would help.
What to do
- Add a menu item in
Sources/BustedApp/MenuBarController.swift, next to Arm / Disarm, e.g. "Disarm for 15 minutes".
- When chosen, disarm now and schedule a re-arm after the interval (a
Timer or Task sleep on the main actor).
- Manually arming or disarming should cancel the pending re-arm.
Acceptance criteria
- Choosing the option disarms immediately and re-arms automatically after the interval.
- Manually toggling arm/disarm cancels the scheduled re-arm.
- The menu bar reflects the current state (the existing
refreshTitle() already handles this).
Pointers
- Arm and disarm go through
wiring.arm(source:) and wiring.disarm(source:) in Sources/BustedApp/AppWiring.swift.
- Keep the interval a constant for now; making it configurable can be a follow-up.
When a coworker will be at your desk for a few minutes, fully disarming and remembering to re-arm is easy to forget. A temporary disarm would help.
What to do
Sources/BustedApp/MenuBarController.swift, next to Arm / Disarm, e.g. "Disarm for 15 minutes".TimerorTasksleep on the main actor).Acceptance criteria
refreshTitle()already handles this).Pointers
wiring.arm(source:)andwiring.disarm(source:)inSources/BustedApp/AppWiring.swift.