Skip to content

v0.10.2 — Suppress false login prompt on wake

Choose a tag to compare

@ZeuLeg ZeuLeg released this 06 Jun 06:36
· 46 commits to main since this release

Bug fix

Spurious "run claude login" balloon on wake from sleep — fixed.

After waking from sleep, the network isn't always immediately available. The first token refresh attempt could fail due to a network error, which set the 5-minute throttle. If the app then received a 401/403 while the throttle was still active, it declared the token permanently invalid and showed the "run claude login" balloon — even though a successful refresh was only a few minutes away (as confirmed by logs).

Root cause: ForceRefreshAndGetAsync returned null for both "throttled" and "actually failed" cases. The caller (UsagePoller) couldn't tell the difference and always raised AuthExpired.

Fix: TokenRefresher.TryRefreshAsync now returns a RefreshResult enum (Success, Throttled, Failed). When the reactive refresh is throttled, the poller backs off silently. AuthExpired is only raised when a refresh was genuinely attempted and failed — meaning credentials are revoked or the user is not logged in.