codeburn/mac/Sources/CodeBurnMenubar/Data
AgentSeal 6b6b6b8df6 feat(menubar): Claude config selector, hardened (supersedes #635)
Scopes the menubar to one Claude config for multi-config (CLAUDE_CONFIG_DIRS)
setups, with All as the default. Rebased onto main and fixed the review
findings from the original #635:

- Fix a TS2206 build break (a 'type' modifier inside an import type block).
- Reject --claude-config-source with a non-Claude --provider, and scan Claude
  only in the scoped branch (a config is Claude-only): fixes provider data
  leaking into a scoped query and avoids parsing every provider's corpus.
- Scope the macOS menu-bar figure to the selected config (badge matched the
  popover), clear the selection when switching to a non-Claude provider tab,
  and stop the on-disk badge fallback from showing an unscoped number while
  scoped.
- Tag Claude Desktop / Cowork sessions as their own 'claude-desktop' source so
  they are a selectable bucket instead of silently vanishing from per-config
  views (sum of options now equals All).
- Skip the redundant Claude discovery walk for plain single-config users while
  keeping idle configs and Claude Desktop selectable.

Reviewed by Codex 5.6; all findings addressed. Full suite: 1581 TS tests, 76
Swift tests, tsc clean.
2026-07-10 01:44:51 +02:00
..
CapacityEstimator.swift feat(mac): native Swift menubar app + one-command install 2026-04-17 16:55:56 -07:00
ClaudeCredentialStore.swift fix(menubar): read Claude keychain via security CLI on silent refresh (#490) (#491) 2026-06-14 10:31:56 +02:00
ClaudeSubscriptionService.swift fix(menubar): provider-correct plan tab copy; surface model-scoped weekly limits 2026-07-02 19:37:51 +02:00
CLIClaudeConfig.swift feat(menubar): configure CLAUDE_CONFIG_DIRS via Settings (#434) (#436) 2026-06-06 02:30:46 +02:00
CodexCredentialStore.swift fix(menubar): treat the CLI credential store as the source of truth 2026-05-31 05:01:19 -07:00
CodexSubscriptionService.swift fix(menubar): treat the CLI credential store as the source of truth 2026-05-31 05:01:19 -07:00
CodexUsage.swift Live quota bar inside AgentTab + Claude OAuth refresh gate (#255) 2026-05-06 19:57:17 -07:00
DataClient.swift feat(menubar): Claude config selector, hardened (supersedes #635) 2026-07-10 01:44:51 +02:00
MenubarPayload.swift feat(menubar): Claude config selector, hardened (supersedes #635) 2026-07-10 01:44:51 +02:00
MenubarStatusCache.swift feat(menubar): drop launchd fetcher; GUI writes its own badge backstop 2026-05-30 13:35:07 -07:00
QuotaSummary.swift Live quota bar inside AgentTab + Claude OAuth refresh gate (#255) 2026-05-06 19:57:17 -07:00
SubscriptionRefreshCadence.swift Live quota bar inside AgentTab + Claude OAuth refresh gate (#255) 2026-05-06 19:57:17 -07:00
SubscriptionSnapshotStore.swift Live quota bar inside AgentTab + Claude OAuth refresh gate (#255) 2026-05-06 19:57:17 -07:00
SubscriptionUsage.swift fix(menubar): provider-correct plan tab copy; surface model-scoped weekly limits 2026-07-02 19:37:51 +02:00
UpdateChecker.swift fix(menubar): refuse menubar updates from CLIs older than 0.9.9 2026-07-02 05:30:19 +02:00
UsageRefreshCadence.swift feat(menubar): user-selectable usage refresh cadence (Auto / 1m / 5m / 15m / Manual) 2026-07-09 22:48:07 +02:00