Added
- Claude Usage: Multi-tier tracking with credential gating and Web API fallback. Reads live token usage via the OAuth endpoint (60-second refresh cycle), falls back to the tmux socket probe, and optionally fetches from the claude.ai Web API using a session cookie — with clear Full Disk Access guidance surfaced in Preferences when Web API mode is active.
Changed
- Claude Usage: Unified the refresh-interval constant across all tracking tiers and hardened org UUID validation to prevent bad identifiers from poisoning the cache across sessions.
- Preferences: Usage Tracking pane layout overhauled — data-source picker converted to a popup menu, segmented controls fill available width without overflow, and strip-option toggles stacked vertically for consistency.
Fixed
- Usage display: Codex auto-probe cooldown no longer masquerades as UI freshness. Cockpit and in-app usage surfaces now age data correctly after
/statusprobes while still suppressing redundant background probes. - Usage (Codex): Rollout logs that emit
token_countevents withrate_limits: nullare now treated as limit-unavailable rather than reusing stale session-file percentages from before the last reset. This also re-enables the/statusprobe fallback for that newer Codex session format. - Agent Cockpit: The pinned HUD limits footer now rebuilds from live usage-model updates the same way the main window footer does, preventing stale percentages from persisting after the underlying snapshot changes.
- Agent Cockpit: Weekly reset times in the hover-expanded limits footer now format consistently as
Day H:MM AM/PMfor both Codex and Claude. - Agent Cockpit: Cockpit-only launch (including pinned mode) now runs the same one-time startup/bootstrap path as the unified window, so Claude session names resolve without needing the main window open first.
- Claude Usage: Safari cookie path corrected for both sandboxed and legacy macOS filesystem layouts; TCC Full Disk Access guidance now surfaces in Preferences when Web API mode is active.
- Claude Usage: Guarded system-preferences URL construction to eliminate a force-unwrap crash path.
- Claude Usage: Stale OAuth caches are invalidated on 401 responses; 429 rate-limit responses are now routed through the Web API fallback instead of blocking the refresh cycle.