SIGN IN SIGN UP

fix: Stop spawning claude CLI on every refresh (macOS Tahoe TCC prompts)

Every 5-min refresh was spawning `claude --version` (via
isClaudeAvailable) and `claude auth status` (via getAuthStatus). On
macOS Tahoe (with the macos-26 SDK we recently switched CI to),
launching `claude` from `~/.claude/local/...` triggers App Management
TCC and shows the "would like to access data from other apps" prompt.

Three changes that together remove all periodic CLI spawns:

- Add ClaudeService.isClaudeAvailableQuick(): file-existence check at
  the resolved claudePath, no Process spawn. Used by the periodic
  refresh path; the spawning isClaudeAvailable() is reserved for
  user-initiated flows that need the CLI's full validation.

- Add ClaudeService.getAuthStatusLocal(): builds AuthStatus from the
  keychain token + ~/.claude.json oauthAccount block (already what
  the rest of the app reads anyway). Periodic refresh switches to
  this; login/switch/reauthenticate still use the CLI variant.

- Rate-limit the delegated-refresh path in fetchAllAccountUsage to
  one CLI spawn per 30 min per account. Token expiry is ~5h so a
  healthy account still recovers before the next expiry; an actually
  dead account no longer pings the user every 5 min.
X
XueshiQiao committed
c6213384541dc073041563f5f438e05afc566b1e
Parent: 3f575c5