Skip to content

[Bug]: Time-to-break tray mode requests missing number icons above 99 minutes #1858

Description

@Winfred666

Version

  • I'm using version 1.22.1

Known issues

  • I've checked Known issues

Existing issues

  • I've checked Existing issues

Advanced Preferences

  • I've checked Advanced Preferences

What operating system are you using?

macOS

Operating System Version

macOS 26.6.1 (25G76), Apple Silicon

Reproduction steps

  1. Configure a work interval longer than 99 minutes, such as 120 minutes.
  2. Set showTrayIcon to true and trayIconStyle to time.
  3. Start or reset the break timer.
  4. 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

  • I agree to follow this project's Code of Conduct

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions