Releases: aqua5230/usage
Releases · aqua5230/usage
Release list
v0.28.15
Changed
- Auto-start is now one shared switch for Claude and Antigravity. It starts both keepers together; users who previously enabled either individual switch are automatically treated as having both enabled.
Fixed
- Antigravity auto-start never fired, and the card showed a phantom countdown. The Antigravity quota API reports a sliding reset time (always "in ~5 hours") while a 5-hour window is still untouched at 100% remaining. The 0.28.14 auto-start gate treated any reported countdown as "a window is already running", so it never pinged; it now treats 100% remaining itself as "no active window" (the 5-hour self-throttle still applies). The card likewise stopped rendering that placeholder as a live countdown — at 100% remaining it now shows "Quota full" until a real window starts.
v0.28.14
Added
- Antigravity can now auto-start its next 5-hour session. A new opt-in menu toggle watches fresh, non-mock agy quota results and, when the selected model group's session is fully reset with no countdown running, dispatches one background
agy -p ok --model 'Gemini 3.5 Flash (Low)'. It is off by default, self-throttles for five hours, uses only the local agy CLI, and shows the same Mac sleep warning as the Claude window keeper when enabled.
v0.28.13
Fixed
- Auto-start 5-hour Session now actually fires: the
claudeCLI resolution list was missing~/.local/bin/claude(where the native installer puts it), so inside the.appbundle's narrowPATHthe ping silently found nothing to run and gave up. Also hardened against a false "expired" read: the reset-time check now only trusts the live statusLine hook data source (fallback sources can default a missingresets_atto parse time, which the next refresh would misread as already-expired) and requires the expiry to be at least 2 minutes old before firing, filtering out that false positive without meaningfully delaying a real away-from-keyboard ping. Dialog copy from 0.28.12 also simplified — leads with "pauses on sleep, resumes on wake, nothing to manage" and routes the sleep-setting instructions through System Settings search (the exact pane/wording varies by Mac model and macOS version) with a fallback suggestion to ask Claude Code to walk through it.
v0.28.12
Added
- New opt-in menu toggle: Auto-start 5-hour Session. When enabled, usage detects that your Claude 5-hour quota window has just reset and no session is currently running, then fires a single
claude -p ok --model haikuin the background to immediately start the next window — useful if you're stepping away and want the next 5 hours counting down before you're back. Off by default; sends at most once per 5-hour window (self-throttled), never touches the Anthropic quota API, and silently no-ops if theclaudeCLI can't be found. Enabling it shows a one-time dialog explaining that it needs usage (and the Mac) to stay awake to fire — closing the lid always sleeps the Mac regardless of this setting.
v0.28.11
Changed
- The HTML usage report looks less like a template and reads more cleanly: gold is no longer a blanket accent — it's now reserved for four focal points (headline tail, primary KPI number, the Wrapped kicker badge, the terminal cursor), with the contribution heatmap and donut chart moved to a cohesive teal/mauve palette instead. Fixed three alignment bugs: the KPI card grid now keeps a consistent rhythm across all six cards, the Wrapped section's total-token figure no longer overlaps the phoenix illustration at high digit counts, and the trailing metric card in that section no longer orphans onto its own row. Also cleans up several small "obviously AI-generated" tells:
transition: allrules now list only the properties that actually animate, card/section borders read at a clearer contrast in both color schemes, disabled/active button states are now styled instead of falling back to defaults, motion respectsprefers-reduced-motion, and the three share-dialog emoji icons are now matched-stroke SVGs.
v0.28.10
Fixed
- Switching panels no longer stalls the UI with a beachball: cold-rebuilding a panel view (evicted from the small LRU cache) reread and reassembled its HTML from disk every time — now the assembled markup is cached per panel and only built once. Selecting a panel no longer forces
NSUserDefaults.synchronize()on the main thread. Unchanged panel state is no longer redundantly re-serialized and re-injected when a switch triggers two refresh passes back to back. Evicting an old cached panel view from the LRU cache is now deferred off the click's run-loop turn instead of running inline with the new panel's setup.
v0.28.9
Fixed
- The Claude Code statusLine hook now works end-to-end on Windows: four fixes land together.
setup_hooknow prefers an all-ASCIIpython.exepath (falling back to system PATH when the venv path isn't ASCII), since Claude Code on Windows fails to spawn statusLine commands whose path contains non-ASCII characters;--setupmigrates existing non-ASCII commands. All five hook scripts now read stdin viasys.stdin.bufferand decode UTF-8 explicitly (and the forwarder pinsencoding=utf-8on its subprocess fan-out), since Windows otherwise decodes the piped session JSON with the locale codepage, turning a cwd likeGitHub專案into mojibake and silently breakingusage-status.jsonwrites. Hooks now fall back toGetUserDefaultUILanguagewhen noLANG-style env var is set (the Windows norm), matching the tray's existing language detection.get_width()now probes the real console width viaCONOUT$+GetConsoleScreenBufferInfoinstead of always falling back to a fixed 116 columns, restoring the(left)reset-time suffix on wide terminals. Non-Windows behavior is unchanged.
v0.28.8
Fixed
- 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.jsonfallback 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.
v0.28.7
Fixed
- Claude quota now shows on Windows even when the statusLine hook never fires: a Claude Code regression stops the hook from being invoked on some Windows setups, leaving the Claude quota card permanently blank.
usage_client.pynow falls back to readingcachedUsageUtilizationstraight out of Claude Code's own~/.claude.jsonwhen nousage-status.jsonexists, so the card still populates. - Session hooks no longer break on non-ASCII (CJK) project paths on Windows: the resume, terse-mode, and terse-reminder hook commands could point into the project or app-bundle source path, which failed to execute on Windows when that path contained Chinese/Japanese/Korean characters. Self-heal now normalizes these commands to their canonical
~/.claude/targets, and the migration is idempotent — it no longer rewritessettings.jsonand appends a duplicate self-heal log entry on every restart once the command is already correct.
v0.28.6
Fixed
- Windows hook and setup output now uses UTF-8: statusLine bars keep their intended Unicode glyphs when Claude Code reads a pipe, and
--setup/--unsetupno longer fail in legacy cp950 consoles when localized messages contain characters such as ✓. - Windows panel controls now fit and follow the macOS grouping: Change Panel and Hide Sections expand in place inside a scrollable menu instead of opening clipped side submenus; the panel menu now ends with only Refresh Now, avoiding duplicate update, position-reset, and quit actions.
- Windows quota-card empty areas now drag the panel rather than reorder cards: the Windows shim temporarily marks only non-interactive card presses as native drag regions, retaining saved card order while buttons and links remain clickable.
Added
- Windows panel switch buttons now open a focused controls menu: clicking a panel's built-in Switch Panel button opens a localized HTML overlay for panel, visibility, refresh, notification, and workflow controls; tray-only update, position-reset, and quit actions stay out of the panel menu.
- Windows tray panels can now be repositioned: a subtle top drag handle and quota-card empty areas move frameless panels with grab/grabbing cursors; the position is restored on the next open, clamped to the current work area, and can be reset from the tray menu.
- Windows tray menu parity for daily updates and workflow controls: the Windows system tray now links to AI Update Daily, offers a Hide Sections submenu for Claude, Codex, and Antigravity, supports quota-alert notifications at the same thresholds as macOS, and exposes Resume Last Session and Token Saver toggles. Changes to visible sections are injected into an open panel immediately; quota alerts use native Windows tray notifications. The macOS-only AI Talent Market remains unavailable on Windows.