Out of quota is now its own alarm
The turn alarm means "come back and reply". Hitting a rate limit is a different event that deserves a different interruption — before 1.5.1, your 5-hour window could hit 100% while you were away, and every session just quietly sat blocked. Now the moment a 5-hour or weekly window reaches 100%, a distinct full-screen alarm fires with the reset time on it ("Resets at 15:55 (~2h)").
The details are tuned to not be annoying: it fires once per reset cycle (a percentage jittering around 100% can't re-alarm), it warms up on launch so starting the app inside an already-exhausted window stays silent, and it respects the master alarm switch.
Re-authenticate without a terminal
When Claude's usage endpoint starts demanding a re-login — which happens to every long-lived token eventually — the old flow spawned a Terminal window running claude /login and left you to paste a code. In 1.5.1 the Re-authenticate button opens the real claude.com authorize page in your default browser, reuses your existing claude.ai session (usually a single click on "Authorize"), catches the OAuth redirect on a local loopback listener, and writes the fresh token pair back to the same credential store the CLI uses. No terminal, no copy-paste. The CLI flow stays as an automatic fallback.
Fewer false alarms
- Rate-limit banners no longer fire "It's your turn". Claude writes limit messages with the same JSON envelope as a finished turn; they're flagged
isApiErrorMessageand now excluded. Being told to wait is not a turn. - Codex subagent threads are silent by default. Orchestrator fan-out finishes children constantly; those no longer raise alarms or drive the logo. A Settings toggle brings them back if you want them — full story here.
"Open thread" lands where you expect
Two navigation fixes. Codex: the deep link is now delivered to the running Codex app directly — the codex:// URL scheme tends to be claimed by stale duplicate handlers, and routing through the system default could wake the wrong one. Claude: the claude://resume deep link turned out to start a new session rather than resume one, so it's gone; "Open thread" now resumes the real session via claude --resume in a terminal, from the session's own working directory.
Quieter internals
- Usage sync can no longer freeze at "synced 19 minutes ago": requests time out at 25 seconds and a watchdog restarts a wedged refresh.
- Historical: this release tightened auto-resume safety checks. Auto-resume has since been retired and is not part of the current product.
- The Cost page is hidden by default on both platforms — Settings → Display brings it back.
Windows, version-aligned
Windows joined this historical release at the same version number. The release included the subagent filter, rate-limit fixes, browser re-auth, a branded tray icon, and simplified placement. This is a record of v1.5.1, not a statement that every current macOS feature is available on Windows.
Download from GitHub Releases — macOS DMG and Windows zip on the same tag. On macOS, existing installs update via Sparkle. Full details in the changelog.