31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
---
|
|
summary: "Architecture overview: modules, entry points, and data flow."
|
|
read_when:
|
|
- Reviewing architecture before feature work
|
|
- Refactoring app structure, app lifecycle, or module boundaries
|
|
---
|
|
|
|
# Architecture overview
|
|
|
|
## Modules
|
|
- `Sources/CodexBarCore`: fetch + parse (Codex RPC, PTY runner, Claude probes, OpenAI web scraping, status polling).
|
|
- `Sources/CodexBar`: state + UI (UsageStore, SettingsStore, StatusItemController, menus, icon rendering).
|
|
- `Sources/CodexBarWidget`: WidgetKit extension wired to the shared snapshot.
|
|
- `Sources/CodexBarCLI`: bundled CLI for `codexbar` usage/status output.
|
|
- `Sources/CodexBarClaudeWatchdog`: helper process for stable Claude CLI PTY sessions.
|
|
- `Sources/CodexBarClaudeWebProbe`: CLI helper to diagnose Claude web fetches.
|
|
|
|
## Entry points
|
|
- `CodexBarApp`: SwiftUI keepalive + Settings scene.
|
|
- `AppDelegate`: wires status controller, Sparkle updater, notifications.
|
|
|
|
## Data flow
|
|
- Background refresh → `UsageFetcher`/provider probes → `UsageStore` → menu/icon/widgets.
|
|
- Settings toggles feed `SettingsStore` → `UsageStore` refresh cadence + feature flags.
|
|
|
|
## Concurrency & platform
|
|
- Swift 6 strict concurrency enabled; prefer Sendable state and explicit MainActor hops.
|
|
- macOS 14+ targeting; avoid deprecated APIs when refactoring.
|
|
|
|
See also: `docs/providers.md`, `docs/refresh-loop.md`, `docs/ui.md`.
|