You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Settings window — paste a manual auth token override (auto-saved as you type, useful when the Claude Code token expires or to avoid repeated Keychain prompts), configurable refresh interval (30s–30min), and a "launch at login" toggle (SMAppService).
Menu bar icon as a progress pill — shows the consumed amount centered on a color-coded bar (green / orange / red) instead of plain text.
Gradient credit bar — the popover's consumption bar now blends green → orange → red across the 50%/80% thresholds instead of jumping between flat colors.
5h / 7-day rate-limit windows displayed in the popover (previously fetched but unused).
Host Grotesk typeface and a 3-section popover layout (title / consumption / settings-quit), each following light/dark mode.
CI: test.yml (build + swift test on a macOS runner, every push/PR) and release.yml (tag vX.Y.Z → signed .app, .dmg, GitHub Release, Homebrew cask bump).
Fixed
Keychain token parsing — the access token is nested under claudeAiOauth.accessToken in Claude Code's stored credentials, not at the top level; the app never authenticated before this fix.
Menu bar icon showing no color — MenuBarExtra's label: is hosted by NSStatusItem.button, which silently ignores custom Shape fills and font modifiers (confirmed via Apple Developer Forums). The pill is now pre-rendered to an NSImage via ImageRenderer instead of passed as a live SwiftUI view.
"Unable to update Font Descriptor's weight" console warning — chaining .fontWeight() on a custom static font is unreliable; each weight now references its own .ttf by exact PostScript name.
Settings window not appearing — .accessory apps (no Dock icon) never become frontmost automatically; openWindow() now pairs with NSApp.activate(ignoringOtherApps:).
Illegible buttons in dark mode — the title/bottom section backgrounds used a fixed Color.gray that didn't darken; switched to adaptive Color.primary.opacity().
Progress bar losing its color — ProgressView().tint() wasn't reliably applied in this context; replaced by a custom Shape-based bar (also the fix that enabled the gradient above).
Known limitations
Not notarized (no Apple Developer Program account) — first launch needs a right-click → Open, or xattr -cr.
No reset date shown for the monthly credit limit: Anthropic's /api/oauth/usage doesn't expose one for extra_usage (confirmed) — only the Admin API (different credential entirely) has billing-cycle data.
No OAuth refresh-token flow: when the Claude Code token expires, re-run claude login or paste a fresh token in Settings.