Release 2.0.1: ship the tray memory fix that 2.0.0 never got - #21
Merged
Merged
Conversation
Refs #20. The leak in #20 (Tomatick hit 6.13 GB, macOS warned) is the same bug as #15: it was already fixed on main by #16 (autorelease pool around timer-driven tray updates), merged 2026-09-14 -- but the installed /Applications/Tomatick.app is still built from the v2.0.0 tag (2026-09-10), four days before that fix landed, so Michal has been running the pre-fix binary the whole time. No new code leak was found beyond what #16 already closes; this branch is origin/main plus a guard. #16 didn't leave a repeatable check behind, so add scripts/measure-tray-memory.sh: builds the app, runs it idle for 10 minutes, and samples footprint every 30s, with the pass/fail threshold taken from #16's own before/after numbers (pre-fix ~28 KB/s idle vs post-fix ~0.08 MB/10 min). It has to run by hand on a Mac GUI session, so it isn't wired into CI. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VjrZpzfYSjYw3sW4XibcCd
2.0.0 (tagged 2026-09-10) predates #16 (merged 2026-09-14), so every installed copy still leaks about 28 KB/s while idle. Refs #20. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VjrZpzfYSjYw3sW4XibcCd
tgwab-claude
enabled auto-merge (squash)
September 23, 2026 01:21
MichalAFerber
approved these changes
Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Refs #20. #20 closes once 2.0.1 is installed on mac-mini-desktop and measured flat.
What happened
The leak in #20 was already fixed, but the fix was never released.
internal/ui/pool_darwin.gowraps the per-second tray callbacks in an autorelease pool, andshowIcon()stops re-setting an unchanged icon. Stop the menu-bar icon leak (about 28 KB/s while idle) #16's own measurement: idle growth went from about 28 KB/s to flat.pool_darwin.gois absent at that tag).mainstill says2.0.0.This PR
internal/version/version.goandcmd/tomatick/FyneApp.toml. The release job'smake version-checkenforces tag == constant.scripts/measure-tray-memory.sh: a manual, darwin-only regression guard. It builds, runs idle for 10 minutes, samplesfootprintevery 30 seconds, and applies Stop the menu-bar icon leak (about 28 KB/s while idle) #16's pass and fail thresholds. Stop the menu-bar icon leak (about 28 KB/s while idle) #16 left no repeatable check behind, and this can't run in CI because it needs a GUI session.After merge (devops, on Michal's go)
v2.0.1;release.ymlbuilds and publishes, includingTomatick-2.0.1-macos-arm64.zip./Applications/Tomatick.appwith 2.0.1. The old bundle is kept at~/Applications/_rollback/Tomatick-2.0.0.appfor rollback (not/tmp, which the Mac clears on reboot). Config and history in~/Library/Application Support/Tomatickare untouched. Relaunch it through theus.tomatickLaunchAgent.Not verified
The running-timer case at scale (#16 measured idle only). Go isn't installed on pve-claude or the Mac, so CI runs the tests here.
Diagnosis by a dev subagent; reviewed and verified by devops (tag contents, merge dates, and the installed binary checked directly).
🤖 Generated with Claude Code
https://claude.ai/code/session_01VjrZpzfYSjYw3sW4XibcCd