Version
Known issues
Existing issues
Advanced Preferences
What operating system are you using?
macOS
Operating System Version
macOS 26.6.1 (25G76), Apple Silicon
Reproduction steps
- Configure a work interval longer than 99 minutes, such as 120 minutes.
- Set
showTrayIcon to true and trayIconStyle to time.
- Start or reset the break timer.
- Wait for the periodic tray update.
Reproduces how often: 100% by inspection: minutesRemaining() returns 120, AppIcon.trayIconFileName returns a Number120 filename, and the committed number assets only cover 0 through 99.
Expected Behavior
The macOS menu bar should show the exact remaining minutes, including three-digit values such as 120, and continue counting down without errors.
Actual Behavior
The app requests a tray image such as trayMacMonochromeNumber120Template.png, which does not exist. The resulting tray update can reach the uncaught-exception handler and quit Stretchly.
Relevant log output
No runtime failure was deliberately triggered on the active setup. Static verification showed that the number icon generator and committed assets cover only 0 through 99, while `AppIcon` accepts every non-negative integer.
Preferences
{
"microbreakInterval": 3600000,
"breakInterval": 1,
"microbreak": false,
"break": true,
"showTrayIcon": true,
"trayIconStyle": "time"
}
Additional information
This is narrower than #1419, which requested a more readable native macOS title, and #1369, which reports a missing negative-number icon after unlock. Neither covers valid work intervals above 99 minutes requesting an asset that does not exist.
Proposed narrow fix:
- On macOS, use Electron's native
Tray.setTitle() to display exact remaining minutes, so values such as 120 do not require additional generated image assets.
- Keep the existing image-based countdown on Windows and Linux, but only select number assets for values from 0 through 99; use the normal tray icon above that range.
- Clear the macOS title while paused and during a break.
- Add regression tests for 99, 100, and 120 minutes.
I saw the maintainer's earlier comment in #1419 that a macOS-only implementation was not preferred. Would Tray.setTitle() be acceptable now as a platform-specific fix for exact three-digit values, with the guarded fallback on other platforms?
Related issues: #1194, #1369, #1419, #1741, and #1821.
This report and the proposed patch were prepared with AI assistance. The user requested this behavior and understands the intended change.
Code of Conduct
Version
Known issues
Existing issues
Advanced Preferences
What operating system are you using?
macOS
Operating System Version
macOS 26.6.1 (25G76), Apple Silicon
Reproduction steps
showTrayIcontotrueandtrayIconStyletotime.Reproduces how often: 100% by inspection:
minutesRemaining()returns120,AppIcon.trayIconFileNamereturns aNumber120filename, and the committed number assets only cover 0 through 99.Expected Behavior
The macOS menu bar should show the exact remaining minutes, including three-digit values such as
120, and continue counting down without errors.Actual Behavior
The app requests a tray image such as
trayMacMonochromeNumber120Template.png, which does not exist. The resulting tray update can reach the uncaught-exception handler and quit Stretchly.Relevant log output
Preferences
{ "microbreakInterval": 3600000, "breakInterval": 1, "microbreak": false, "break": true, "showTrayIcon": true, "trayIconStyle": "time" }Additional information
This is narrower than #1419, which requested a more readable native macOS title, and #1369, which reports a missing negative-number icon after unlock. Neither covers valid work intervals above 99 minutes requesting an asset that does not exist.
Proposed narrow fix:
Tray.setTitle()to display exact remaining minutes, so values such as120do not require additional generated image assets.I saw the maintainer's earlier comment in #1419 that a macOS-only implementation was not preferred. Would
Tray.setTitle()be acceptable now as a platform-specific fix for exact three-digit values, with the guarded fallback on other platforms?Related issues: #1194, #1369, #1419, #1741, and #1821.
This report and the proposed patch were prepared with AI assistance. The user requested this behavior and understands the intended change.
Code of Conduct