Releases: Lcharvol/Claude-God
v2.20.4
Fixed
- Cancelled fetches now properly clear loading state (was stuck forever if cancelled at wrong time)
- All credential reload callbacks use
finishLoading()consistently β no more manualisLoading = falsethat could desync - Removed redundant nested
DispatchQueue.main.asyncin 401/403 and 429 token refresh callbacks - Rate limit backoff counter resets when cooldown expires naturally (was only on 200 or manual retry, causing stuck 10min backoff)
- Added 10s timeout safety on all credential reload callbacks β prevents permanent stuck state if callback never fires
- Removed unused
fetchIDvariable in fetch setup
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.20.3
Fixed
- Respect server
Retry-Afterheader on 429 instead of capping to 60s β stops hammering the API during long rate limits - Progressive backoff when no
Retry-Afterheader: 30s β 2min β 10min β 30min β 1h β 2h cap - Pre-flight token expiry check avoids doomed API calls with expired tokens
- Credential reload now falls back to Keychain when
.credentials.jsonis missing (macOS Claude Code stores credentials in Keychain only) - Cap server-provided
Retry-Afterat 2h to protect against malformed headers - Updated all user-facing messages from
claude logintoclaude auth login
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.20.2
Fixed
- App no longer gets stuck on "Rate limited" screen after
claude login(fixes #5) - Rate limit error now shows "Retry" button instead of incorrectly showing "Settings"
- Credential changes (e.g. after
claude login) now trigger auto-refresh even when an error is displayed - Auto-refresh retries after 60s instead of giving up permanently when rate limited with no cached data
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.20.1
Fixed
- Refresh no longer gets stuck or spins forever β fetch requests are now cancellable with stale response detection
- All retry paths use
[weak self]to prevent retain cycles and parallel fetch races - Centralized
finishLoading()guaranteesisLoadingis always reset (no more missed code paths) - Safety timeout reduced to 20s and now cancels the in-flight request
- Wake observer cancels stale fetches before refreshing
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.20.0
Added
- Peak / Off-peak indicator in usage view β shows whether you're in peak hours (MonβFri 7amβ5pm PT) with countdown to next transition
Fixed
- Menu bar timer now shows session reset instead of weekly reset when usage is at 0%
- Reset timer displays days/hours for long countdowns (e.g.
3d05hinstead of77h05m)
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.19.4
Fixed
- Menu bar timer now shows session reset instead of weekly reset when usage is at 0%
- Reset timer displays days/hours for long countdowns (e.g.
3d05hinstead of77h05m)
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.19.3
Fixed
- Auto-refresh was off by default for new users (UserDefaults returned 0 = "Off" on first launch instead of 2 min)
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.19.2
Fixed
- App no longer stops refreshing after Mac sleep/wake β timers are recreated on wake
- Disabled App Nap so refresh timers are never paused by macOS
- Auto-refresh when opening the popover if data is older than 2 minutes
isLoadingstuck state: safety timeout after 30s, reset on wake, and proper handling when access token is nil- 401/403 token refresh no longer enters infinite retry loop
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.19.1
Fixed
- Manual refresh now always bypasses rate limit cooldown (no more stuck "Rate limited" requiring app restart)
- Rate limit cooldown capped to 60s max
- No error message shown when rate limited with cached data β displays existing quotas silently
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.appv2.19.0
Performance
- JSONL parsing: eliminate DataβStringβData roundtrip in 5 functions (saves memory on 100MB+ files)
- SQLite: combine 9 queries into 4 per refresh (stats as single subquery, projects derived from summaries)
- Widget: skip update when quotas unchanged (avoid JSON encode + WidgetCenter reload)
- Keychain: read credentials off main thread to prevent UI freezes on startup
Added
- "brew upgrade claude-god" copy button in update banner
Install
Homebrew (recommended)
brew tap lcharvol/tap
brew install --cask claude-godManual β download ClaudeGod.dmg below, drag to Applications, then run:
xattr -cr /Applications/Claude\ God.app