Release notes

BUGFIX

Windows tray stops showing stale quota and speeds up history scans

You can now see your most accurate AI quota right in the Windows tray, with history scans running completely lag-free. Previously, the tray could override a fresh statusLine payload with a stale .claude.json fallback cache if its timestamp seemed newer, displaying outdated or expired limits; the tray now always prioritizes complete live data and rejects malformed values. Additionally, history source scanning is now cached for 30 seconds instead of checking logs on every refresh tick, eliminating UI jank. It is like a bank screen that used to show yesterday's balance on a network glitch and froze because it re-read every transaction on every refresh; it now locks onto real-time balances and updates your statement list on a smart delay.

Original changelog

Original changelogWindows tray stops showing stale quota and speeds up history scans
**The Windows tray no longer falls back to a stale quota cache when the hook already has live data**: a complete statusLine payload from the hook could still be overridden by the `.claude.json` fallback snapshot whenever its cached timestamp looked newer, even though that cache might describe a different or expired session; the tray now always prefers a complete hook payload, and the "complete" check itself is now stricter — malformed non-numeric percentages in the hook payload no longer count as complete, so a broken payload can't silently blank the quota by skipping the cache.
**Windows tray history scanning no longer re-scans every Codex/Claude session log on each refresh tick**: `history_source_scan()` results are now cached for 30 seconds, removing the main source of UI jank in the tray.