This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+4 more
Summary
AI summaryFixed a CPU/main‑thread leak in the Pomodoro timer causing progressive UI lag during long sessions.
Full changelog
v0.4.4 — Pomodoro lag hotfix
Fixes a CPU/main-thread leak in the menu-bar Pomodoro timer that caused progressive UI lag during long sessions.
What was wrong
The menu-bar status item was accumulating SwiftUI observation trackers over time. Two compounding sources:
- A 1 Hz heartbeat Timer installed a fresh tracker every second on top of the existing one.
- Each fired tracker scheduled another refresh(), which installed yet another tracker — so per tick the work multiplied instead of staying flat.
- On every refresh, button.image was reassigned to a brand-new NSImage(systemSymbolName:), forcing CoreUI to re-rasterize the SF Symbol from the catalog each time.
Result:
After hours of running, the main thread spent the majority of its time inside PomoMenuBarItem.refresh() → CUICatalog glyph resolution. Pressing Space to start the timer made it suddenly visible
because that's when ticks resume and the backlog re-fires.
What changed
- Removed the 1 Hz Timer heartbeat — Observable already drives refreshes on demand.
- Cached the SF Symbol NSImage once at install; no more per-tick re-rasterization.
- Added a single-flight guard so overlapping onChange firings coalesce into one refresh().
Effect
Exactly one observation tracker live at any time, one refresh per state change, no symbol re-resolution. CPU cost of the menu-bar timer is now flat regardless of session length.
Full Changelog: https://github.com/kunkka19xx/look/compare/v0.4.3.2...v0.4.4
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About kunkka19xx/look
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]