From fafbd2be1beeb71677bbbf7ed6b311f5e04da404 Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 10:06:34 -0400 Subject: [PATCH 1/8] Add macOS menu bar app (apps/macos) with ledger-backed spend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relocate the Agent Limit menu bar app into the burn monorepo as apps/macos and wire it to the ledger: - Live limits: flame menu bar icon (orange→red, fills when over pace) + per-window burndown charts, read from the Claude/Codex usage APIs. - Spend: under each window, shows cost this period vs. last period in USD, read from the burn ledger. Cost isn't stored in the ledger, so it shells out to `burn summary --provider

--since --json` rather than re-deriving pricing. Resolved via a login shell (nvm/Homebrew PATH) and throttled to every 5 min since each call runs an ingest pass (~5s). Hidden when burn isn't installed. - Provider map: Claude→anthropic, Codex→openai. Builds with `swift build` / `apps/macos/build.sh`. SwiftPM app, not part of the Cargo/pnpm workspaces. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/macos/.gitignore | 3 + apps/macos/App/AppIcon.icns | Bin 0 -> 471332 bytes apps/macos/App/Info.plist | 30 +++ apps/macos/LICENSE | 21 ++ apps/macos/Package.swift | 18 ++ apps/macos/README.md | 144 +++++++++++++ .../Sources/AgentLimit/AgentLimitApp.swift | 61 ++++++ apps/macos/Sources/AgentLimit/BrandIcon.swift | 105 ++++++++++ .../macos/Sources/AgentLimit/BurnLedger.swift | 71 +++++++ apps/macos/Sources/AgentLimit/Burndown.swift | 85 ++++++++ .../AgentLimit/BurndownChartView.swift | 173 ++++++++++++++++ .../Sources/AgentLimit/ContentView.swift | 194 ++++++++++++++++++ .../Sources/AgentLimit/Credentials.swift | 101 +++++++++ apps/macos/Sources/AgentLimit/Models.swift | 105 ++++++++++ apps/macos/Sources/AgentLimit/Providers.swift | 153 ++++++++++++++ .../Sources/AgentLimit/Resources/claude.svg | 1 + .../Sources/AgentLimit/Resources/openai.svg | 1 + .../Sources/AgentLimit/UsageHistory.swift | 77 +++++++ .../Sources/AgentLimit/UsageViewModel.swift | 174 ++++++++++++++++ apps/macos/build.sh | 36 ++++ apps/macos/release.sh | 99 +++++++++ apps/macos/scripts/generate-icon.swift | 37 ++++ apps/macos/scripts/make-icon.sh | 27 +++ 23 files changed, 1716 insertions(+) create mode 100644 apps/macos/.gitignore create mode 100644 apps/macos/App/AppIcon.icns create mode 100644 apps/macos/App/Info.plist create mode 100644 apps/macos/LICENSE create mode 100644 apps/macos/Package.swift create mode 100644 apps/macos/README.md create mode 100644 apps/macos/Sources/AgentLimit/AgentLimitApp.swift create mode 100644 apps/macos/Sources/AgentLimit/BrandIcon.swift create mode 100644 apps/macos/Sources/AgentLimit/BurnLedger.swift create mode 100644 apps/macos/Sources/AgentLimit/Burndown.swift create mode 100644 apps/macos/Sources/AgentLimit/BurndownChartView.swift create mode 100644 apps/macos/Sources/AgentLimit/ContentView.swift create mode 100644 apps/macos/Sources/AgentLimit/Credentials.swift create mode 100644 apps/macos/Sources/AgentLimit/Models.swift create mode 100644 apps/macos/Sources/AgentLimit/Providers.swift create mode 100644 apps/macos/Sources/AgentLimit/Resources/claude.svg create mode 100644 apps/macos/Sources/AgentLimit/Resources/openai.svg create mode 100644 apps/macos/Sources/AgentLimit/UsageHistory.swift create mode 100644 apps/macos/Sources/AgentLimit/UsageViewModel.swift create mode 100755 apps/macos/build.sh create mode 100755 apps/macos/release.sh create mode 100644 apps/macos/scripts/generate-icon.swift create mode 100755 apps/macos/scripts/make-icon.sh diff --git a/apps/macos/.gitignore b/apps/macos/.gitignore new file mode 100644 index 00000000..06203278 --- /dev/null +++ b/apps/macos/.gitignore @@ -0,0 +1,3 @@ +.build/ +dist/ +.swiftpm/ diff --git a/apps/macos/App/AppIcon.icns b/apps/macos/App/AppIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..968838de907e57b743433ab35abda73daff8910b GIT binary patch literal 471332 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⪚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%0DC<**f0? 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


sBAWnRgFln#F1DlLsa?EoweM;EGh?rHRPl?L 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%0AFV3sXdg=-*Q` zMVRq#)8D?EYv90SoEV)bW0gDg63$k-siz!^_X&fZHl0Kw)LR*F{QIut1OYMw1MV1W z*@V_gOqvsE;Lbmu+Tt6KvZb0N<59K~Qa(nJ`-h6VvXjd$fjQyy*;57egHt6+~c80i;*yNANBkAlJ?+)lVEMuZ2&o3nevfaw-nda?HPFoyV z$D~CyNle-L>#zZMvzK!?zb2qjTPZrtfl! z&k7+DW(f#MRXtUC?j`!RC%Tq7P-!DTFn;Q&2~KP+x}1(5k9u0b%-Ku4e_F6h!e^kJ zJZR5o_z8Dy2oTHRfa9o19WAaY=u1mv2~hlza$QR8-sS8zhECaMgSUx23-oc-h z8h-cM?lTQqFFa~Z)chX9osHrt6T5+&MQ&pn2T1

+4ddeS$381naPLUSn&;i}>P8 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 PGWOrW_Mhy(&!_(b7ay&? literal 0 HcmV?d00001 diff --git a/apps/macos/App/Info.plist b/apps/macos/App/Info.plist new file mode 100644 index 00000000..5fbf00aa --- /dev/null +++ b/apps/macos/App/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleName + AgentLimit + CFBundleDisplayName + Agent Limit + CFBundleExecutable + AgentLimit + CFBundleIconFile + AppIcon + CFBundleIdentifier + com.agentworkforce.agentlimit + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + 13.0 + LSUIElement + + NSPrincipalClass + NSApplication + NSHumanReadableCopyright + MIT License + + diff --git a/apps/macos/LICENSE b/apps/macos/LICENSE new file mode 100644 index 00000000..47f53610 --- /dev/null +++ b/apps/macos/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Will Washburn + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/apps/macos/Package.swift b/apps/macos/Package.swift new file mode 100644 index 00000000..8832b298 --- /dev/null +++ b/apps/macos/Package.swift @@ -0,0 +1,18 @@ +// swift-tools-version:5.9 +import PackageDescription + +let package = Package( + name: "AgentLimit", + platforms: [ + .macOS(.v13) + ], + targets: [ + .executableTarget( + name: "AgentLimit", + path: "Sources/AgentLimit", + resources: [ + .process("Resources") + ] + ) + ] +) diff --git a/apps/macos/README.md b/apps/macos/README.md new file mode 100644 index 00000000..c1cbe590 --- /dev/null +++ b/apps/macos/README.md @@ -0,0 +1,144 @@ +# Agent Limit — burn's macOS app + +The macOS **menu bar app** for [burn](../../). It shows your **Claude Code** and +**Codex** usage limits as burndown charts — so you can see at a glance whether +you're ahead of or behind your usage pace before you hit a wall — and pulls +**spend** straight from the burn ledger. + +## What it does + +- Lives in the menu bar as a flame icon that warms from **orange to red** as + your highest current usage climbs, and fills in (turns "hot") when that window + is burning faster than its target pace. +- Click it to open a popover with a **burndown chart** for each limit window + (e.g. 5-hour and weekly): + - A dashed line shows the *ideal* pace (a straight burn from 100% to 0% over + the window). + - A solid blue line shows your *actual* remaining quota over time. + - The gap between them is shaded **green** when you're **under pace** (you + have headroom) or **red** when you're **over pace** (you'll hit the limit + early). +- Switch between **OpenAI/Codex** and **Claude** with brand-icon buttons + ([lobe-icons](https://github.com/lobehub/lobe-icons)). +- Auto-refreshes every 60 seconds, and backs off automatically if the usage API + rate-limits (it keeps showing your last reading instead of erroring out). +- Under each window, shows **spend this period vs. last period** ($), read from + the burn ledger via the `burn` CLI. Hidden if `burn` isn't installed. + +## How it reads your usage + +The app reuses the credentials the official CLIs already store on your Mac — it +never asks you to log in again: + +| Provider | Credentials | Endpoint | +|----------|-------------|----------| +| Claude | `Claude Code-credentials` login-keychain item (written by Claude Code) | `https://api.anthropic.com/api/oauth/usage` | +| Codex | `~/.codex/auth.json` (written by the Codex CLI) | `https://chatgpt.com/backend-api/wham/usage` | + +If a provider isn't authenticated, run `claude` or `codex` once to log in. + +Spend figures are read from the burn ledger (`~/.agentworkforce/burn/`) by +shelling out to `burn summary --provider

--since --json` — +cost isn't stored in the ledger, so we let burn price it rather than re-deriving +its pricing table. The spend line is hidden when `burn` isn't on `PATH`. + +The first time it reads the Claude keychain item, macOS may prompt you to allow +access — choose **Always Allow**. + +## Install + +Download the latest DMG, open it, and drag **Agent Limit** to **Applications**: + +> **[⬇ AgentLimit-arm64.dmg](../../releases/latest/download/AgentLimit-arm64.dmg)** +> (Apple Silicon) + +The build is signed and notarized, so it launches without Gatekeeper warnings. +It runs as a menu bar item (no Dock icon). + +Or build it yourself (below). + +## Build & run + +Requires macOS 13+ and the Swift toolchain (Xcode or the Command Line Tools). + +```bash +./build.sh +open dist/AgentLimit.app +``` + +To install it permanently: + +```bash +cp -R dist/AgentLimit.app /Applications/ +``` + +For development you can also run straight from the package: + +```bash +swift run +``` + +## Project layout + +``` +Package.swift Swift package manifest +App/Info.plist Bundle metadata (LSUIElement → menu-bar-only app) +App/AppIcon.icns App icon (regenerate with scripts/make-icon.sh) +build.sh Builds AgentLimit.app +release.sh Signs, notarizes & packages the DMG +scripts/ Icon generator +Sources/AgentLimit/ + AgentLimitApp.swift App entry point + menu bar label + ContentView.swift Popover UI + provider icon picker + BurndownChartView.swift Swift Charts burndown card + BrandIcon.swift Loads/tints the lobe-icons SVGs + UsageViewModel.swift Loading, refresh timer, view state + Providers.swift Claude + Codex usage fetchers + Credentials.swift Reads keychain / auth.json + UsageHistory.swift Persists samples for the usage curve + Burndown.swift Turns samples into chart data + Models.swift Shared types + Resources/ claude.svg, openai.svg (lobe-icons, MIT) +``` + +Brand icons are from [lobe-icons](https://github.com/lobehub/lobe-icons) (MIT). + +## Releasing + +Set up the same way as [Pear](../../../pear): signed + notarized DMG published to +GitHub Releases, using the **same repository secrets** so one set of Apple +credentials covers both repos. + +To cut a release, go to **Actions → "Release (macOS)" → Run workflow**. The +[workflow](.github/workflows/release.yml): + +1. computes a **date-based version** `YEAR.MONTH.N` (N = the next release this + month) and tag `vYEAR.MONTH.N` — nothing is committed; +2. generates release notes from the commits since the last tag; +3. signs with a hardened runtime, notarizes via the App Store Connect API key, + staples, and builds `AgentLimit-arm64.dmg`; +4. publishes the release as **latest**, so the stable + `releases/latest/download/AgentLimit-arm64.dmg` link always points at it. + +`release.sh` runs the same build/sign/notarize/package steps locally (set +`VERSION` and the Apple env vars listed at the top of the script). + +Required repository **secrets** (Settings → Secrets and variables → Actions) — +identical to Pear's: + +| Secret | What it is | +|--------|------------| +| `CSC_LINK` | base64 of your Developer ID Application cert exported as `.p12` (`base64 -i cert.p12 \| pbcopy`) | +| `CSC_KEY_PASSWORD` | password you set when exporting the `.p12` | +| `APPLE_API_KEY_BASE64` | base64 of your App Store Connect API key (`AuthKey_XXXX.p8`) | +| `APPLE_API_KEY_ID` | the API key ID | +| `APPLE_API_ISSUER` | the API key issuer UUID | + +The throwaway CI keychain password is generated per-run, and the signing +identity is auto-detected from the imported certificate — no extra secrets. + +> Apple Silicon only (arm64), matching the CI runner. + +## License + +MIT — see [LICENSE](LICENSE). diff --git a/apps/macos/Sources/AgentLimit/AgentLimitApp.swift b/apps/macos/Sources/AgentLimit/AgentLimitApp.swift new file mode 100644 index 00000000..07784302 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/AgentLimitApp.swift @@ -0,0 +1,61 @@ +import SwiftUI + +@main +struct AgentLimitApp: App { + @StateObject private var viewModel = UsageViewModel() + + var body: some Scene { + MenuBarExtra { + ContentView(viewModel: viewModel) + } label: { + MenuBarLabel(viewModel: viewModel) + } + .menuBarExtraStyle(.window) + } +} + +/// The label shown in the menu bar: a fixed-size flame colored by the highest +/// current usage (orange→red) that fills (turns "hot") when that window is +/// burning off its target pace. The flame is rendered to a non-template image so +/// the menu bar preserves its color instead of flattening it to monochrome. +struct MenuBarLabel: View { + @ObservedObject var viewModel: UsageViewModel + + var body: some View { + Image(nsImage: flameImage) + .renderingMode(.original) + } + + /// Outline flame while on pace; a solid "hot" flame once over pace. + private var symbol: String { + viewModel.headlineOffTarget ? "flame.fill" : "flame" + } + + /// Fixed size — a usage-varying size would shift the menu bar layout. Usage + /// is conveyed by color and fill instead. + private let flameSize: CGFloat = 15 + + /// Warms from orange toward red as usage climbs, and is full red whenever the + /// window is off its target pace. + private var flameColor: Color { + if viewModel.headlineOffTarget { return .red } + let t = min(1, Double(viewModel.headlineUsage ?? 0) / 100) + // orange #FF8C00 → red #FF3B30 + return Color(red: 1.0, green: 0.55 - 0.32 * t, blue: 0.19 * t) + } + + /// Rasterizes the colored flame. `isTemplate = false` stops the menu bar from + /// re-tinting it monochrome. + private var flameImage: NSImage { + let renderer = ImageRenderer(content: + Image(systemName: symbol) + .font(.system(size: flameSize, weight: .semibold)) + .foregroundStyle(flameColor) + .padding(1) + ) + renderer.scale = 2 + let image = renderer.nsImage ?? NSImage() + image.isTemplate = false + return image + } +} diff --git a/apps/macos/Sources/AgentLimit/BrandIcon.swift b/apps/macos/Sources/AgentLimit/BrandIcon.swift new file mode 100644 index 00000000..2639b913 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/BrandIcon.swift @@ -0,0 +1,105 @@ +import SwiftUI +import AppKit + +extension ProviderName { + /// Brand accent color — tints the monochrome marks and fills the selected + /// provider's chip. + var brandColor: Color { + switch self { + case .claude: return Color(red: 0.85, green: 0.47, blue: 0.34) // Claude coral #D97757 + case .codex: return Color(red: 0.06, green: 0.64, blue: 0.50) // OpenAI green #10A37F + } + } + + /// Resource name of the bundled lobe-icons SVG. + private var iconResource: String { + switch self { + case .claude: return "claude" + case .codex: return "openai" + } + } + + /// Color applied to a monochrome `currentColor` mark, or `nil` to render the + /// SVG's own colors as-is. + private var iconTint: NSColor? { + switch self { + case .claude: return nil // claude.svg carries its own coral fill + case .codex: return .white // OpenAI mark rendered in white + } + } + + /// Loads the bundled lobe-icons SVG: self-colored marks (Claude) render as-is, + /// monochrome marks (OpenAI) are tinted to `iconTint`. Falls back to `nil` if + /// the asset can't be loaded (the view substitutes an SF Symbol). + var brandImage: NSImage? { + BrandIconCache.shared.image(named: iconResource, tint: iconTint) + } + + /// SF Symbol fallback when the SVG can't be rendered. + var fallbackSymbol: String { + switch self { + case .claude: return "sparkle" + case .codex: return "brain" + } + } +} + +/// Caches `NSImage`s loaded from the bundled SVG resources. A `nil` tint renders +/// the SVG's own colors; a non-nil tint recolors the opaque pixels to it while +/// preserving the glyph's transparency (for monochrome marks). +private final class BrandIconCache { + static let shared = BrandIconCache() + private var cache: [String: NSImage] = [:] + + func image(named name: String, tint: NSColor?) -> NSImage? { + let key = "\(name):\(tint?.hashValue ?? 0)" + if let cached = cache[key] { return cached } + guard let url = Bundle.module.url(forResource: name, withExtension: "svg"), + let base = NSImage(contentsOf: url) else { + return nil + } + guard let tint else { + base.isTemplate = false + cache[key] = base + return base + } + // The lobe-icons SVGs declare `width="1em"`, so `base.size` is 1×1 — + // rasterize at a fixed high resolution instead (the image is later scaled + // down to ~17pt by the view). + let size = NSSize(width: 64, height: 64) + let tinted = NSImage(size: size) + let rect = NSRect(origin: .zero, size: size) + tinted.lockFocus() + base.draw(in: rect) + tint.set() + // `.sourceAtop` recolors only the already-drawn (opaque) pixels. + rect.fill(using: .sourceAtop) + tinted.unlockFocus() + tinted.isTemplate = false + cache[key] = tinted + return tinted + } +} + +/// Renders a provider's brand icon, tinted to the given color, with an SF Symbol +/// fallback if the SVG can't be loaded. +struct ProviderIcon: View { + let provider: ProviderName + var size: CGFloat = 18 + + var body: some View { + Group { + if let image = provider.brandImage { + Image(nsImage: image) + .resizable() + .renderingMode(.original) + .interpolation(.high) + } else { + Image(systemName: provider.fallbackSymbol) + .resizable() + } + } + .scaledToFit() + .frame(width: size, height: size) + } +} diff --git a/apps/macos/Sources/AgentLimit/BurnLedger.swift b/apps/macos/Sources/AgentLimit/BurnLedger.swift new file mode 100644 index 00000000..e22b2f20 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/BurnLedger.swift @@ -0,0 +1,71 @@ +import Foundation + +/// Reads authoritative spend figures from the locally-installed `burn` CLI +/// (relayburn) ledger. Cost is *not* stored in the ledger — burn computes it +/// from its pricing table — so we shell out to `burn` rather than re-derive +/// pricing here. Every method returns `nil` when burn isn't available, letting +/// the UI simply hide the spend line. +actor BurnLedger { + static let shared = BurnLedger() + + /// burn's provider name for one of our providers. + static func burnProvider(for name: ProviderName) -> String { + switch name { + case .claude: return "anthropic" + case .codex: return "openai" + } + } + + private enum Availability { case unknown, missing, present } + private var availability: Availability = .unknown + + /// Total USD spend for `provider` since `since`, or `nil` if burn is + /// unavailable or the query fails. + func cost(provider: String, since: Date) async -> Double? { + guard isAvailable() else { return nil } + let iso = ISO8601DateFormatter().string(from: since) + let command = "burn summary --provider \(provider) --since \(iso) --json" + guard let output = run(command), + let data = output.data(using: .utf8), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let totalCost = json["totalCost"] as? [String: Any], + let total = (totalCost["total"] as? NSNumber)?.doubleValue + else { return nil } + return total + } + + // MARK: - Subprocess + + private func isAvailable() -> Bool { + switch availability { + case .present: return true + case .missing: return false + case .unknown: + let found = !(run("command -v burn")? + .trimmingCharacters(in: .whitespacesAndNewlines) ?? "").isEmpty + availability = found ? .present : .missing + return found + } + } + + /// Runs a command in a login shell — so nvm/Homebrew PATH (and the `node` + /// the `burn` shim needs) resolve even when launched from Finder — and + /// returns stdout, or `nil` on failure / nonzero exit. + private func run(_ command: String) -> String? { + let process = Process() + process.executableURL = URL(fileURLWithPath: "/bin/zsh") + process.arguments = ["-lc", command] + let stdout = Pipe() + process.standardOutput = stdout + process.standardError = Pipe() + do { + try process.run() + } catch { + return nil + } + let data = stdout.fileHandleForReading.readDataToEndOfFile() + process.waitUntilExit() + guard process.terminationStatus == 0 else { return nil } + return String(data: data, encoding: .utf8) + } +} diff --git a/apps/macos/Sources/AgentLimit/Burndown.swift b/apps/macos/Sources/AgentLimit/Burndown.swift new file mode 100644 index 00000000..2e8a5119 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/Burndown.swift @@ -0,0 +1,85 @@ +import Foundation + +/// A point on the actual-usage curve, paired with the ideal value at that time +/// so the chart can shade the gap between them. +struct AreaPoint: Identifiable { + let id = UUID() + let date: Date + let actual: Double + let ideal: Double +} + +/// A point on a simple two-point line (the ideal burndown). +struct LinePoint: Identifiable { + let id = UUID() + let date: Date + let value: Double +} + +/// Everything the chart needs to render one limit window as a burndown. +/// +/// Values are expressed as *remaining* quota (100% at the start of the window, +/// 0% when exhausted), matching the visual in the menu bar popover. +struct BurndownData { + let actualPoints: [AreaPoint] // window start ... now + let idealLine: [LinePoint] // window start ... window end + let windowStart: Date + let windowEnd: Date + let now: Date + let actualRemaining: Double // at now + let idealRemaining: Double // at now + /// True when the window is short enough to label the axis with times only. + let compact: Bool + + /// Positive when you have less remaining than the ideal pace (burning too + /// fast → "over pace"); negative when you have headroom ("under pace"). + var paceDelta: Double { idealRemaining - actualRemaining } + var isOverPace: Bool { paceDelta > 0 } +} + +enum BurndownBuilder { + /// Builds chart data for a metric, or `nil` if the window has no reset time + /// (in which case the caller should fall back to a simple bar). + static func build(metric: UsageMetric, samples: [UsageSample], now: Date = Date()) -> BurndownData? { + guard let resetsAt = metric.resetsAt, metric.periodSeconds > 0 else { return nil } + + let windowEnd = resetsAt + let windowStart = resetsAt.addingTimeInterval(-metric.periodSeconds) + let total = windowEnd.timeIntervalSince(windowStart) + guard total > 0 else { return nil } + + func idealRemaining(at date: Date) -> Double { + let fraction = max(0, min(1, windowEnd.timeIntervalSince(date) / total)) + return fraction * 100 + } + + // Actual remaining curve: starts full at the window start, walks through + // recorded samples, and ends at the current value. + var series: [(date: Date, remaining: Double)] = [(windowStart, 100)] + for sample in samples where sample.date > windowStart && sample.date < now { + series.append((sample.date, max(0, 100 - sample.percentage))) + } + series.append((now, max(0, 100 - metric.percentage))) + series.sort { $0.date < $1.date } + + let actualPoints = series.map { + AreaPoint(date: $0.date, actual: $0.remaining, ideal: idealRemaining(at: $0.date)) + } + + let idealLine = [ + LinePoint(date: windowStart, value: 100), + LinePoint(date: windowEnd, value: 0), + ] + + return BurndownData( + actualPoints: actualPoints, + idealLine: idealLine, + windowStart: windowStart, + windowEnd: windowEnd, + now: now, + actualRemaining: max(0, 100 - metric.percentage), + idealRemaining: idealRemaining(at: now), + compact: metric.periodSeconds <= 24 * 3600 + ) + } +} diff --git a/apps/macos/Sources/AgentLimit/BurndownChartView.swift b/apps/macos/Sources/AgentLimit/BurndownChartView.swift new file mode 100644 index 00000000..e7ed0800 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/BurndownChartView.swift @@ -0,0 +1,173 @@ +import SwiftUI +import Charts + +/// Renders one limit window as a burndown card: a dashed ideal line, the real +/// usage curve, the shaded gap between them, and a summary of pace. +struct BurndownChartView: View { + let title: String + let data: BurndownData + + private var accent: Color { data.isOverPace ? .red : .green } + private let lineColor = Color.blue + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + headerRow + chart.frame(height: 150) + axisRow + } + .padding(14) + .background( + RoundedRectangle(cornerRadius: 14, style: .continuous) + .fill(Color.primary.opacity(0.04)) + ) + .overlay( + RoundedRectangle(cornerRadius: 14, style: .continuous) + .stroke(Color.primary.opacity(0.06), lineWidth: 1) + ) + } + + // MARK: Header + + private var headerRow: some View { + HStack(alignment: .firstTextBaseline) { + VStack(alignment: .leading, spacing: 1) { + Text(title) + .font(.title3.weight(.bold)) + Text(resetsInText) + .font(.caption2) + .foregroundStyle(.tertiary) + } + Spacer() + VStack(alignment: .trailing, spacing: 4) { + HStack(spacing: 4) { + Text("\(Int(data.actualRemaining.rounded()))%") + .font(.headline.weight(.bold)) + .foregroundStyle(lineColor) + Text("left") + .font(.caption) + .foregroundStyle(.secondary) + } + Text("\(abs(Int(data.paceDelta.rounded())))% \(data.isOverPace ? "over pace" : "under pace")") + .font(.caption.weight(.semibold)) + .foregroundStyle(accent) + .padding(.horizontal, 7) + .padding(.vertical, 2) + .background(Capsule().fill(accent.opacity(0.14))) + } + } + } + + private var resetsInText: String { + let seconds = max(0, data.windowEnd.timeIntervalSince(data.now)) + let hours = Int(seconds) / 3600 + let minutes = (Int(seconds) % 3600) / 60 + if hours >= 24 { + return "resets in \(hours / 24)d \(hours % 24)h" + } else if hours > 0 { + return "resets in \(hours)h \(minutes)m" + } else { + return "resets in \(minutes)m" + } + } + + // MARK: Chart + + private var chart: some View { + Chart { + // Shaded gap between the actual and ideal curves. + ForEach(data.actualPoints) { point in + AreaMark( + x: .value("Time", point.date), + yStart: .value("Ideal", point.ideal), + yEnd: .value("Actual", point.actual) + ) + .foregroundStyle( + .linearGradient( + colors: [accent.opacity(0.28), accent.opacity(0.06)], + startPoint: .top, + endPoint: .bottom + ) + ) + .interpolationMethod(.linear) + } + + // Ideal burndown (dashed, full window). + ForEach(data.idealLine) { point in + LineMark( + x: .value("Time", point.date), + y: .value("Remaining", point.value), + series: .value("Series", "ideal") + ) + .foregroundStyle(lineColor.opacity(0.45)) + .lineStyle(StrokeStyle(lineWidth: 1.5, dash: [5, 4])) + .interpolationMethod(.linear) + } + + // Actual usage curve. + ForEach(data.actualPoints) { point in + LineMark( + x: .value("Time", point.date), + y: .value("Remaining", point.actual), + series: .value("Series", "actual") + ) + .foregroundStyle(lineColor) + .lineStyle(StrokeStyle(lineWidth: 2.5, lineCap: .round, lineJoin: .round)) + .interpolationMethod(.linear) + } + + // Vertical connector at "now" showing the pace gap. + RuleMark( + x: .value("Now", data.now), + yStart: .value("Remaining", min(data.actualRemaining, data.idealRemaining)), + yEnd: .value("Remaining", max(data.actualRemaining, data.idealRemaining)) + ) + .foregroundStyle(accent) + .lineStyle(StrokeStyle(lineWidth: 2)) + + // Current position marker with a white ring. + PointMark( + x: .value("Now", data.now), + y: .value("Remaining", data.actualRemaining) + ) + .foregroundStyle(lineColor) + .symbol { + Circle() + .fill(lineColor) + .frame(width: 9, height: 9) + .overlay(Circle().stroke(.background, lineWidth: 2)) + } + } + .chartYScale(domain: 0.0...100.0) + .chartXScale(domain: data.windowStart...data.windowEnd) + .chartXAxis(.hidden) + .chartYAxis { + AxisMarks(position: .leading, values: [0.0, 50.0, 100.0]) { value in + AxisGridLine().foregroundStyle(Color.primary.opacity(0.08)) + AxisValueLabel { + if let v = value.as(Double.self) { + Text("\(Int(v))%") + .font(.caption2) + .foregroundStyle(.tertiary) + } + } + } + } + } + + private var axisRow: some View { + HStack { + Text(data.windowStart, format: axisFormat) + Spacer() + Text(data.windowEnd, format: axisFormat) + } + .font(.caption2) + .foregroundStyle(.secondary) + } + + private var axisFormat: Date.FormatStyle { + data.compact + ? .dateTime.hour().minute() + : .dateTime.month(.abbreviated).day().hour().minute() + } +} diff --git a/apps/macos/Sources/AgentLimit/ContentView.swift b/apps/macos/Sources/AgentLimit/ContentView.swift new file mode 100644 index 00000000..98c57906 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/ContentView.swift @@ -0,0 +1,194 @@ +import SwiftUI + +/// The popover shown when the menu bar item is clicked. +struct ContentView: View { + @ObservedObject var viewModel: UsageViewModel + + var body: some View { + VStack(alignment: .leading, spacing: 14) { + header + Divider() + content + } + .padding(16) + .frame(width: 380) + .background(quitShortcut) + } + + /// Registers ⌘Q while the popover is open. The app is menu-bar-only (no Dock + /// icon or app menu), so there's no system Quit item — this is an invisible + /// handler with no on-screen button. + private var quitShortcut: some View { + Button(action: { NSApp.terminate(nil) }) { EmptyView() } + .keyboardShortcut("q", modifiers: .command) + .frame(width: 0, height: 0) + .opacity(0) + .accessibilityHidden(true) + } + + // MARK: Header + + private var header: some View { + VStack(alignment: .leading, spacing: 8) { + providerPicker + + Text(subtitle) + .font(.caption) + .foregroundStyle(.secondary) + } + } + + /// Segmented control of brand icons, one per provider. + private var providerPicker: some View { + HStack(spacing: 4) { + ForEach(ProviderName.allCases) { provider in + let isSelected = provider == viewModel.selectedProvider + Button { + viewModel.select(provider) + } label: { + ProviderIcon(provider: provider, size: 17) + .opacity(isSelected ? 1 : 0.55) + .frame(width: 30, height: 26) + .background( + RoundedRectangle(cornerRadius: 7, style: .continuous) + .fill(isSelected ? provider.brandColor.opacity(0.16) : .clear) + ) + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + .help(provider.displayName) + } + } + .padding(3) + .background( + Capsule(style: .continuous) + .fill(Color.primary.opacity(0.06)) + ) + } + + private var subtitle: String { + let updated: String + if let last = viewModel.lastUpdated { + let seconds = Int(Date().timeIntervalSince(last)) + switch seconds { + case ..<5: updated = "just now" + case ..<60: updated = "\(seconds)s ago" + default: updated = "\(seconds / 60)m ago" + } + } else { + updated = viewModel.isLoading ? "loading…" : "never" + } + return "Updated \(updated) · Source: \(viewModel.selectedProvider.sourceLabel)" + } + + // MARK: Content + + @ViewBuilder + private var content: some View { + if let status = viewModel.status { + switch status.status { + case .unavailable, .error: + messageView(status.message ?? "Usage is unavailable.") + case .rateLimited: + noticeView(status.message ?? "Rate-limited. Retrying shortly.") + default: + if status.metrics.isEmpty { + messageView("No active limit windows reported.") + } else { + chartsView(plan: status.plan) + } + } + } else { + ProgressView() + .frame(maxWidth: .infinity) + .padding(.vertical, 36) + } + } + + private func chartsView(plan: String?) -> some View { + VStack(alignment: .leading, spacing: 12) { + if let notice = viewModel.notice { + noticeView(notice) + } + if let plan, !plan.isEmpty { + Text("\(plan.prefix(1).capitalized + plan.dropFirst()) plan") + .font(.caption.weight(.medium)) + .foregroundStyle(.secondary) + .padding(.horizontal, 8) + .padding(.vertical, 3) + .background(Capsule().fill(Color.primary.opacity(0.06))) + } + ForEach(Array(viewModel.charts.enumerated()), id: \.offset) { _, item in + VStack(alignment: .leading, spacing: 4) { + if let data = item.data { + BurndownChartView(title: item.metric.name, data: data) + } else { + SimpleUsageRow(metric: item.metric) + } + if let spend = viewModel.spend[item.metric.name] { + spendRow(spend) + } + } + } + } + } + + /// Ledger-backed spend for one window: this period, compared to the last. + private func spendRow(_ spend: PeriodSpend) -> some View { + func dollars(_ amount: Double) -> String { String(format: "$%.2f", amount) } + return HStack(spacing: 5) { + Text("\(dollars(spend.thisPeriod)) this period") + if let last = spend.lastPeriod { + let delta = spend.thisPeriod - last + Image(systemName: delta >= 0 ? "arrow.up" : "arrow.down") + Text("\(dollars(last)) last") + } + } + .font(.caption2) + .foregroundStyle(.secondary) + .padding(.leading, 2) + } + + private func messageView(_ message: String) -> some View { + HStack(alignment: .top, spacing: 8) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundStyle(.orange) + Text(message) + .font(.callout) + .fixedSize(horizontal: false, vertical: true) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.vertical, 24) + } + + /// A low-key, informational banner (e.g. transient rate-limit notice). + private func noticeView(_ message: String) -> some View { + HStack(alignment: .top, spacing: 8) { + Image(systemName: "clock.arrow.circlepath") + .foregroundStyle(.secondary) + Text(message) + .font(.caption) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(10) + .background(RoundedRectangle(cornerRadius: 8, style: .continuous).fill(Color.primary.opacity(0.05))) + } +} + +/// Fallback row for windows that don't report a reset time (no burndown). +struct SimpleUsageRow: View { + let metric: UsageMetric + + var body: some View { + VStack(alignment: .leading, spacing: 6) { + Text(metric.name) + .font(.title3.weight(.bold)) + ProgressView(value: min(metric.percentage, 100), total: 100) + Text("\(Int(metric.percentage.rounded()))% used") + .font(.caption) + .foregroundStyle(.secondary) + } + } +} diff --git a/apps/macos/Sources/AgentLimit/Credentials.swift b/apps/macos/Sources/AgentLimit/Credentials.swift new file mode 100644 index 00000000..24baff91 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/Credentials.swift @@ -0,0 +1,101 @@ +import Foundation + +struct ClaudeCredentials { + let accessToken: String + let subscriptionType: String? +} + +struct CodexCredentials { + let accessToken: String + let accountId: String + let planType: String? +} + +/// Reads locally-stored credentials written by the Claude Code and Codex CLIs. +/// +/// - Claude Code stores an OAuth blob in the login keychain under the service +/// name `"Claude Code-credentials"`. +/// - Codex stores tokens in `~/.codex/auth.json`. +enum Credentials { + + // MARK: Claude + + static func claude() -> ClaudeCredentials? { + guard let raw = keychainPassword(service: "Claude Code-credentials"), + let data = raw.data(using: .utf8), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let oauth = json["claudeAiOauth"] as? [String: Any], + let token = oauth["accessToken"] as? String + else { + return nil + } + let subscription = oauth["subscriptionType"] as? String + return ClaudeCredentials(accessToken: token, subscriptionType: subscription) + } + + /// Shells out to `/usr/bin/security` to read a generic password. This mirrors + /// what the original CLI did and avoids needing a matching keychain access + /// group. The user may be prompted to allow access the first time. + private static func keychainPassword(service: String) -> String? { + let process = Process() + process.executableURL = URL(fileURLWithPath: "/usr/bin/security") + process.arguments = ["find-generic-password", "-s", service, "-w"] + + let outPipe = Pipe() + process.standardOutput = outPipe + process.standardError = Pipe() + + do { + try process.run() + } catch { + return nil + } + + let data = outPipe.fileHandleForReading.readDataToEndOfFile() + process.waitUntilExit() + guard process.terminationStatus == 0 else { return nil } + + let value = String(data: data, encoding: .utf8)? + .trimmingCharacters(in: .whitespacesAndNewlines) + return (value?.isEmpty == false) ? value : nil + } + + // MARK: Codex + + static func codex() -> CodexCredentials? { + let url = FileManager.default.homeDirectoryForCurrentUser + .appendingPathComponent(".codex/auth.json") + + guard let data = try? Data(contentsOf: url), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let tokens = json["tokens"] as? [String: Any], + let access = tokens["access_token"] as? String, + let accountId = tokens["account_id"] as? String + else { + return nil + } + + let plan = chatGPTPlan(fromJWT: access) + return CodexCredentials(accessToken: access, accountId: accountId, planType: plan) + } + + /// Extracts `chatgpt_plan_type` from the OpenAI auth claim of a JWT payload. + private static func chatGPTPlan(fromJWT jwt: String) -> String? { + let parts = jwt.split(separator: ".") + guard parts.count == 3 else { return nil } + + var base64 = String(parts[1]) + .replacingOccurrences(of: "-", with: "+") + .replacingOccurrences(of: "_", with: "/") + while base64.count % 4 != 0 { base64 += "=" } + + guard let data = Data(base64Encoded: base64), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let auth = json["https://api.openai.com/auth"] as? [String: Any], + let plan = auth["chatgpt_plan_type"] as? String + else { + return nil + } + return plan + } +} diff --git a/apps/macos/Sources/AgentLimit/Models.swift b/apps/macos/Sources/AgentLimit/Models.swift new file mode 100644 index 00000000..e01862ae --- /dev/null +++ b/apps/macos/Sources/AgentLimit/Models.swift @@ -0,0 +1,105 @@ +import Foundation + +/// Supported usage providers. +enum ProviderName: String, CaseIterable, Identifiable { + case codex + case claude + + var id: String { rawValue } + + var displayName: String { + switch self { + case .claude: return "Claude" + case .codex: return "Codex" + } + } + + /// Short description of where the data comes from (shown in the header). + var sourceLabel: String { + switch self { + case .claude: return "Anthropic OAuth" + case .codex: return "Codex RPC" + } + } +} + +enum ProviderStatusType { + case ok + case warning + case error + case unavailable + case loading + case rateLimited +} + +/// A single usage window (e.g. the 5-hour or weekly limit). +struct UsageMetric: Identifiable { + let id = UUID() + /// Human readable window name, e.g. "5-hour" or "Weekly". + let name: String + /// Percentage of the limit that has been *used* (0...100). + let percentage: Double + /// When this window resets, if known. + let resetsAt: Date? + /// Total duration of the window in seconds. + let periodSeconds: Double +} + +struct ProviderStatus { + let provider: ProviderName + let status: ProviderStatusType + var plan: String? + var metrics: [UsageMetric] + var message: String? + + static func unavailable(_ provider: ProviderName, _ message: String) -> ProviderStatus { + ProviderStatus(provider: provider, status: .unavailable, plan: nil, metrics: [], message: message) + } + + static func failure(_ provider: ProviderName, _ message: String) -> ProviderStatus { + ProviderStatus(provider: provider, status: .error, plan: nil, metrics: [], message: message) + } + + /// The usage endpoint rate-limited the poll (HTTP 429). Transient — callers + /// should keep showing the last known data and back off rather than surface + /// this as a hard error. + static func rateLimited(_ provider: ProviderName) -> ProviderStatus { + ProviderStatus(provider: provider, status: .rateLimited, plan: nil, metrics: [], + message: "Usage API is rate-limiting requests. Showing the last update.") + } +} + +/// ISO-8601 parsing that tolerates fractional seconds (Anthropic) and plain +/// internet date-time strings. +/// +/// Anthropic returns microsecond precision with an explicit offset, e.g. +/// `2026-06-17T05:19:59.253508+00:00`. `ISO8601DateFormatter` only reliably +/// parses up to 3 fractional digits, so we fall back to stripping the +/// fractional component entirely (sub-second precision is irrelevant for reset +/// times). +enum DateParsing { + private static let fractional: ISO8601DateFormatter = { + let f = ISO8601DateFormatter() + f.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return f + }() + + private static let plain: ISO8601DateFormatter = { + let f = ISO8601DateFormatter() + f.formatOptions = [.withInternetDateTime] + return f + }() + + static func date(from string: String) -> Date? { + if let date = fractional.date(from: string) { return date } + if let date = plain.date(from: string) { return date } + + // Strip fractional seconds (e.g. ".253508") and retry. + if let range = string.range(of: #"\.\d+"#, options: .regularExpression) { + var stripped = string + stripped.removeSubrange(range) + if let date = plain.date(from: stripped) { return date } + } + return nil + } +} diff --git a/apps/macos/Sources/AgentLimit/Providers.swift b/apps/macos/Sources/AgentLimit/Providers.swift new file mode 100644 index 00000000..d8be1bad --- /dev/null +++ b/apps/macos/Sources/AgentLimit/Providers.swift @@ -0,0 +1,153 @@ +import Foundation + +protocol UsageProvider { + var name: ProviderName { get } + func fetch() async -> ProviderStatus +} + +// MARK: - Claude + +struct ClaudeProvider: UsageProvider { + let name: ProviderName = .claude + + func fetch() async -> ProviderStatus { + guard let credentials = Credentials.claude() else { + return .unavailable(.claude, "Not logged in. Run 'claude' to authenticate.") + } + + var request = URLRequest(url: URL(string: "https://api.anthropic.com/api/oauth/usage")!) + request.httpMethod = "GET" + request.setValue("application/json", forHTTPHeaderField: "Accept") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.setValue("monitor/1.0.0", forHTTPHeaderField: "User-Agent") + request.setValue("Bearer \(credentials.accessToken)", forHTTPHeaderField: "Authorization") + request.setValue("oauth-2025-04-20", forHTTPHeaderField: "anthropic-beta") + + do { + let (data, response) = try await URLSession.shared.data(for: request) + guard let http = response as? HTTPURLResponse else { + return .failure(.claude, "No response from server.") + } + if http.statusCode == 401 { + return .failure(.claude, "Token expired. Run 'claude' to re-authenticate.") + } + if http.statusCode == 429 { + return .rateLimited(.claude) + } + guard http.statusCode == 200 else { + return .failure(.claude, "API error: \(http.statusCode)") + } + + let json = (try? JSONSerialization.jsonObject(with: data)) as? [String: Any] ?? [:] + var metrics: [UsageMetric] = [] + + func window(_ key: String, name: String, period: Double) -> UsageMetric? { + guard let w = json[key] as? [String: Any], + let utilization = (w["utilization"] as? NSNumber)?.doubleValue + else { return nil } + let resetsAt = (w["resets_at"] as? String).flatMap(DateParsing.date(from:)) + return UsageMetric(name: name, percentage: utilization, resetsAt: resetsAt, periodSeconds: period) + } + + if let m = window("five_hour", name: "5-hour", period: 5 * 3600) { metrics.append(m) } + if let m = window("seven_day", name: "Weekly", period: 7 * 24 * 3600) { metrics.append(m) } + if let m = window("seven_day_opus", name: "Opus", period: 7 * 24 * 3600), m.percentage > 0 { + metrics.append(m) + } + + let maxUsage = metrics.map(\.percentage).max() ?? 0 + return ProviderStatus( + provider: .claude, + status: maxUsage >= 80 ? .warning : .ok, + plan: credentials.subscriptionType ?? "Pro", + metrics: metrics, + message: nil + ) + } catch { + return .failure(.claude, error.localizedDescription) + } + } +} + +// MARK: - Codex + +struct CodexProvider: UsageProvider { + let name: ProviderName = .codex + + func fetch() async -> ProviderStatus { + guard let credentials = Credentials.codex() else { + return .unavailable(.codex, "Not logged in. Run 'codex' to authenticate.") + } + + var request = URLRequest(url: URL(string: "https://chatgpt.com/backend-api/wham/usage")!) + request.setValue("Bearer \(credentials.accessToken)", forHTTPHeaderField: "Authorization") + request.setValue(credentials.accountId, forHTTPHeaderField: "ChatGPT-Account-Id") + request.setValue("codex_cli_rs", forHTTPHeaderField: "originator") + request.setValue("codex_cli_rs/0.77.0", forHTTPHeaderField: "User-Agent") + + do { + let (data, response) = try await URLSession.shared.data(for: request) + guard let http = response as? HTTPURLResponse else { + return .failure(.codex, "No response from server.") + } + if http.statusCode == 401 { + return .failure(.codex, "Token expired. Run 'codex' to re-authenticate.") + } + if http.statusCode == 429 { + return .rateLimited(.codex) + } + guard http.statusCode == 200 else { + return .failure(.codex, "API error: \(http.statusCode)") + } + + let json = (try? JSONSerialization.jsonObject(with: data)) as? [String: Any] ?? [:] + let rateLimit = json["rate_limit"] as? [String: Any] + + var metrics: [UsageMetric] = [] + + func parse(_ w: [String: Any], primary: Bool) -> UsageMetric? { + guard let used = (w["used_percent"] as? NSNumber)?.doubleValue, + let windowSeconds = (w["limit_window_seconds"] as? NSNumber)?.doubleValue + else { return nil } + + let resetsAt = (w["reset_at"] as? NSNumber) + .map { Date(timeIntervalSince1970: $0.doubleValue) } + + let name: String + if primary { + let hours = Int((windowSeconds / 3600).rounded()) + name = "\(hours)-hour" + } else { + let days = Int((windowSeconds / 86400).rounded()) + name = days >= 7 ? "Weekly" : "\(days)-day" + } + return UsageMetric(name: name, percentage: used, resetsAt: resetsAt, periodSeconds: windowSeconds) + } + + if let primary = rateLimit?["primary_window"] as? [String: Any], + let m = parse(primary, primary: true) { + metrics.append(m) + } + if let secondary = rateLimit?["secondary_window"] as? [String: Any], + let m = parse(secondary, primary: false) { + metrics.append(m) + } + + let limitReached = (rateLimit?["limit_reached"] as? Bool) ?? false + let maxUsage = metrics.map(\.percentage).max() ?? 0 + let planType = (json["plan_type"] as? String).map { + $0.prefix(1).uppercased() + $0.dropFirst() + } ?? "Unknown" + + return ProviderStatus( + provider: .codex, + status: (limitReached || maxUsage >= 80) ? .warning : .ok, + plan: planType, + metrics: metrics, + message: nil + ) + } catch { + return .failure(.codex, error.localizedDescription) + } + } +} diff --git a/apps/macos/Sources/AgentLimit/Resources/claude.svg b/apps/macos/Sources/AgentLimit/Resources/claude.svg new file mode 100644 index 00000000..62dc0db1 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/Resources/claude.svg @@ -0,0 +1 @@ +Claude \ No newline at end of file diff --git a/apps/macos/Sources/AgentLimit/Resources/openai.svg b/apps/macos/Sources/AgentLimit/Resources/openai.svg new file mode 100644 index 00000000..78caf4fa --- /dev/null +++ b/apps/macos/Sources/AgentLimit/Resources/openai.svg @@ -0,0 +1 @@ +OpenAI \ No newline at end of file diff --git a/apps/macos/Sources/AgentLimit/UsageHistory.swift b/apps/macos/Sources/AgentLimit/UsageHistory.swift new file mode 100644 index 00000000..65d1da48 --- /dev/null +++ b/apps/macos/Sources/AgentLimit/UsageHistory.swift @@ -0,0 +1,77 @@ +import Foundation + +/// One recorded observation of a usage window. +struct UsageSample: Codable { + let date: Date + /// Percentage *used* at the time of the sample (0...100). + let percentage: Double +} + +/// Persists a rolling history of usage samples so the burndown chart can draw +/// the real, jagged usage curve instead of a single point. Samples are keyed by +/// provider + window + reset time, so each limit window gets its own series and +/// old windows are pruned after they reset. +final class UsageHistoryStore { + static let shared = UsageHistoryStore() + + private let queue = DispatchQueue(label: "com.agentworkforce.agentlimit.history") + private var cache: [String: [UsageSample]] = [:] + private let fileURL: URL + + private init() { + let dir = FileManager.default + .urls(for: .applicationSupportDirectory, in: .userDomainMask)[0] + .appendingPathComponent("AgentLimit", isDirectory: true) + try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true) + fileURL = dir.appendingPathComponent("history.json") + + if let data = try? Data(contentsOf: fileURL), + let decoded = try? JSONDecoder().decode([String: [UsageSample]].self, from: data) { + cache = decoded + } + } + + private func key(provider: ProviderName, metric: UsageMetric) -> String { + let reset = metric.resetsAt.map { String(Int($0.timeIntervalSince1970)) } ?? "none" + return "\(provider.rawValue)|\(metric.name)|\(reset)" + } + + /// Records the current value of a metric and returns the full sample series + /// for the metric's current window. + @discardableResult + func record(provider: ProviderName, metric: UsageMetric, at date: Date = Date()) -> [UsageSample] { + queue.sync { + let k = key(provider: provider, metric: metric) + var samples = cache[k] ?? [] + + // Collapse rapid duplicate samples (e.g. manual refreshes). + if let last = samples.last, date.timeIntervalSince(last.date) < 1 { + samples[samples.count - 1] = UsageSample(date: date, percentage: metric.percentage) + } else { + samples.append(UsageSample(date: date, percentage: metric.percentage)) + } + + cache[k] = samples + pruneStaleWindows(reference: date) + persist() + return samples + } + } + + /// Drops series for windows that reset more than an hour ago. + private func pruneStaleWindows(reference: Date) { + for k in cache.keys { + let parts = k.split(separator: "|") + guard parts.count == 3, let ts = Double(parts[2]), ts != 0 else { continue } + let resetDate = Date(timeIntervalSince1970: ts) + if resetDate < reference.addingTimeInterval(-3600) { + cache.removeValue(forKey: k) + } + } + } + + private func persist() { + guard let data = try? JSONEncoder().encode(cache) else { return } + try? data.write(to: fileURL) + } +} diff --git a/apps/macos/Sources/AgentLimit/UsageViewModel.swift b/apps/macos/Sources/AgentLimit/UsageViewModel.swift new file mode 100644 index 00000000..d9a4e9dd --- /dev/null +++ b/apps/macos/Sources/AgentLimit/UsageViewModel.swift @@ -0,0 +1,174 @@ +import SwiftUI + +/// This-period and previous-period spend (USD) for one usage window, from the +/// burn ledger. +struct PeriodSpend { + let thisPeriod: Double + let lastPeriod: Double? +} + +/// Drives data loading and exposes view state to SwiftUI. Refreshes on a timer +/// so the menu bar label stays current even while the popover is closed. +@MainActor +final class UsageViewModel: ObservableObject { + @Published private(set) var selectedProvider: ProviderName + @Published private(set) var status: ProviderStatus? + @Published private(set) var charts: [(metric: UsageMetric, data: BurndownData?)] = [] + @Published private(set) var lastUpdated: Date? + @Published private(set) var isLoading = false + /// Transient banner (e.g. rate-limit notice) shown alongside stale data. + @Published private(set) var notice: String? + /// Per-window spend from the burn ledger, keyed by window name (stable + /// across refreshes, unlike the per-fetch metric id). Empty when burn isn't + /// installed. + @Published private(set) var spend: [String: PeriodSpend] = [:] + + let refreshInterval: TimeInterval = 60 + + private var timer: Timer? + /// While set, scheduled (non-forced) refreshes are skipped to let a 429 clear. + private var backoffUntil: Date? + private var consecutiveRateLimits = 0 + private let providers: [ProviderName: UsageProvider] = [ + .claude: ClaudeProvider(), + .codex: CodexProvider(), + ] + + init() { + if let raw = UserDefaults.standard.string(forKey: "selectedProvider"), + let provider = ProviderName(rawValue: raw) { + selectedProvider = provider + } else { + selectedProvider = .codex + } + start() + } + + private func start() { + Task { await refresh(force: true) } + timer = Timer.scheduledTimer(withTimeInterval: refreshInterval, repeats: true) { [weak self] _ in + Task { await self?.refresh() } + } + } + + func select(_ provider: ProviderName) { + guard provider != selectedProvider else { return } + selectedProvider = provider + UserDefaults.standard.set(provider.rawValue, forKey: "selectedProvider") + status = nil + charts = [] + notice = nil + spend = [:] + // New provider has its own rate-limit budget; clear any pending backoff. + backoffUntil = nil + consecutiveRateLimits = 0 + Task { await refresh(force: true) } + } + + /// - Parameter force: bypass the rate-limit backoff (user-initiated refresh). + func refresh(force: Bool = false) async { + guard let provider = providers[selectedProvider] else { return } + if !force, let until = backoffUntil, Date() < until { return } + isLoading = true + let result = await provider.fetch() + let now = Date() + + // Ignore results for a provider the user switched away from mid-flight. + guard result.provider == selectedProvider else { + isLoading = false + return + } + + // Rate-limited: keep the last good reading on screen and back off so we + // stop hammering the endpoint while the limit clears. + if result.status == .rateLimited { + consecutiveRateLimits += 1 + let delay = min(15 * 60, refreshInterval * pow(2, Double(consecutiveRateLimits))) + backoffUntil = now.addingTimeInterval(delay) + if status == nil || (status?.metrics.isEmpty ?? true) { + status = result // nothing prior to show; surface the notice itself + } else { + notice = result.message + } + isLoading = false + return + } + + backoffUntil = nil + consecutiveRateLimits = 0 + notice = nil + + var built: [(metric: UsageMetric, data: BurndownData?)] = [] + if result.status == .ok || result.status == .warning { + for metric in result.metrics { + let samples = UsageHistoryStore.shared.record(provider: result.provider, metric: metric, at: now) + let data = BurndownBuilder.build(metric: metric, samples: samples, now: now) + built.append((metric, data)) + } + } + + status = result + charts = built + lastUpdated = now + isLoading = false + + // Spend comes from the burn ledger via a subprocess; load it off the + // critical path so the usage display isn't held up. + let metrics = result.metrics + let resultProvider = result.provider + Task { await loadSpend(provider: resultProvider, metrics: metrics) } + } + + /// Loads per-window spend from the burn ledger. No-op (leaves `spend` + /// unchanged) if burn isn't installed or a query fails. Each `burn summary` + /// call runs an ingest pass (~5s), so this is throttled — spend changes + /// slowly and doesn't need the 60s usage cadence. + private var lastSpendAt: Date? + private let spendInterval: TimeInterval = 300 + + private func loadSpend(provider: ProviderName, metrics: [UsageMetric]) async { + if !spend.isEmpty, let last = lastSpendAt, Date().timeIntervalSince(last) < spendInterval { + return + } + let burnProvider = BurnLedger.burnProvider(for: provider) + var result: [String: PeriodSpend] = [:] + for metric in metrics { + guard let resetsAt = metric.resetsAt, metric.periodSeconds > 0 else { continue } + let thisStart = resetsAt.addingTimeInterval(-metric.periodSeconds) + let lastStart = resetsAt.addingTimeInterval(-2 * metric.periodSeconds) + guard let thisCost = await BurnLedger.shared.cost(provider: burnProvider, since: thisStart) else { + return // burn unavailable — keep whatever we had + } + // "Last period" = [lastStart, thisStart): spend since lastStart minus + // spend since thisStart (burn has no --until). + let lastCost = await BurnLedger.shared.cost(provider: burnProvider, since: lastStart) + .map { max(0, $0 - thisCost) } + result[metric.name] = PeriodSpend(thisPeriod: thisCost, lastPeriod: lastCost) + } + guard provider == selectedProvider else { return } + spend = result + lastSpendAt = Date() + } + + /// The busiest window (highest used percentage), driving the menu bar label. + private var headlineMetric: UsageMetric? { + status?.metrics.max(by: { $0.percentage < $1.percentage }) + } + + /// Highest used percentage across windows, for the menu bar label. + var headlineUsage: Int? { + guard let metric = headlineMetric else { return nil } + return Int(metric.percentage.rounded()) + } + + /// True when the busiest window is burning faster than its ideal pace + /// ("off target"). Falls back to a high-usage threshold when the window has + /// no burndown data (no known reset time). + var headlineOffTarget: Bool { + guard let metric = headlineMetric else { return false } + if let data = charts.first(where: { $0.metric.id == metric.id })?.data { + return data.isOverPace + } + return metric.percentage >= 80 + } +} diff --git a/apps/macos/build.sh b/apps/macos/build.sh new file mode 100755 index 00000000..acc3ba20 --- /dev/null +++ b/apps/macos/build.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# +# Builds AgentLimit.app — a macOS menu bar app — from the Swift package. +# Requires macOS with the Swift toolchain (Xcode or Command Line Tools). +# +set -euo pipefail + +APP_NAME="AgentLimit" +CONFIG="release" + +cd "$(dirname "$0")" + +echo "Building $APP_NAME ($CONFIG)…" +swift build -c "$CONFIG" + +BIN_PATH="$(swift build -c "$CONFIG" --show-bin-path)" +APP_DIR="dist/${APP_NAME}.app" + +rm -rf "$APP_DIR" +mkdir -p "$APP_DIR/Contents/MacOS" +mkdir -p "$APP_DIR/Contents/Resources" + +cp "$BIN_PATH/$APP_NAME" "$APP_DIR/Contents/MacOS/$APP_NAME" +cp "App/Info.plist" "$APP_DIR/Contents/Info.plist" +cp "App/AppIcon.icns" "$APP_DIR/Contents/Resources/AppIcon.icns" + +# Bundle SwiftPM resource bundles (brand icons) next to the executable so +# Bundle.module can find them. +for bundle in "$BIN_PATH"/*.bundle; do + [ -e "$bundle" ] && cp -R "$bundle" "$APP_DIR/Contents/Resources/" +done + +echo "Built $APP_DIR" +echo +echo "Launch it with: open \"$APP_DIR\"" +echo "Install it with: cp -R \"$APP_DIR\" /Applications/" diff --git a/apps/macos/release.sh b/apps/macos/release.sh new file mode 100755 index 00000000..653df348 --- /dev/null +++ b/apps/macos/release.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +# +# Builds, signs, notarizes, and packages AgentLimit.app into a distributable +# DMG. Runs locally or in CI — all credentials come from the environment. +# +# Mirrors the Pear release flow: Developer ID signing + notarization via an +# App Store Connect API key, producing a stable-named arm64 DMG. +# +# Signing identity (auto-detected from the keychain if unset): +# SIGNING_IDENTITY "Developer ID Application: Your Name (TEAMID)" +# +# Version (optional — stamped into Info.plist before building): +# VERSION e.g. 2026.6.1 +# +# Notarization — App Store Connect API key (preferred, same as Pear)… +# APPLE_API_KEY path to the AuthKey_XXXX.p8 file +# APPLE_API_KEY_ID the key ID +# APPLE_API_ISSUER the issuer UUID +# …or a stored notarytool profile: +# NOTARY_PROFILE name from `xcrun notarytool store-credentials` +# …or an Apple ID + app-specific password: +# APPLE_ID / APPLE_TEAM_ID / APPLE_APP_PASSWORD +# +set -euo pipefail + +APP_NAME="AgentLimit" +ARCH="$(uname -m)" # arm64 on Apple Silicon CI/runners +APP_DIR="dist/${APP_NAME}.app" +DMG="dist/${APP_NAME}-${ARCH}.dmg" +ZIP="dist/${APP_NAME}-notarize.zip" + +cd "$(dirname "$0")" + +# 0. Stamp the version into Info.plist (transient — never committed). +if [[ -n "${VERSION:-}" ]]; then + echo "Stamping version ${VERSION}…" + /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${VERSION}" App/Info.plist + /usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${VERSION}" App/Info.plist +fi + +# 1. Build the unsigned .app. +./build.sh + +# 2. Resolve the signing identity (auto-detect a Developer ID Application cert). +if [[ -z "${SIGNING_IDENTITY:-}" ]]; then + SIGNING_IDENTITY="$(security find-identity -v -p codesigning \ + | awk -F'"' '/Developer ID Application/ {print $2; exit}')" +fi +: "${SIGNING_IDENTITY:?No 'Developer ID Application' identity found in the keychain}" + +# 3. Code-sign with a hardened runtime (required for notarization). Sign nested +# bundles (the SwiftPM resource bundle) before the outer app. +echo "Signing with: ${SIGNING_IDENTITY}" +while IFS= read -r -d '' bundle; do + codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "$bundle" +done < <(find "${APP_DIR}/Contents/Resources" -maxdepth 1 -name "*.bundle" -print0) + +codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/${APP_NAME}" +codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}" +codesign --verify --deep --strict --verbose=2 "${APP_DIR}" + +# 4. Notarize. Apple notarizes a zip/dmg; we submit a zip and wait. +echo "Submitting for notarization (this can take a few minutes)…" +/usr/bin/ditto -c -k --keepParent "${APP_DIR}" "${ZIP}" +if [[ -n "${APPLE_API_KEY:-}" ]]; then + : "${APPLE_API_KEY_ID:?}"; : "${APPLE_API_ISSUER:?}" + xcrun notarytool submit "${ZIP}" \ + --key "${APPLE_API_KEY}" \ + --key-id "${APPLE_API_KEY_ID}" \ + --issuer "${APPLE_API_ISSUER}" \ + --wait +elif [[ -n "${NOTARY_PROFILE:-}" ]]; then + xcrun notarytool submit "${ZIP}" --keychain-profile "${NOTARY_PROFILE}" --wait +else + : "${APPLE_ID:?Set APPLE_API_KEY, NOTARY_PROFILE, or APPLE_ID}" + : "${APPLE_TEAM_ID:?}"; : "${APPLE_APP_PASSWORD:?}" + xcrun notarytool submit "${ZIP}" \ + --apple-id "${APPLE_ID}" \ + --team-id "${APPLE_TEAM_ID}" \ + --password "${APPLE_APP_PASSWORD}" \ + --wait +fi +rm -f "${ZIP}" + +# 5. Staple the ticket onto the .app so Gatekeeper passes it offline. +xcrun stapler staple "${APP_DIR}" + +# 6. Package a DMG (app + /Applications drop target) from the stapled app. +echo "Building ${DMG}…" +rm -f "${DMG}" +STAGING="dist/dmg-staging" +rm -rf "${STAGING}"; mkdir -p "${STAGING}" +cp -R "${APP_DIR}" "${STAGING}/" +ln -s /Applications "${STAGING}/Applications" +hdiutil create -volname "${APP_NAME}" -srcfolder "${STAGING}" -ov -format UDZO "${DMG}" +rm -rf "${STAGING}" + +echo +echo "Built ${DMG}" diff --git a/apps/macos/scripts/generate-icon.swift b/apps/macos/scripts/generate-icon.swift new file mode 100644 index 00000000..e80d0d7c --- /dev/null +++ b/apps/macos/scripts/generate-icon.swift @@ -0,0 +1,37 @@ +import AppKit + +let S: CGFloat = 1024 +let canvas = NSImage(size: NSSize(width: S, height: S)) +canvas.lockFocus() + +// Rounded-rect (squircle-ish) background with a dark slate gradient. +let inset: CGFloat = 0 // full-bleed squircle (macOS masks corners itself on recent OS, but we bake them) +let rect = NSRect(x: inset, y: inset, width: S - 2*inset, height: S - 2*inset) +let bg = NSBezierPath(roundedRect: rect, xRadius: 230, yRadius: 230) +bg.addClip() +NSGradient(colors: [NSColor(red:0.17,green:0.17,blue:0.19,alpha:1), + NSColor(red:0.10,green:0.10,blue:0.12,alpha:1)])! + .draw(in: rect, angle: -90) + +// Gradient-filled flame, centered. +let cfg = NSImage.SymbolConfiguration(pointSize: 640, weight: .bold) +let base = NSImage(systemSymbolName: "flame.fill", accessibilityDescription: nil)! + .withSymbolConfiguration(cfg)! +let fs = base.size +let gradImg = NSImage(size: fs); gradImg.lockFocus() +NSGradient(colors: [NSColor(red:1.0,green:0.62,blue:0.16,alpha:1), // orange (top) + NSColor(red:0.91,green:0.15,blue:0.12,alpha:1)])! // red (bottom) + .draw(in: NSRect(origin: .zero, size: fs), angle: -90) +gradImg.unlockFocus() +let flame = NSImage(size: fs); flame.lockFocus() +base.draw(in: NSRect(origin: .zero, size: fs)) +gradImg.draw(in: NSRect(origin: .zero, size: fs), from: .zero, operation: .sourceAtop, fraction: 1) +flame.unlockFocus() +let fx = (S - fs.width)/2, fy = (S - fs.height)/2 +flame.draw(in: NSRect(x: fx, y: fy, width: fs.width, height: fs.height)) + +canvas.unlockFocus() +let out = CommandLine.arguments.count > 1 ? CommandLine.arguments[1] : "/tmp/icon_1024.png" +let png = NSBitmapImageRep(data: canvas.tiffRepresentation!)!.representation(using: .png, properties: [:])! +try! png.write(to: URL(fileURLWithPath: out)) +print("wrote \(out)") diff --git a/apps/macos/scripts/make-icon.sh b/apps/macos/scripts/make-icon.sh new file mode 100755 index 00000000..b92c0240 --- /dev/null +++ b/apps/macos/scripts/make-icon.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# +# Regenerates App/AppIcon.icns from the flame artwork. Run after changing +# scripts/generate-icon.swift. Requires macOS (swift, sips, iconutil). +# +set -euo pipefail +cd "$(dirname "$0")/.." + +MASTER="$(mktemp -d)/icon_1024.png" +ICONSET="$(mktemp -d)/AppIcon.iconset" + +swift scripts/generate-icon.swift "$MASTER" +mkdir -p "$ICONSET" + +# name:size pairs for a macOS .icns +for entry in \ + "icon_16x16:16" "icon_16x16@2x:32" \ + "icon_32x32:32" "icon_32x32@2x:64" \ + "icon_128x128:128" "icon_128x128@2x:256" \ + "icon_256x256:256" "icon_256x256@2x:512" \ + "icon_512x512:512" "icon_512x512@2x:1024"; do + name="${entry%%:*}"; px="${entry##*:}" + sips -z "$px" "$px" "$MASTER" --out "$ICONSET/$name.png" >/dev/null +done + +iconutil -c icns "$ICONSET" -o App/AppIcon.icns +echo "Wrote App/AppIcon.icns" From a43b8a1747d9e8367389bfcf9f99a475ccc2e16e Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 10:28:20 -0400 Subject: [PATCH 2/8] Bundle native burn helper + add macOS release workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make ledger-backed spend work with no separate install, and wire up signed/notarized releases for the app. - Bundle a self-contained native `burn` (compiled from relayburn-cli) into AgentLimit.app/Contents/MacOS/burn. BurnLedger prefers this bundled helper (exec'd directly — no node/PATH needed) and only falls back to a `burn` on PATH for `swift run` dev builds. Spend now works out of the box and even builds the ledger from session logs on first run. - build.sh: `cargo build --release -p relayburn-cli` and copy the binary in (skipped with a warning if cargo is absent). release.sh signs the helper with a hardened runtime before the app. - .github/workflows/release-macos.yml: manual workflow_dispatch that builds, signs, notarizes, and publishes AgentLimit-arm64.dmg. Uses a macos-v* tag scheme + a moving macos-latest pointer for a stable download URL, so it never disturbs burn's own v* CLI releases or their "latest" pointer. Reuses the same Apple secrets as Pear. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/release-macos.yml | 126 ++++++++++++++++++ apps/macos/README.md | 39 +++--- .../macos/Sources/AgentLimit/BurnLedger.swift | 86 ++++++++---- apps/macos/build.sh | 13 ++ apps/macos/release.sh | 5 + 5 files changed, 228 insertions(+), 41 deletions(-) create mode 100644 .github/workflows/release-macos.yml diff --git a/.github/workflows/release-macos.yml b/.github/workflows/release-macos.yml new file mode 100644 index 00000000..a4b44cfb --- /dev/null +++ b/.github/workflows/release-macos.yml @@ -0,0 +1,126 @@ +name: Release (macOS app) + +# Manual trigger: Actions tab → "Release (macOS app)" → Run workflow. +# Builds, signs, notarizes, and publishes the apps/macos menu bar app as a DMG. +# Uses a `macos-v*` tag scheme (and a moving `macos-latest` pointer) so it never +# touches burn's own `v*` CLI releases or their `latest` pointer. +on: + workflow_dispatch: + +permissions: + contents: write + +jobs: + release: + runs-on: macos-14 + timeout-minutes: 60 + defaults: + run: + working-directory: apps/macos + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Compute date-based version + id: version + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + YEAR="$(date +%Y)" + MONTH="$((10#$(date +%m)))" + COUNT="$(gh api --paginate "repos/${GITHUB_REPOSITORY}/releases" \ + --jq '.[].tag_name' | grep -Ec "^macos-v${YEAR}\.${MONTH}\." || true)" + N="$((COUNT + 1))" + VERSION="${YEAR}.${MONTH}.${N}" + echo "Release #${N} for ${YEAR}-$(date +%m) -> macos-v${VERSION}" + echo "version=${VERSION}" >> "$GITHUB_OUTPUT" + echo "tag=macos-v${VERSION}" >> "$GITHUB_OUTPUT" + + - name: Generate changelog + id: changelog + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + TAG="${{ steps.version.outputs.tag }}" + PREVIOUS_TAG="$(git tag --sort=-version:refname | grep -E '^macos-v[0-9]' | grep -v "^${TAG}$" | head -n 1 || true)" + NOTES_FILE="${RUNNER_TEMP}/release-notes.md" + args=(-f "tag_name=${TAG}" -f "target_commitish=${GITHUB_SHA}") + if [ -n "${PREVIOUS_TAG}" ]; then + args+=(-f "previous_tag_name=${PREVIOUS_TAG}") + fi + gh api "repos/${GITHUB_REPOSITORY}/releases/generate-notes" \ + "${args[@]}" --jq ".body" > "${NOTES_FILE}" + echo "notes_file=${NOTES_FILE}" >> "$GITHUB_OUTPUT" + + - name: Decode App Store Connect API key (.p8) + env: + APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }} + run: | + mkdir -p "$HOME/private_keys" + echo "$APPLE_API_KEY_BASE64" | base64 --decode > "$HOME/private_keys/AuthKey.p8" + echo "APPLE_API_KEY=$HOME/private_keys/AuthKey.p8" >> "$GITHUB_ENV" + + - name: Import Developer ID certificate + env: + CSC_LINK: ${{ secrets.CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} + run: | + KEYCHAIN="$RUNNER_TEMP/app-signing.keychain-db" + KCPW="$(uuidgen)" + echo "$CSC_LINK" | base64 --decode > "$RUNNER_TEMP/certificate.p12" + security create-keychain -p "$KCPW" "$KEYCHAIN" + security set-keychain-settings -lut 21600 "$KEYCHAIN" + security unlock-keychain -p "$KCPW" "$KEYCHAIN" + security import "$RUNNER_TEMP/certificate.p12" -k "$KEYCHAIN" \ + -P "$CSC_KEY_PASSWORD" -T /usr/bin/codesign + security set-key-partition-list -S apple-tool:,apple: \ + -s -k "$KCPW" "$KEYCHAIN" + security list-keychains -d user -s "$KEYCHAIN" \ + $(security list-keychains -d user | sed s/\"//g) + + - name: Build, sign, notarize & package + env: + VERSION: ${{ steps.version.outputs.version }} + APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} + APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} + run: | + for attempt in 1 2 3; do + if ./release.sh; then exit 0; fi + echo "release attempt ${attempt} failed; retrying in 60s..." + sleep 60 + done + echo "release failed after 3 attempts" + exit 1 + + - name: Publish GitHub Release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + TAG="${{ steps.version.outputs.tag }}" + DMG="dist/AgentLimit-arm64.dmg" + # Versioned release (history). Not marked --latest: burn's own v* CLI + # releases own the repo's "latest" pointer. + gh release create "${TAG}" "${DMG}" \ + --repo "${GITHUB_REPOSITORY}" \ + --target "${GITHUB_SHA}" \ + --title "Agent Limit ${{ steps.version.outputs.version }}" \ + --notes-file "${{ steps.changelog.outputs.notes_file }}" + # Moving pointer for a stable download URL: + # releases/download/macos-latest/AgentLimit-arm64.dmg + gh release delete macos-latest --repo "${GITHUB_REPOSITORY}" --yes --cleanup-tag || true + gh release create macos-latest "${DMG}" \ + --repo "${GITHUB_REPOSITORY}" \ + --target "${GITHUB_SHA}" \ + --title "Agent Limit (latest)" \ + --notes "Latest macOS app build — points at ${TAG}." + + - name: Upload build artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: agentlimit-macos-${{ github.run_id }} + path: apps/macos/dist/*.dmg + if-no-files-found: warn + retention-days: 30 diff --git a/apps/macos/README.md b/apps/macos/README.md index c1cbe590..64589d4f 100644 --- a/apps/macos/README.md +++ b/apps/macos/README.md @@ -40,7 +40,13 @@ If a provider isn't authenticated, run `claude` or `codex` once to log in. Spend figures are read from the burn ledger (`~/.agentworkforce/burn/`) by shelling out to `burn summary --provider

--since --json` — cost isn't stored in the ledger, so we let burn price it rather than re-deriving -its pricing table. The spend line is hidden when `burn` isn't on `PATH`. +its pricing table. + +The release build **bundles a native `burn` binary** (compiled from this repo's +`relayburn-cli`) inside the app, so spend works with **no separate install** — +it even builds the ledger from your session logs on first run. Dev builds run +via `swift run` fall back to a `burn` on `PATH`; the spend line is hidden only if +neither is available. The first time it reads the Claude keychain item, macOS may prompt you to allow access — choose **Always Allow**. @@ -49,7 +55,7 @@ access — choose **Always Allow**. Download the latest DMG, open it, and drag **Agent Limit** to **Applications**: -> **[⬇ AgentLimit-arm64.dmg](../../releases/latest/download/AgentLimit-arm64.dmg)** +> **[⬇ AgentLimit-arm64.dmg](../../releases/download/macos-latest/AgentLimit-arm64.dmg)** > (Apple Silicon) The build is signed and notarized, so it launches without Gatekeeper warnings. @@ -98,6 +104,7 @@ Sources/AgentLimit/ UsageHistory.swift Persists samples for the usage curve Burndown.swift Turns samples into chart data Models.swift Shared types + BurnLedger.swift Reads spend from the bundled/PATH `burn` binary Resources/ claude.svg, openai.svg (lobe-icons, MIT) ``` @@ -105,23 +112,25 @@ Brand icons are from [lobe-icons](https://github.com/lobehub/lobe-icons) (MIT). ## Releasing -Set up the same way as [Pear](../../../pear): signed + notarized DMG published to -GitHub Releases, using the **same repository secrets** so one set of Apple -credentials covers both repos. +Signed + notarized DMG published to GitHub Releases, using the **same Apple +secrets** as Pear so one set of credentials covers both. -To cut a release, go to **Actions → "Release (macOS)" → Run workflow**. The -[workflow](.github/workflows/release.yml): +To cut a release, go to **Actions → "Release (macOS app)" → Run workflow**. The +[workflow](../../.github/workflows/release-macos.yml): -1. computes a **date-based version** `YEAR.MONTH.N` (N = the next release this - month) and tag `vYEAR.MONTH.N` — nothing is committed; -2. generates release notes from the commits since the last tag; -3. signs with a hardened runtime, notarizes via the App Store Connect API key, - staples, and builds `AgentLimit-arm64.dmg`; -4. publishes the release as **latest**, so the stable - `releases/latest/download/AgentLimit-arm64.dmg` link always points at it. +1. computes a **date-based version** `YEAR.MONTH.N` and tag `macos-vYEAR.MONTH.N` + — a `macos-v*` scheme so it never touches burn's own `v*` CLI releases; +2. generates release notes from commits since the last `macos-v*` tag; +3. builds the app **and the native `burn` helper** (`cargo build -p + relayburn-cli`), bundles + signs both with a hardened runtime, notarizes via + the App Store Connect API key, staples, and packages `AgentLimit-arm64.dmg`; +4. publishes a versioned release (history) and moves a `macos-latest` pointer so + `releases/download/macos-latest/AgentLimit-arm64.dmg` is a stable link. It is + **not** marked the repo's "latest" — that belongs to burn's CLI releases. `release.sh` runs the same build/sign/notarize/package steps locally (set -`VERSION` and the Apple env vars listed at the top of the script). +`VERSION` and the Apple env vars listed at the top of the script). It needs both +the Swift and Rust toolchains (for the bundled `burn`). Required repository **secrets** (Settings → Secrets and variables → Actions) — identical to Pear's: diff --git a/apps/macos/Sources/AgentLimit/BurnLedger.swift b/apps/macos/Sources/AgentLimit/BurnLedger.swift index e22b2f20..030c409f 100644 --- a/apps/macos/Sources/AgentLimit/BurnLedger.swift +++ b/apps/macos/Sources/AgentLimit/BurnLedger.swift @@ -1,10 +1,13 @@ import Foundation -/// Reads authoritative spend figures from the locally-installed `burn` CLI -/// (relayburn) ledger. Cost is *not* stored in the ledger — burn computes it -/// from its pricing table — so we shell out to `burn` rather than re-derive -/// pricing here. Every method returns `nil` when burn isn't available, letting -/// the UI simply hide the spend line. +/// Reads authoritative spend figures from the burn ledger. Cost is *not* stored +/// in the ledger — burn computes it from its pricing table — so we invoke the +/// `burn` binary rather than re-derive pricing here. +/// +/// Prefers the native `burn` helper bundled inside the app (so spend works with +/// no separate install), and falls back to a `burn` on `PATH` for dev builds +/// run via `swift run`. Returns `nil` when neither is available, letting the UI +/// hide the spend line. actor BurnLedger { static let shared = BurnLedger() @@ -16,16 +19,20 @@ actor BurnLedger { } } - private enum Availability { case unknown, missing, present } - private var availability: Availability = .unknown + private enum Tool { + case unknown + case bundled(URL) // self-contained native binary in the app bundle + case path // a `burn` on PATH (resolved via a login shell) + case missing + } + private var tool: Tool = .unknown /// Total USD spend for `provider` since `since`, or `nil` if burn is /// unavailable or the query fails. func cost(provider: String, since: Date) async -> Double? { - guard isAvailable() else { return nil } let iso = ISO8601DateFormatter().string(from: since) - let command = "burn summary --provider \(provider) --since \(iso) --json" - guard let output = run(command), + let args = ["summary", "--provider", provider, "--since", iso, "--json"] + guard let output = runBurn(args), let data = output.data(using: .utf8), let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], let totalCost = json["totalCost"] as? [String: Any], @@ -34,27 +41,50 @@ actor BurnLedger { return total } - // MARK: - Subprocess + // MARK: - Resolution & invocation + + private func resolveTool() -> Tool { + if case .unknown = tool { + if let url = Bundle.main.url(forAuxiliaryExecutable: "burn"), + FileManager.default.isExecutableFile(atPath: url.path) { + tool = .bundled(url) + } else if !(loginShell("command -v burn")? + .trimmingCharacters(in: .whitespacesAndNewlines) ?? "").isEmpty { + tool = .path + } else { + tool = .missing + } + } + return tool + } + + private func runBurn(_ args: [String]) -> String? { + switch resolveTool() { + case .bundled(let url): + // Self-contained Rust binary — exec directly, no shell needed. + return capture { $0.executableURL = url; $0.arguments = args } + case .path: + // Run through a login shell so nvm/Homebrew PATH (and the `node` the + // npm `burn` shim needs) resolve even when launched from Finder. + let command = "burn " + args.map(shellQuote).joined(separator: " ") + return loginShell(command) + case .missing, .unknown: + return nil + } + } - private func isAvailable() -> Bool { - switch availability { - case .present: return true - case .missing: return false - case .unknown: - let found = !(run("command -v burn")? - .trimmingCharacters(in: .whitespacesAndNewlines) ?? "").isEmpty - availability = found ? .present : .missing - return found + private func loginShell(_ command: String) -> String? { + capture { + $0.executableURL = URL(fileURLWithPath: "/bin/zsh") + $0.arguments = ["-lc", command] } } - /// Runs a command in a login shell — so nvm/Homebrew PATH (and the `node` - /// the `burn` shim needs) resolve even when launched from Finder — and - /// returns stdout, or `nil` on failure / nonzero exit. - private func run(_ command: String) -> String? { + /// Runs a configured process and returns stdout, or `nil` on failure / + /// nonzero exit. + private func capture(_ configure: (Process) -> Void) -> String? { let process = Process() - process.executableURL = URL(fileURLWithPath: "/bin/zsh") - process.arguments = ["-lc", command] + configure(process) let stdout = Pipe() process.standardOutput = stdout process.standardError = Pipe() @@ -68,4 +98,8 @@ actor BurnLedger { guard process.terminationStatus == 0 else { return nil } return String(data: data, encoding: .utf8) } + + private func shellQuote(_ value: String) -> String { + "'" + value.replacingOccurrences(of: "'", with: "'\\''") + "'" + } } diff --git a/apps/macos/build.sh b/apps/macos/build.sh index acc3ba20..92dfc6e3 100755 --- a/apps/macos/build.sh +++ b/apps/macos/build.sh @@ -30,6 +30,19 @@ for bundle in "$BIN_PATH"/*.bundle; do [ -e "$bundle" ] && cp -R "$bundle" "$APP_DIR/Contents/Resources/" done +# Bundle the native `burn` helper (self-contained Rust binary from this repo's +# relayburn-cli) into Contents/MacOS so spend works with no separate install. +# Skipped if cargo is unavailable — the app then falls back to a `burn` on PATH. +REPO_ROOT="$(cd ../.. && pwd)" +if command -v cargo >/dev/null 2>&1; then + echo "Building burn helper (cargo)…" + ( cd "$REPO_ROOT" && cargo build --release -p relayburn-cli ) + cp "$REPO_ROOT/target/release/burn" "$APP_DIR/Contents/MacOS/burn" +else + echo "warning: cargo not found — skipping bundled burn helper (spend will" + echo " require a 'burn' on PATH at runtime)." +fi + echo "Built $APP_DIR" echo echo "Launch it with: open \"$APP_DIR\"" diff --git a/apps/macos/release.sh b/apps/macos/release.sh index 653df348..9cea7fe0 100755 --- a/apps/macos/release.sh +++ b/apps/macos/release.sh @@ -55,6 +55,11 @@ while IFS= read -r -d '' bundle; do codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "$bundle" done < <(find "${APP_DIR}/Contents/Resources" -maxdepth 1 -name "*.bundle" -print0) +# Sign the bundled burn helper (if present) before the main executable. +if [[ -f "${APP_DIR}/Contents/MacOS/burn" ]]; then + codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/burn" +fi + codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/${APP_NAME}" codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}" codesign --verify --deep --strict --verbose=2 "${APP_DIR}" From 3bd1884146f6e8c5d59da8305be4fc73c31eaf75 Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 10:39:06 -0400 Subject: [PATCH 3/8] Rename the product to Burn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rename the macOS app from "Agent Limit" to "Burn" throughout: - Bundle: CFBundleName/DisplayName/Executable = Burn; identifier com.agentworkforce.burn. App is now Burn.app. - SwiftPM target/module AgentLimit → Burn (Sources/AgentLimit → Sources/Burn, AgentLimitApp → BurnApp). Application Support dir → Burn. - Bundled helper renamed burn → burn-cli to avoid colliding with the `Burn` executable on case-insensitive filesystems; BurnLedger looks up burn-cli. - DMG is Burn-arm64.dmg; release-macos.yml titles "Burn for Mac". - README + scripts updated. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/release-macos.yml | 8 ++++---- apps/macos/App/Info.plist | 8 ++++---- apps/macos/Package.swift | 6 +++--- apps/macos/README.md | 20 +++++++++---------- .../{AgentLimit => Burn}/BrandIcon.swift | 0 .../BurnApp.swift} | 2 +- .../{AgentLimit => Burn}/BurnLedger.swift | 2 +- .../{AgentLimit => Burn}/Burndown.swift | 0 .../BurndownChartView.swift | 0 .../{AgentLimit => Burn}/ContentView.swift | 0 .../{AgentLimit => Burn}/Credentials.swift | 0 .../Sources/{AgentLimit => Burn}/Models.swift | 0 .../{AgentLimit => Burn}/Providers.swift | 0 .../{AgentLimit => Burn}/Resources/claude.svg | 0 .../{AgentLimit => Burn}/Resources/openai.svg | 0 .../{AgentLimit => Burn}/UsageHistory.swift | 4 ++-- .../{AgentLimit => Burn}/UsageViewModel.swift | 0 apps/macos/build.sh | 10 ++++++---- apps/macos/release.sh | 8 ++++---- 19 files changed, 35 insertions(+), 33 deletions(-) rename apps/macos/Sources/{AgentLimit => Burn}/BrandIcon.swift (100%) rename apps/macos/Sources/{AgentLimit/AgentLimitApp.swift => Burn/BurnApp.swift} (98%) rename apps/macos/Sources/{AgentLimit => Burn}/BurnLedger.swift (99%) rename apps/macos/Sources/{AgentLimit => Burn}/Burndown.swift (100%) rename apps/macos/Sources/{AgentLimit => Burn}/BurndownChartView.swift (100%) rename apps/macos/Sources/{AgentLimit => Burn}/ContentView.swift (100%) rename apps/macos/Sources/{AgentLimit => Burn}/Credentials.swift (100%) rename apps/macos/Sources/{AgentLimit => Burn}/Models.swift (100%) rename apps/macos/Sources/{AgentLimit => Burn}/Providers.swift (100%) rename apps/macos/Sources/{AgentLimit => Burn}/Resources/claude.svg (100%) rename apps/macos/Sources/{AgentLimit => Burn}/Resources/openai.svg (100%) rename apps/macos/Sources/{AgentLimit => Burn}/UsageHistory.swift (97%) rename apps/macos/Sources/{AgentLimit => Burn}/UsageViewModel.swift (100%) diff --git a/.github/workflows/release-macos.yml b/.github/workflows/release-macos.yml index a4b44cfb..79c0e9df 100644 --- a/.github/workflows/release-macos.yml +++ b/.github/workflows/release-macos.yml @@ -99,21 +99,21 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | TAG="${{ steps.version.outputs.tag }}" - DMG="dist/AgentLimit-arm64.dmg" + DMG="dist/Burn-arm64.dmg" # Versioned release (history). Not marked --latest: burn's own v* CLI # releases own the repo's "latest" pointer. gh release create "${TAG}" "${DMG}" \ --repo "${GITHUB_REPOSITORY}" \ --target "${GITHUB_SHA}" \ - --title "Agent Limit ${{ steps.version.outputs.version }}" \ + --title "Burn for Mac ${{ steps.version.outputs.version }}" \ --notes-file "${{ steps.changelog.outputs.notes_file }}" # Moving pointer for a stable download URL: - # releases/download/macos-latest/AgentLimit-arm64.dmg + # releases/download/macos-latest/Burn-arm64.dmg gh release delete macos-latest --repo "${GITHUB_REPOSITORY}" --yes --cleanup-tag || true gh release create macos-latest "${DMG}" \ --repo "${GITHUB_REPOSITORY}" \ --target "${GITHUB_SHA}" \ - --title "Agent Limit (latest)" \ + --title "Burn for Mac (latest)" \ --notes "Latest macOS app build — points at ${TAG}." - name: Upload build artifacts diff --git a/apps/macos/App/Info.plist b/apps/macos/App/Info.plist index 5fbf00aa..34d64448 100644 --- a/apps/macos/App/Info.plist +++ b/apps/macos/App/Info.plist @@ -3,15 +3,15 @@ CFBundleName - AgentLimit + Burn CFBundleDisplayName - Agent Limit + Burn CFBundleExecutable - AgentLimit + Burn CFBundleIconFile AppIcon CFBundleIdentifier - com.agentworkforce.agentlimit + com.agentworkforce.burn CFBundlePackageType APPL CFBundleShortVersionString diff --git a/apps/macos/Package.swift b/apps/macos/Package.swift index 8832b298..7f620851 100644 --- a/apps/macos/Package.swift +++ b/apps/macos/Package.swift @@ -2,14 +2,14 @@ import PackageDescription let package = Package( - name: "AgentLimit", + name: "Burn", platforms: [ .macOS(.v13) ], targets: [ .executableTarget( - name: "AgentLimit", - path: "Sources/AgentLimit", + name: "Burn", + path: "Sources/Burn", resources: [ .process("Resources") ] diff --git a/apps/macos/README.md b/apps/macos/README.md index 64589d4f..f3954074 100644 --- a/apps/macos/README.md +++ b/apps/macos/README.md @@ -1,4 +1,4 @@ -# Agent Limit — burn's macOS app +# Burn for Mac The macOS **menu bar app** for [burn](../../). It shows your **Claude Code** and **Codex** usage limits as burndown charts — so you can see at a glance whether @@ -53,9 +53,9 @@ access — choose **Always Allow**. ## Install -Download the latest DMG, open it, and drag **Agent Limit** to **Applications**: +Download the latest DMG, open it, and drag **Burn** to **Applications**: -> **[⬇ AgentLimit-arm64.dmg](../../releases/download/macos-latest/AgentLimit-arm64.dmg)** +> **[⬇ Burn-arm64.dmg](../../releases/download/macos-latest/Burn-arm64.dmg)** > (Apple Silicon) The build is signed and notarized, so it launches without Gatekeeper warnings. @@ -69,13 +69,13 @@ Requires macOS 13+ and the Swift toolchain (Xcode or the Command Line Tools). ```bash ./build.sh -open dist/AgentLimit.app +open dist/Burn.app ``` To install it permanently: ```bash -cp -R dist/AgentLimit.app /Applications/ +cp -R dist/Burn.app /Applications/ ``` For development you can also run straight from the package: @@ -90,11 +90,11 @@ swift run Package.swift Swift package manifest App/Info.plist Bundle metadata (LSUIElement → menu-bar-only app) App/AppIcon.icns App icon (regenerate with scripts/make-icon.sh) -build.sh Builds AgentLimit.app +build.sh Builds Burn.app release.sh Signs, notarizes & packages the DMG scripts/ Icon generator -Sources/AgentLimit/ - AgentLimitApp.swift App entry point + menu bar label +Sources/Burn/ + BurnApp.swift App entry point + menu bar label ContentView.swift Popover UI + provider icon picker BurndownChartView.swift Swift Charts burndown card BrandIcon.swift Loads/tints the lobe-icons SVGs @@ -123,9 +123,9 @@ To cut a release, go to **Actions → "Release (macOS app)" → Run workflow**. 2. generates release notes from commits since the last `macos-v*` tag; 3. builds the app **and the native `burn` helper** (`cargo build -p relayburn-cli`), bundles + signs both with a hardened runtime, notarizes via - the App Store Connect API key, staples, and packages `AgentLimit-arm64.dmg`; + the App Store Connect API key, staples, and packages `Burn-arm64.dmg`; 4. publishes a versioned release (history) and moves a `macos-latest` pointer so - `releases/download/macos-latest/AgentLimit-arm64.dmg` is a stable link. It is + `releases/download/macos-latest/Burn-arm64.dmg` is a stable link. It is **not** marked the repo's "latest" — that belongs to burn's CLI releases. `release.sh` runs the same build/sign/notarize/package steps locally (set diff --git a/apps/macos/Sources/AgentLimit/BrandIcon.swift b/apps/macos/Sources/Burn/BrandIcon.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/BrandIcon.swift rename to apps/macos/Sources/Burn/BrandIcon.swift diff --git a/apps/macos/Sources/AgentLimit/AgentLimitApp.swift b/apps/macos/Sources/Burn/BurnApp.swift similarity index 98% rename from apps/macos/Sources/AgentLimit/AgentLimitApp.swift rename to apps/macos/Sources/Burn/BurnApp.swift index 07784302..bee38141 100644 --- a/apps/macos/Sources/AgentLimit/AgentLimitApp.swift +++ b/apps/macos/Sources/Burn/BurnApp.swift @@ -1,7 +1,7 @@ import SwiftUI @main -struct AgentLimitApp: App { +struct BurnApp: App { @StateObject private var viewModel = UsageViewModel() var body: some Scene { diff --git a/apps/macos/Sources/AgentLimit/BurnLedger.swift b/apps/macos/Sources/Burn/BurnLedger.swift similarity index 99% rename from apps/macos/Sources/AgentLimit/BurnLedger.swift rename to apps/macos/Sources/Burn/BurnLedger.swift index 030c409f..d51975e1 100644 --- a/apps/macos/Sources/AgentLimit/BurnLedger.swift +++ b/apps/macos/Sources/Burn/BurnLedger.swift @@ -45,7 +45,7 @@ actor BurnLedger { private func resolveTool() -> Tool { if case .unknown = tool { - if let url = Bundle.main.url(forAuxiliaryExecutable: "burn"), + if let url = Bundle.main.url(forAuxiliaryExecutable: "burn-cli"), FileManager.default.isExecutableFile(atPath: url.path) { tool = .bundled(url) } else if !(loginShell("command -v burn")? diff --git a/apps/macos/Sources/AgentLimit/Burndown.swift b/apps/macos/Sources/Burn/Burndown.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/Burndown.swift rename to apps/macos/Sources/Burn/Burndown.swift diff --git a/apps/macos/Sources/AgentLimit/BurndownChartView.swift b/apps/macos/Sources/Burn/BurndownChartView.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/BurndownChartView.swift rename to apps/macos/Sources/Burn/BurndownChartView.swift diff --git a/apps/macos/Sources/AgentLimit/ContentView.swift b/apps/macos/Sources/Burn/ContentView.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/ContentView.swift rename to apps/macos/Sources/Burn/ContentView.swift diff --git a/apps/macos/Sources/AgentLimit/Credentials.swift b/apps/macos/Sources/Burn/Credentials.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/Credentials.swift rename to apps/macos/Sources/Burn/Credentials.swift diff --git a/apps/macos/Sources/AgentLimit/Models.swift b/apps/macos/Sources/Burn/Models.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/Models.swift rename to apps/macos/Sources/Burn/Models.swift diff --git a/apps/macos/Sources/AgentLimit/Providers.swift b/apps/macos/Sources/Burn/Providers.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/Providers.swift rename to apps/macos/Sources/Burn/Providers.swift diff --git a/apps/macos/Sources/AgentLimit/Resources/claude.svg b/apps/macos/Sources/Burn/Resources/claude.svg similarity index 100% rename from apps/macos/Sources/AgentLimit/Resources/claude.svg rename to apps/macos/Sources/Burn/Resources/claude.svg diff --git a/apps/macos/Sources/AgentLimit/Resources/openai.svg b/apps/macos/Sources/Burn/Resources/openai.svg similarity index 100% rename from apps/macos/Sources/AgentLimit/Resources/openai.svg rename to apps/macos/Sources/Burn/Resources/openai.svg diff --git a/apps/macos/Sources/AgentLimit/UsageHistory.swift b/apps/macos/Sources/Burn/UsageHistory.swift similarity index 97% rename from apps/macos/Sources/AgentLimit/UsageHistory.swift rename to apps/macos/Sources/Burn/UsageHistory.swift index 65d1da48..3f8e184f 100644 --- a/apps/macos/Sources/AgentLimit/UsageHistory.swift +++ b/apps/macos/Sources/Burn/UsageHistory.swift @@ -14,14 +14,14 @@ struct UsageSample: Codable { final class UsageHistoryStore { static let shared = UsageHistoryStore() - private let queue = DispatchQueue(label: "com.agentworkforce.agentlimit.history") + private let queue = DispatchQueue(label: "com.agentworkforce.burn.history") private var cache: [String: [UsageSample]] = [:] private let fileURL: URL private init() { let dir = FileManager.default .urls(for: .applicationSupportDirectory, in: .userDomainMask)[0] - .appendingPathComponent("AgentLimit", isDirectory: true) + .appendingPathComponent("Burn", isDirectory: true) try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true) fileURL = dir.appendingPathComponent("history.json") diff --git a/apps/macos/Sources/AgentLimit/UsageViewModel.swift b/apps/macos/Sources/Burn/UsageViewModel.swift similarity index 100% rename from apps/macos/Sources/AgentLimit/UsageViewModel.swift rename to apps/macos/Sources/Burn/UsageViewModel.swift diff --git a/apps/macos/build.sh b/apps/macos/build.sh index 92dfc6e3..02b39ae6 100755 --- a/apps/macos/build.sh +++ b/apps/macos/build.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash # -# Builds AgentLimit.app — a macOS menu bar app — from the Swift package. +# Builds Burn.app — a macOS menu bar app — from the Swift package. # Requires macOS with the Swift toolchain (Xcode or Command Line Tools). # set -euo pipefail -APP_NAME="AgentLimit" +APP_NAME="Burn" CONFIG="release" cd "$(dirname "$0")" @@ -32,12 +32,14 @@ done # Bundle the native `burn` helper (self-contained Rust binary from this repo's # relayburn-cli) into Contents/MacOS so spend works with no separate install. -# Skipped if cargo is unavailable — the app then falls back to a `burn` on PATH. +# Named `burn-cli` to avoid colliding with the `Burn` app executable on +# case-insensitive filesystems. Skipped if cargo is unavailable — the app then +# falls back to a `burn` on PATH. REPO_ROOT="$(cd ../.. && pwd)" if command -v cargo >/dev/null 2>&1; then echo "Building burn helper (cargo)…" ( cd "$REPO_ROOT" && cargo build --release -p relayburn-cli ) - cp "$REPO_ROOT/target/release/burn" "$APP_DIR/Contents/MacOS/burn" + cp "$REPO_ROOT/target/release/burn" "$APP_DIR/Contents/MacOS/burn-cli" else echo "warning: cargo not found — skipping bundled burn helper (spend will" echo " require a 'burn' on PATH at runtime)." diff --git a/apps/macos/release.sh b/apps/macos/release.sh index 9cea7fe0..925e5619 100755 --- a/apps/macos/release.sh +++ b/apps/macos/release.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Builds, signs, notarizes, and packages AgentLimit.app into a distributable +# Builds, signs, notarizes, and packages Burn.app into a distributable # DMG. Runs locally or in CI — all credentials come from the environment. # # Mirrors the Pear release flow: Developer ID signing + notarization via an @@ -23,7 +23,7 @@ # set -euo pipefail -APP_NAME="AgentLimit" +APP_NAME="Burn" ARCH="$(uname -m)" # arm64 on Apple Silicon CI/runners APP_DIR="dist/${APP_NAME}.app" DMG="dist/${APP_NAME}-${ARCH}.dmg" @@ -56,8 +56,8 @@ while IFS= read -r -d '' bundle; do done < <(find "${APP_DIR}/Contents/Resources" -maxdepth 1 -name "*.bundle" -print0) # Sign the bundled burn helper (if present) before the main executable. -if [[ -f "${APP_DIR}/Contents/MacOS/burn" ]]; then - codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/burn" +if [[ -f "${APP_DIR}/Contents/MacOS/burn-cli" ]]; then + codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/burn-cli" fi codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/${APP_NAME}" From a655e5b489ff562c38940c03aeaccef1e8514b6f Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 13:35:15 -0400 Subject: [PATCH 4/8] Name the app BurnOSX; keep the CLI as `burn` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverse the earlier naming: the CLI keeps the canonical `burn` name and the macOS utility becomes BurnOSX (display name still "Burn"). - App bundle BurnOSX.app, executable BurnOSX, id com.agentworkforce.burnosx, DMG BurnOSX-arm64.dmg. CFBundleDisplayName stays "Burn" so Finder/menu show "Burn". - Bundled CLI helper restored to `burn` (was burn-cli) — no collision now that the app executable is BurnOSX, not Burn. BurnLedger looks up `burn`. - build.sh decouples the SwiftPM target (Burn) from the bundled app name (BurnOSX), so the internal module/Sources stay Burn without churn. - release-macos.yml + README updated to BurnOSX-arm64.dmg. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/release-macos.yml | 4 ++-- apps/macos/App/Info.plist | 6 +++--- apps/macos/README.md | 12 ++++++------ apps/macos/Sources/Burn/BurnLedger.swift | 2 +- apps/macos/build.sh | 16 ++++++++-------- apps/macos/release.sh | 10 +++++----- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/release-macos.yml b/.github/workflows/release-macos.yml index 79c0e9df..f2914e5d 100644 --- a/.github/workflows/release-macos.yml +++ b/.github/workflows/release-macos.yml @@ -99,7 +99,7 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | TAG="${{ steps.version.outputs.tag }}" - DMG="dist/Burn-arm64.dmg" + DMG="dist/BurnOSX-arm64.dmg" # Versioned release (history). Not marked --latest: burn's own v* CLI # releases own the repo's "latest" pointer. gh release create "${TAG}" "${DMG}" \ @@ -108,7 +108,7 @@ jobs: --title "Burn for Mac ${{ steps.version.outputs.version }}" \ --notes-file "${{ steps.changelog.outputs.notes_file }}" # Moving pointer for a stable download URL: - # releases/download/macos-latest/Burn-arm64.dmg + # releases/download/macos-latest/BurnOSX-arm64.dmg gh release delete macos-latest --repo "${GITHUB_REPOSITORY}" --yes --cleanup-tag || true gh release create macos-latest "${DMG}" \ --repo "${GITHUB_REPOSITORY}" \ diff --git a/apps/macos/App/Info.plist b/apps/macos/App/Info.plist index 34d64448..07475fbe 100644 --- a/apps/macos/App/Info.plist +++ b/apps/macos/App/Info.plist @@ -3,15 +3,15 @@ CFBundleName - Burn + BurnOSX CFBundleDisplayName Burn CFBundleExecutable - Burn + BurnOSX CFBundleIconFile AppIcon CFBundleIdentifier - com.agentworkforce.burn + com.agentworkforce.burnosx CFBundlePackageType APPL CFBundleShortVersionString diff --git a/apps/macos/README.md b/apps/macos/README.md index f3954074..7e542aee 100644 --- a/apps/macos/README.md +++ b/apps/macos/README.md @@ -55,7 +55,7 @@ access — choose **Always Allow**. Download the latest DMG, open it, and drag **Burn** to **Applications**: -> **[⬇ Burn-arm64.dmg](../../releases/download/macos-latest/Burn-arm64.dmg)** +> **[⬇ BurnOSX-arm64.dmg](../../releases/download/macos-latest/BurnOSX-arm64.dmg)** > (Apple Silicon) The build is signed and notarized, so it launches without Gatekeeper warnings. @@ -69,13 +69,13 @@ Requires macOS 13+ and the Swift toolchain (Xcode or the Command Line Tools). ```bash ./build.sh -open dist/Burn.app +open dist/BurnOSX.app ``` To install it permanently: ```bash -cp -R dist/Burn.app /Applications/ +cp -R dist/BurnOSX.app /Applications/ ``` For development you can also run straight from the package: @@ -90,7 +90,7 @@ swift run Package.swift Swift package manifest App/Info.plist Bundle metadata (LSUIElement → menu-bar-only app) App/AppIcon.icns App icon (regenerate with scripts/make-icon.sh) -build.sh Builds Burn.app +build.sh Builds BurnOSX.app release.sh Signs, notarizes & packages the DMG scripts/ Icon generator Sources/Burn/ @@ -123,9 +123,9 @@ To cut a release, go to **Actions → "Release (macOS app)" → Run workflow**. 2. generates release notes from commits since the last `macos-v*` tag; 3. builds the app **and the native `burn` helper** (`cargo build -p relayburn-cli`), bundles + signs both with a hardened runtime, notarizes via - the App Store Connect API key, staples, and packages `Burn-arm64.dmg`; + the App Store Connect API key, staples, and packages `BurnOSX-arm64.dmg`; 4. publishes a versioned release (history) and moves a `macos-latest` pointer so - `releases/download/macos-latest/Burn-arm64.dmg` is a stable link. It is + `releases/download/macos-latest/BurnOSX-arm64.dmg` is a stable link. It is **not** marked the repo's "latest" — that belongs to burn's CLI releases. `release.sh` runs the same build/sign/notarize/package steps locally (set diff --git a/apps/macos/Sources/Burn/BurnLedger.swift b/apps/macos/Sources/Burn/BurnLedger.swift index d51975e1..030c409f 100644 --- a/apps/macos/Sources/Burn/BurnLedger.swift +++ b/apps/macos/Sources/Burn/BurnLedger.swift @@ -45,7 +45,7 @@ actor BurnLedger { private func resolveTool() -> Tool { if case .unknown = tool { - if let url = Bundle.main.url(forAuxiliaryExecutable: "burn-cli"), + if let url = Bundle.main.url(forAuxiliaryExecutable: "burn"), FileManager.default.isExecutableFile(atPath: url.path) { tool = .bundled(url) } else if !(loginShell("command -v burn")? diff --git a/apps/macos/build.sh b/apps/macos/build.sh index 02b39ae6..ba66f5dc 100755 --- a/apps/macos/build.sh +++ b/apps/macos/build.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash # -# Builds Burn.app — a macOS menu bar app — from the Swift package. +# Builds BurnOSX.app — the Burn macOS menu bar app — from the Swift package. # Requires macOS with the Swift toolchain (Xcode or Command Line Tools). # set -euo pipefail -APP_NAME="Burn" +TARGET="Burn" # SwiftPM executable target (internal module + binary name) +APP_NAME="BurnOSX" # product: .app bundle, Contents/MacOS executable, DMG CONFIG="release" cd "$(dirname "$0")" @@ -20,7 +21,7 @@ rm -rf "$APP_DIR" mkdir -p "$APP_DIR/Contents/MacOS" mkdir -p "$APP_DIR/Contents/Resources" -cp "$BIN_PATH/$APP_NAME" "$APP_DIR/Contents/MacOS/$APP_NAME" +cp "$BIN_PATH/$TARGET" "$APP_DIR/Contents/MacOS/$APP_NAME" cp "App/Info.plist" "$APP_DIR/Contents/Info.plist" cp "App/AppIcon.icns" "$APP_DIR/Contents/Resources/AppIcon.icns" @@ -30,16 +31,15 @@ for bundle in "$BIN_PATH"/*.bundle; do [ -e "$bundle" ] && cp -R "$bundle" "$APP_DIR/Contents/Resources/" done -# Bundle the native `burn` helper (self-contained Rust binary from this repo's +# Bundle the native `burn` CLI (self-contained Rust binary from this repo's # relayburn-cli) into Contents/MacOS so spend works with no separate install. -# Named `burn-cli` to avoid colliding with the `Burn` app executable on -# case-insensitive filesystems. Skipped if cargo is unavailable — the app then -# falls back to a `burn` on PATH. +# No name clash: the app executable is `BurnOSX`, the CLI is `burn`. Skipped if +# cargo is unavailable — the app then falls back to a `burn` on PATH. REPO_ROOT="$(cd ../.. && pwd)" if command -v cargo >/dev/null 2>&1; then echo "Building burn helper (cargo)…" ( cd "$REPO_ROOT" && cargo build --release -p relayburn-cli ) - cp "$REPO_ROOT/target/release/burn" "$APP_DIR/Contents/MacOS/burn-cli" + cp "$REPO_ROOT/target/release/burn" "$APP_DIR/Contents/MacOS/burn" else echo "warning: cargo not found — skipping bundled burn helper (spend will" echo " require a 'burn' on PATH at runtime)." diff --git a/apps/macos/release.sh b/apps/macos/release.sh index 925e5619..0934dfde 100755 --- a/apps/macos/release.sh +++ b/apps/macos/release.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Builds, signs, notarizes, and packages Burn.app into a distributable +# Builds, signs, notarizes, and packages BurnOSX.app into a distributable # DMG. Runs locally or in CI — all credentials come from the environment. # # Mirrors the Pear release flow: Developer ID signing + notarization via an @@ -23,7 +23,7 @@ # set -euo pipefail -APP_NAME="Burn" +APP_NAME="BurnOSX" ARCH="$(uname -m)" # arm64 on Apple Silicon CI/runners APP_DIR="dist/${APP_NAME}.app" DMG="dist/${APP_NAME}-${ARCH}.dmg" @@ -55,9 +55,9 @@ while IFS= read -r -d '' bundle; do codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "$bundle" done < <(find "${APP_DIR}/Contents/Resources" -maxdepth 1 -name "*.bundle" -print0) -# Sign the bundled burn helper (if present) before the main executable. -if [[ -f "${APP_DIR}/Contents/MacOS/burn-cli" ]]; then - codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/burn-cli" +# Sign the bundled burn CLI (if present) before the main executable. +if [[ -f "${APP_DIR}/Contents/MacOS/burn" ]]; then + codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/burn" fi codesign --force --timestamp --options runtime --sign "${SIGNING_IDENTITY}" "${APP_DIR}/Contents/MacOS/${APP_NAME}" From 26fdab529e49983238ce188826a2fd6ef2611905 Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 14:20:34 -0400 Subject: [PATCH 5/8] Fix runaway menu bar items: stop rendering the flame inside body MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The menu bar label rendered its colored flame with ImageRenderer().nsImage *inside* `body`, producing a fresh NSImage on every render pass. That re-entrant SwiftUI render churns the MenuBarExtra status item — under the feedback loop it spawns menu bar items without end and locks up the machine. Render the flame in the view model instead, only when the (usage, offTarget) state actually changes, and cache it. `MenuBarLabel.body` now just displays the stable cached image — no rendering, no per-pass NSImage churn. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/macos/Sources/Burn/BurnApp.swift | 50 ++++++++++---------- apps/macos/Sources/Burn/UsageViewModel.swift | 20 ++++++++ 2 files changed, 46 insertions(+), 24 deletions(-) diff --git a/apps/macos/Sources/Burn/BurnApp.swift b/apps/macos/Sources/Burn/BurnApp.swift index bee38141..402f001f 100644 --- a/apps/macos/Sources/Burn/BurnApp.swift +++ b/apps/macos/Sources/Burn/BurnApp.swift @@ -16,41 +16,43 @@ struct BurnApp: App { /// The label shown in the menu bar: a fixed-size flame colored by the highest /// current usage (orange→red) that fills (turns "hot") when that window is -/// burning off its target pace. The flame is rendered to a non-template image so -/// the menu bar preserves its color instead of flattening it to monochrome. +/// burning off its target pace. +/// +/// IMPORTANT: the flame image is rendered by the view model when usage changes +/// and cached — `body` only displays it. Rendering with `ImageRenderer` *inside* +/// this `body` is re-entrant SwiftUI rendering and makes `MenuBarExtra` spawn +/// status items in a runaway loop, so never move it back here. struct MenuBarLabel: View { @ObservedObject var viewModel: UsageViewModel var body: some View { - Image(nsImage: flameImage) + Image(nsImage: viewModel.menuBarIcon) .renderingMode(.original) } +} - /// Outline flame while on pace; a solid "hot" flame once over pace. - private var symbol: String { - viewModel.headlineOffTarget ? "flame.fill" : "flame" - } - +/// Renders the colored menu bar flame to a non-template `NSImage` (so the menu +/// bar preserves the color instead of flattening it to monochrome). Called off +/// the view-render path — see `MenuBarLabel`. +enum MenuBarIcon { /// Fixed size — a usage-varying size would shift the menu bar layout. Usage /// is conveyed by color and fill instead. - private let flameSize: CGFloat = 15 - - /// Warms from orange toward red as usage climbs, and is full red whenever the - /// window is off its target pace. - private var flameColor: Color { - if viewModel.headlineOffTarget { return .red } - let t = min(1, Double(viewModel.headlineUsage ?? 0) / 100) - // orange #FF8C00 → red #FF3B30 - return Color(red: 1.0, green: 0.55 - 0.32 * t, blue: 0.19 * t) - } - - /// Rasterizes the colored flame. `isTemplate = false` stops the menu bar from - /// re-tinting it monochrome. - private var flameImage: NSImage { + private static let size: CGFloat = 15 + + @MainActor + static func render(usage: Int?, offTarget: Bool) -> NSImage { + let symbol = offTarget ? "flame.fill" : "flame" + let color: Color + if offTarget { + color = .red + } else { + let t = min(1, Double(usage ?? 0) / 100) + color = Color(red: 1.0, green: 0.55 - 0.32 * t, blue: 0.19 * t) // orange→red + } let renderer = ImageRenderer(content: Image(systemName: symbol) - .font(.system(size: flameSize, weight: .semibold)) - .foregroundStyle(flameColor) + .font(.system(size: size, weight: .semibold)) + .foregroundStyle(color) .padding(1) ) renderer.scale = 2 diff --git a/apps/macos/Sources/Burn/UsageViewModel.swift b/apps/macos/Sources/Burn/UsageViewModel.swift index d9a4e9dd..9253ab51 100644 --- a/apps/macos/Sources/Burn/UsageViewModel.swift +++ b/apps/macos/Sources/Burn/UsageViewModel.swift @@ -22,6 +22,9 @@ final class UsageViewModel: ObservableObject { /// across refreshes, unlike the per-fetch metric id). Empty when burn isn't /// installed. @Published private(set) var spend: [String: PeriodSpend] = [:] + /// The menu bar flame image. Rendered here (off the view-render path) and + /// only when usage changes — see the warning in `MenuBarLabel`. + @Published private(set) var menuBarIcon: NSImage let refreshInterval: TimeInterval = 60 @@ -41,9 +44,23 @@ final class UsageViewModel: ObservableObject { } else { selectedProvider = .codex } + menuBarIcon = MenuBarIcon.render(usage: nil, offTarget: false) start() } + /// Recomputes the cached menu bar flame from the current headline state, but + /// only when the visual state actually changes — keeping the published + /// `NSImage` instance stable so the menu bar item never churns. + private var lastIconKey: String? + private func updateMenuBarIcon() { + let usage = headlineUsage + let offTarget = headlineOffTarget + let key = "\(offTarget)-\(usage ?? -1)" + guard key != lastIconKey else { return } + lastIconKey = key + menuBarIcon = MenuBarIcon.render(usage: usage, offTarget: offTarget) + } + private func start() { Task { await refresh(force: true) } timer = Timer.scheduledTimer(withTimeInterval: refreshInterval, repeats: true) { [weak self] _ in @@ -59,6 +76,7 @@ final class UsageViewModel: ObservableObject { charts = [] notice = nil spend = [:] + updateMenuBarIcon() // New provider has its own rate-limit budget; clear any pending backoff. backoffUntil = nil consecutiveRateLimits = 0 @@ -90,6 +108,7 @@ final class UsageViewModel: ObservableObject { } else { notice = result.message } + updateMenuBarIcon() isLoading = false return } @@ -110,6 +129,7 @@ final class UsageViewModel: ObservableObject { status = result charts = built lastUpdated = now + updateMenuBarIcon() isLoading = false // Spend comes from the burn ledger via a subprocess; load it off the From bb6eacec60948f50160e1fe0e59d614fcaaf4360 Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 14:25:48 -0400 Subject: [PATCH 6/8] Add a menu bar render-storm breaker Defense-in-depth for the class of bug that locked up the machine: if the menu bar label ever re-renders in a tight loop again, count the renders in a 1s sliding window and, past a threshold far above anything legitimate (240/s), log and NSApp.terminate. A regression now degrades to "the app quit" instead of "reboot the Mac". The watchdog touches no observed state, so it can't itself trigger a render. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/macos/Sources/Burn/BurnApp.swift | 5 ++- apps/macos/Sources/Burn/RenderWatchdog.swift | 39 ++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 apps/macos/Sources/Burn/RenderWatchdog.swift diff --git a/apps/macos/Sources/Burn/BurnApp.swift b/apps/macos/Sources/Burn/BurnApp.swift index 402f001f..3fa6a732 100644 --- a/apps/macos/Sources/Burn/BurnApp.swift +++ b/apps/macos/Sources/Burn/BurnApp.swift @@ -26,7 +26,10 @@ struct MenuBarLabel: View { @ObservedObject var viewModel: UsageViewModel var body: some View { - Image(nsImage: viewModel.menuBarIcon) + // Safety breaker: if this label ever re-renders in a storm again, quit + // the app rather than locking up the machine. See RenderWatchdog. + RenderWatchdog.tick() + return Image(nsImage: viewModel.menuBarIcon) .renderingMode(.original) } } diff --git a/apps/macos/Sources/Burn/RenderWatchdog.swift b/apps/macos/Sources/Burn/RenderWatchdog.swift new file mode 100644 index 00000000..325efe0a --- /dev/null +++ b/apps/macos/Sources/Burn/RenderWatchdog.swift @@ -0,0 +1,39 @@ +import AppKit + +/// Crash-prevention breaker for the menu bar label. +/// +/// The menu bar item is the one surface that, if it re-renders in a tight loop +/// (e.g. expensive/re-entrant work creeps back into `body`), can spin the +/// WindowServer and lock up the whole machine — there's no way for the user to +/// quit fast enough. This counts label renders in a sliding window and, if the +/// rate is wildly higher than anything legitimate, logs and terminates the app +/// so a regression degrades to "the app quit" instead of "reboot the Mac". +/// +/// Main-thread only (called from `View.body`). It deliberately touches no +/// SwiftUI-observed state, so it can never itself cause a re-render. +@MainActor +enum RenderWatchdog { + /// Renders allowed within `window` before the breaker trips. Normal operation + /// renders a handful of times per second at most (launch, popover, refresh); + /// a render storm is thousands per second. + private static let limit = 240 + private static let window: TimeInterval = 1.0 + + private static var stamps: [TimeInterval] = [] + private static var tripped = false + + /// Record one menu bar label render. Call once at the top of `body`. + static func tick() { + guard !tripped else { return } + let now = ProcessInfo.processInfo.systemUptime + stamps.append(now) + stamps.removeAll { now - $0 > window } + guard stamps.count > limit else { return } + + tripped = true + NSLog("Burn: menu bar render storm detected (%d renders within %.0fs) — " + + "terminating to protect the system. This is a bug; please report it.", + stamps.count, window) + NSApp.terminate(nil) + } +} From 7c81c17154ee0025cbf1ba7b878538182c9ed93f Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 14:36:42 -0400 Subject: [PATCH 7/8] Manage the menu bar item with AppKit NSStatusItem, not MenuBarExtra MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause of the "endless menu bar flames" + machine panic: SwiftUI's MenuBarExtra duplicates its status item when the app's scene body re-evaluates, spiraling into a status-item/render storm that locks up the machine. (The earlier in-body ImageRenderer made it worse, but MenuBarExtra is the core liability.) Replace MenuBarExtra with a single NSStatusItem created once in an AppDelegate (via NSApplicationDelegateAdaptor); the app exposes only an inert Settings scene. The flame image is rendered by the view model and mirrored onto the status button through the $menuBarIcon publisher — no SwiftUI render path touches the menu bar, so it cannot duplicate or storm. The popover hosts the existing SwiftUI ContentView via NSHostingController. Remove RenderWatchdog (no SwiftUI menu bar body left to guard). Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/macos/Sources/Burn/BurnApp.swift | 71 +++++++++++++------- apps/macos/Sources/Burn/RenderWatchdog.swift | 39 ----------- apps/macos/Sources/Burn/UsageViewModel.swift | 4 +- 3 files changed, 49 insertions(+), 65 deletions(-) delete mode 100644 apps/macos/Sources/Burn/RenderWatchdog.swift diff --git a/apps/macos/Sources/Burn/BurnApp.swift b/apps/macos/Sources/Burn/BurnApp.swift index 3fa6a732..252becda 100644 --- a/apps/macos/Sources/Burn/BurnApp.swift +++ b/apps/macos/Sources/Burn/BurnApp.swift @@ -1,42 +1,65 @@ import SwiftUI +import AppKit +import Combine @main struct BurnApp: App { - @StateObject private var viewModel = UsageViewModel() + @NSApplicationDelegateAdaptor(AppDelegate.self) private var delegate var body: some Scene { - MenuBarExtra { - ContentView(viewModel: viewModel) - } label: { - MenuBarLabel(viewModel: viewModel) - } - .menuBarExtraStyle(.window) + // No SwiftUI scene drives the menu bar. The status item is created once, + // imperatively, by AppDelegate. SwiftUI's `MenuBarExtra` can duplicate + // its status item when the app's scene body re-evaluates — that runaway + // ("endless menu bar flames") panicked the machine. An AppKit + // NSStatusItem created a single time cannot be duplicated. + Settings { EmptyView() } } } -/// The label shown in the menu bar: a fixed-size flame colored by the highest -/// current usage (orange→red) that fills (turns "hot") when that window is -/// burning off its target pace. -/// -/// IMPORTANT: the flame image is rendered by the view model when usage changes -/// and cached — `body` only displays it. Rendering with `ImageRenderer` *inside* -/// this `body` is re-entrant SwiftUI rendering and makes `MenuBarExtra` spawn -/// status items in a runaway loop, so never move it back here. -struct MenuBarLabel: View { - @ObservedObject var viewModel: UsageViewModel +/// Owns the single menu bar status item and its popover. Created once in +/// `applicationDidFinishLaunching`; the flame image is mirrored from the view +/// model's cached icon. No SwiftUI rendering touches the status item, so there +/// is no render path that can storm or duplicate it. +@MainActor +final class AppDelegate: NSObject, NSApplicationDelegate { + private let viewModel = UsageViewModel() + private var statusItem: NSStatusItem? + private let popover = NSPopover() + private var iconObserver: AnyCancellable? + + func applicationDidFinishLaunching(_ notification: Notification) { + NSApp.setActivationPolicy(.accessory) // menu-bar-only, no Dock icon + + let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) + item.button?.image = viewModel.menuBarIcon + item.button?.action = #selector(togglePopover(_:)) + item.button?.target = self + statusItem = item + + popover.behavior = .transient + popover.contentViewController = NSHostingController( + rootView: ContentView(viewModel: viewModel)) - var body: some View { - // Safety breaker: if this label ever re-renders in a storm again, quit - // the app rather than locking up the machine. See RenderWatchdog. - RenderWatchdog.tick() - return Image(nsImage: viewModel.menuBarIcon) - .renderingMode(.original) + // Mirror the cached flame onto the status button whenever it changes. + iconObserver = viewModel.$menuBarIcon.sink { [weak item] image in + item?.button?.image = image + } + } + + @objc private func togglePopover(_ sender: NSStatusBarButton) { + if popover.isShown { + popover.performClose(sender) + return + } + popover.show(relativeTo: sender.bounds, of: sender, preferredEdge: .minY) + popover.contentViewController?.view.window?.makeKeyAndOrderFront(nil) + NSApp.activate(ignoringOtherApps: true) } } /// Renders the colored menu bar flame to a non-template `NSImage` (so the menu /// bar preserves the color instead of flattening it to monochrome). Called off -/// the view-render path — see `MenuBarLabel`. +/// any view-render path — only by the view model when usage changes. enum MenuBarIcon { /// Fixed size — a usage-varying size would shift the menu bar layout. Usage /// is conveyed by color and fill instead. diff --git a/apps/macos/Sources/Burn/RenderWatchdog.swift b/apps/macos/Sources/Burn/RenderWatchdog.swift deleted file mode 100644 index 325efe0a..00000000 --- a/apps/macos/Sources/Burn/RenderWatchdog.swift +++ /dev/null @@ -1,39 +0,0 @@ -import AppKit - -/// Crash-prevention breaker for the menu bar label. -/// -/// The menu bar item is the one surface that, if it re-renders in a tight loop -/// (e.g. expensive/re-entrant work creeps back into `body`), can spin the -/// WindowServer and lock up the whole machine — there's no way for the user to -/// quit fast enough. This counts label renders in a sliding window and, if the -/// rate is wildly higher than anything legitimate, logs and terminates the app -/// so a regression degrades to "the app quit" instead of "reboot the Mac". -/// -/// Main-thread only (called from `View.body`). It deliberately touches no -/// SwiftUI-observed state, so it can never itself cause a re-render. -@MainActor -enum RenderWatchdog { - /// Renders allowed within `window` before the breaker trips. Normal operation - /// renders a handful of times per second at most (launch, popover, refresh); - /// a render storm is thousands per second. - private static let limit = 240 - private static let window: TimeInterval = 1.0 - - private static var stamps: [TimeInterval] = [] - private static var tripped = false - - /// Record one menu bar label render. Call once at the top of `body`. - static func tick() { - guard !tripped else { return } - let now = ProcessInfo.processInfo.systemUptime - stamps.append(now) - stamps.removeAll { now - $0 > window } - guard stamps.count > limit else { return } - - tripped = true - NSLog("Burn: menu bar render storm detected (%d renders within %.0fs) — " - + "terminating to protect the system. This is a bug; please report it.", - stamps.count, window) - NSApp.terminate(nil) - } -} diff --git a/apps/macos/Sources/Burn/UsageViewModel.swift b/apps/macos/Sources/Burn/UsageViewModel.swift index 9253ab51..f5cf80a6 100644 --- a/apps/macos/Sources/Burn/UsageViewModel.swift +++ b/apps/macos/Sources/Burn/UsageViewModel.swift @@ -22,8 +22,8 @@ final class UsageViewModel: ObservableObject { /// across refreshes, unlike the per-fetch metric id). Empty when burn isn't /// installed. @Published private(set) var spend: [String: PeriodSpend] = [:] - /// The menu bar flame image. Rendered here (off the view-render path) and - /// only when usage changes — see the warning in `MenuBarLabel`. + /// The menu bar flame image, recomputed only when usage changes. AppDelegate + /// mirrors it onto the NSStatusItem button via the `$menuBarIcon` publisher. @Published private(set) var menuBarIcon: NSImage let refreshInterval: TimeInterval = 60 From 2c1b2c2a2723de3501d46a4cbb7c2726d867f605 Mon Sep 17 00:00:00 2001 From: Will Washburn Date: Wed, 17 Jun 2026 15:31:32 -0400 Subject: [PATCH 8/8] Add a live burn-rate chart tab to the macOS app Add a "Live" tab to the menu bar popover that streams token burn in real time. A LiveBurnViewModel polls `burn summary --json` against a trailing 5-minute window every 1.5s and keeps a bounded ring buffer of samples, deriving a moving per-interval burn rate (tokens/sec and $/min) alongside cumulative tokens. LiveBurnView renders both with Swift Charts, matching the existing burndown card style. Because `burn summary` now only queries the ledger (it no longer runs an ingest sweep, which is what makes 1.5s polling cheap), the polled numbers won't move on their own. The view therefore spawns and manages a long-lived `burn ingest --watch` (FS-event driven) for its lifetime via the same bundled-helper resolution BurnLedger already uses, started in onAppear and torn down in onDisappear. Falls back to a hint when the bundled helper is unavailable and no-ops on query failure without blanking an established chart. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/macos/Sources/Burn/BurnLedger.swift | 70 ++++++ apps/macos/Sources/Burn/ContentView.swift | 37 +++- apps/macos/Sources/Burn/LiveBurnView.swift | 205 ++++++++++++++++++ .../Sources/Burn/LiveBurnViewModel.swift | 128 +++++++++++ 4 files changed, 439 insertions(+), 1 deletion(-) create mode 100644 apps/macos/Sources/Burn/LiveBurnView.swift create mode 100644 apps/macos/Sources/Burn/LiveBurnViewModel.swift diff --git a/apps/macos/Sources/Burn/BurnLedger.swift b/apps/macos/Sources/Burn/BurnLedger.swift index 030c409f..809ca4c7 100644 --- a/apps/macos/Sources/Burn/BurnLedger.swift +++ b/apps/macos/Sources/Burn/BurnLedger.swift @@ -41,6 +41,76 @@ actor BurnLedger { return total } + /// One `burn summary` reading: cumulative cost and token count since a point. + struct Summary { + /// Total USD cost (`totalCost.total`). + let cost: Double + /// Total tokens across every model row's usage fields. + let tokens: Int + } + + /// Cumulative cost and token totals for `provider` since `since`, or `nil` + /// when burn is unavailable or the query fails. Cheap enough to poll on a + /// short interval: `burn summary` only queries the ledger (it no longer runs + /// an ingest sweep), so freshness comes from a separate `ingest --watch`. + func summary(provider: String, since: Date) async -> Summary? { + let iso = ISO8601DateFormatter().string(from: since) + let args = ["summary", "--provider", provider, "--since", iso, "--json"] + guard let output = runBurn(args), + let data = output.data(using: .utf8), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] + else { return nil } + + let cost = ((json["totalCost"] as? [String: Any])?["total"] as? NSNumber)?.doubleValue ?? 0 + + // Total tokens = sum of every usage field across model rows. + var tokens = 0 + if let byModel = json["byModel"] as? [[String: Any]] { + let fields = ["input", "output", "reasoning", "cacheRead", "cacheCreate5m", "cacheCreate1h"] + for row in byModel { + guard let usage = row["usage"] as? [String: Any] else { continue } + for field in fields { + tokens += (usage[field] as? NSNumber)?.intValue ?? 0 + } + } + } + return Summary(cost: cost, tokens: tokens) + } + + // MARK: - Long-lived ingest watch + + /// The running `burn ingest --watch` process, if any. Kept alive for the + /// lifetime of the live view so freshly written turns land in the ledger and + /// the polled live chart actually moves. + private var watchProcess: Process? + + /// Starts a background `burn ingest --watch` (FS-event driven) if one isn't + /// already running. No-op when burn is unavailable. The PATH fallback can't + /// host a long-lived child cleanly through a login shell, so the watch only + /// runs with the bundled native helper; the live chart still polls either + /// way, it just won't self-freshen without it. + func startIngestWatch() { + guard watchProcess == nil else { return } + guard case .bundled(let url) = resolveTool() else { return } + let process = Process() + process.executableURL = url + process.arguments = ["ingest", "--watch", "--quiet"] + process.standardOutput = Pipe() + process.standardError = Pipe() + do { + try process.run() + watchProcess = process + } catch { + watchProcess = nil + } + } + + /// Terminates the background watch process, if running. + func stopIngestWatch() { + watchProcess?.terminate() + watchProcess = nil + } + // MARK: - Resolution & invocation private func resolveTool() -> Tool { diff --git a/apps/macos/Sources/Burn/ContentView.swift b/apps/macos/Sources/Burn/ContentView.swift index 98c57906..2fcd6291 100644 --- a/apps/macos/Sources/Burn/ContentView.swift +++ b/apps/macos/Sources/Burn/ContentView.swift @@ -1,18 +1,53 @@ import SwiftUI +/// The popover's tabs: the headline usage burndown, and the live burn-rate +/// stream. +private enum BurnTab: Hashable { + case usage + case live +} + /// The popover shown when the menu bar item is clicked. struct ContentView: View { @ObservedObject var viewModel: UsageViewModel + @StateObject private var liveViewModel: LiveBurnViewModel + @State private var tab: BurnTab = .usage + + init(viewModel: UsageViewModel) { + self.viewModel = viewModel + _liveViewModel = StateObject( + wrappedValue: LiveBurnViewModel(provider: viewModel.selectedProvider)) + } var body: some View { VStack(alignment: .leading, spacing: 14) { header Divider() - content + tabPicker + switch tab { + case .usage: + content + case .live: + LiveBurnView(viewModel: liveViewModel) + } } .padding(16) .frame(width: 380) .background(quitShortcut) + // Keep the live stream tracking whichever provider the picker selects. + .onChange(of: viewModel.selectedProvider) { provider in + liveViewModel.select(provider) + } + } + + /// Segmented switch between the usage burndown and the live stream. + private var tabPicker: some View { + Picker("", selection: $tab) { + Text("Usage").tag(BurnTab.usage) + Text("Live").tag(BurnTab.live) + } + .pickerStyle(.segmented) + .labelsHidden() } /// Registers ⌘Q while the popover is open. The app is menu-bar-only (no Dock diff --git a/apps/macos/Sources/Burn/LiveBurnView.swift b/apps/macos/Sources/Burn/LiveBurnView.swift new file mode 100644 index 00000000..22b352bc --- /dev/null +++ b/apps/macos/Sources/Burn/LiveBurnView.swift @@ -0,0 +1,205 @@ +import SwiftUI +import Charts + +/// The "Burn rate" tab: a moving, streaming chart of token burn that updates in +/// real time. The headline is the per-interval burn rate (tokens/sec) — a moving +/// rate is the compelling read — with a secondary cumulative-tokens line. +/// +/// Owns a `LiveBurnViewModel` whose lifecycle (poll timer + background ingest +/// watch) is bound to this view's appearance: started in `onAppear`, torn down +/// in `onDisappear`. Falls back to a hint when burn can't be queried, mirroring +/// how the rest of the app no-ops on a missing binary. +struct LiveBurnView: View { + @ObservedObject var viewModel: LiveBurnViewModel + + private let rateColor = Color.orange + private let cumulativeColor = Color.blue + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + if viewModel.unavailable { + hint + } else if viewModel.samples.count < 2 { + warming + } else { + headline + rateChart.frame(height: 130) + cumulativeChart.frame(height: 90) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + .onAppear { viewModel.start() } + .onDisappear { viewModel.stop() } + } + + // MARK: Headline + + private var headline: some View { + HStack(alignment: .firstTextBaseline) { + VStack(alignment: .leading, spacing: 1) { + Text("Burn rate") + .font(.title3.weight(.bold)) + Text("live · trailing 5 min") + .font(.caption2) + .foregroundStyle(.tertiary) + } + Spacer() + VStack(alignment: .trailing, spacing: 1) { + Text(rateLabel) + .font(.headline.weight(.bold)) + .foregroundStyle(rateColor) + .monospacedDigit() + Text(spendLabel) + .font(.caption2) + .foregroundStyle(.secondary) + .monospacedDigit() + } + } + } + + private var latest: LiveBurnSample? { viewModel.samples.last } + + private var rateLabel: String { + let rate = latest?.tokensPerSecond ?? 0 + if rate >= 1000 { + return String(format: "%.1fk tok/s", rate / 1000) + } + return "\(Int(rate.rounded())) tok/s" + } + + private var spendLabel: String { + let perMin = latest?.dollarsPerMinute ?? 0 + return String(format: "$%.2f/min", perMin) + } + + // MARK: Charts + + /// The moving burn-rate line (tokens/sec per polled interval). + private var rateChart: some View { + Chart(viewModel.samples) { sample in + AreaMark( + x: .value("Time", sample.date), + y: .value("Tokens/s", sample.tokensPerSecond) + ) + .foregroundStyle( + .linearGradient( + colors: [rateColor.opacity(0.28), rateColor.opacity(0.02)], + startPoint: .top, + endPoint: .bottom + ) + ) + .interpolationMethod(.monotone) + + LineMark( + x: .value("Time", sample.date), + y: .value("Tokens/s", sample.tokensPerSecond) + ) + .foregroundStyle(rateColor) + .lineStyle(StrokeStyle(lineWidth: 2, lineCap: .round, lineJoin: .round)) + .interpolationMethod(.monotone) + } + .chartXScale(domain: xDomain) + .chartXAxis(.hidden) + .chartYAxis { + AxisMarks(position: .leading) { value in + AxisGridLine().foregroundStyle(Color.primary.opacity(0.08)) + AxisValueLabel { + if let v = value.as(Double.self) { + Text(tokenAxisLabel(v)) + .font(.caption2) + .foregroundStyle(.tertiary) + } + } + } + } + .chartCard() + } + + /// Cumulative tokens over the rolling window — a slower-moving companion. + private var cumulativeChart: some View { + Chart(viewModel.samples) { sample in + LineMark( + x: .value("Time", sample.date), + y: .value("Tokens", sample.tokens) + ) + .foregroundStyle(cumulativeColor) + .lineStyle(StrokeStyle(lineWidth: 2, lineCap: .round, lineJoin: .round)) + .interpolationMethod(.monotone) + } + .chartXScale(domain: xDomain) + .chartXAxis(.hidden) + .chartYAxis { + AxisMarks(position: .leading, values: .automatic(desiredCount: 3)) { value in + AxisGridLine().foregroundStyle(Color.primary.opacity(0.08)) + AxisValueLabel { + if let v = value.as(Double.self) { + Text(tokenAxisLabel(v)) + .font(.caption2) + .foregroundStyle(.tertiary) + } + } + } + } + .chartCard() + } + + /// Always span the full sample window so the line visibly slides left as new + /// samples arrive, even when the buffer isn't full yet. + private var xDomain: ClosedRange { + let dates = viewModel.samples.map(\.date) + guard let first = dates.first, let last = dates.last, first < last else { + let now = Date() + return now.addingTimeInterval(-1)...now + } + return first...last + } + + private func tokenAxisLabel(_ value: Double) -> String { + if value >= 1_000_000 { return String(format: "%.1fM", value / 1_000_000) } + if value >= 1_000 { return String(format: "%.0fk", value / 1_000) } + return "\(Int(value))" + } + + // MARK: Empty / warming states + + private var warming: some View { + HStack(spacing: 8) { + ProgressView().controlSize(.small) + Text("Watching for live burn…") + .font(.callout) + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, minHeight: 220, alignment: .center) + } + + private var hint: some View { + VStack(spacing: 8) { + Image(systemName: "flame") + .font(.title) + .foregroundStyle(.tertiary) + Text("Live burn needs the bundled burn helper.") + .font(.callout) + .foregroundStyle(.secondary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + } + .frame(maxWidth: .infinity, minHeight: 220, alignment: .center) + .padding(.horizontal, 12) + } +} + +private extension View { + /// Shared card chrome matching `BurndownChartView`'s framing. + func chartCard() -> some View { + self + .padding(12) + .background( + RoundedRectangle(cornerRadius: 12, style: .continuous) + .fill(Color.primary.opacity(0.04)) + ) + .overlay( + RoundedRectangle(cornerRadius: 12, style: .continuous) + .stroke(Color.primary.opacity(0.06), lineWidth: 1) + ) + } +} diff --git a/apps/macos/Sources/Burn/LiveBurnViewModel.swift b/apps/macos/Sources/Burn/LiveBurnViewModel.swift new file mode 100644 index 00000000..acd3f9e7 --- /dev/null +++ b/apps/macos/Sources/Burn/LiveBurnViewModel.swift @@ -0,0 +1,128 @@ +import SwiftUI + +/// One polled reading of the live burn series: the cumulative totals at `date` +/// and the per-interval deltas ("burn rate") since the previous sample. +struct LiveBurnSample: Identifiable { + let id = UUID() + let date: Date + /// Cumulative USD cost over the rolling window at this instant. + let cost: Double + /// Cumulative token count over the rolling window at this instant. + let tokens: Int + /// Tokens burned per second since the previous sample (0 for the first). + let tokensPerSecond: Double + /// USD burned per minute since the previous sample (0 for the first). + let dollarsPerMinute: Double +} + +/// Drives the live "Burn rate" tab. Polls `burn summary --json` on a short timer +/// against a rolling window, keeps a bounded in-memory ring buffer of samples, +/// and derives a moving per-interval burn rate. Spawns a long-lived +/// `burn ingest --watch` for the lifetime of the view so the polled numbers +/// actually move (`summary` only queries the ledger; it no longer freshens it). +/// +/// Mirrors `UsageViewModel`'s `@MainActor` + `Task`/timer style and the +/// graceful no-op-on-failure behavior — when burn is missing the series simply +/// stays empty and the view shows a hint. +@MainActor +final class LiveBurnViewModel: ObservableObject { + /// The rolling series of samples (oldest first), capped at `maxSamples`. + @Published private(set) var samples: [LiveBurnSample] = [] + /// True once we've confirmed burn can't be queried, so the view can hint. + @Published private(set) var unavailable = false + + /// How often we poll `burn summary`. Cheap now that summary doesn't ingest, + /// so a tight cadence makes the chart feel live without hammering anything. + private let pollInterval: TimeInterval = 1.5 + /// Rolling window passed to `--since`: cumulative totals are measured over + /// the trailing few minutes so the line tracks recent activity, not all time. + private let windowSeconds: TimeInterval = 5 * 60 + /// Ring-buffer cap. At 1.5s/sample this is ~3.75 minutes of history on screen. + private let maxSamples = 150 + + private var provider: ProviderName + private var timer: Timer? + /// Guards against overlapping polls if a `summary` call runs long. + private var polling = false + + init(provider: ProviderName) { + self.provider = provider + } + + /// Begins polling and starts the background ingest watch. Idempotent. + func start() { + guard timer == nil else { return } + Task { await BurnLedger.shared.startIngestWatch() } + Task { await poll() } + timer = Timer.scheduledTimer(withTimeInterval: pollInterval, repeats: true) { [weak self] _ in + Task { await self?.poll() } + } + } + + /// Stops polling and tears down the ingest watch. Called when the live view + /// disappears or the app closes. + func stop() { + timer?.invalidate() + timer = nil + Task { await BurnLedger.shared.stopIngestWatch() } + } + + /// Switches the tracked provider, clearing the series so the new provider's + /// readings start fresh. + func select(_ provider: ProviderName) { + guard provider != self.provider else { return } + self.provider = provider + samples = [] + unavailable = false + Task { await poll() } + } + + private func poll() async { + guard !polling else { return } + polling = true + defer { polling = false } + + let burnProvider = BurnLedger.burnProvider(for: provider) + let since = Date().addingTimeInterval(-windowSeconds) + guard let summary = await BurnLedger.shared.summary(provider: burnProvider, since: since) else { + // Only flip to "unavailable" before we've ever shown data, so a + // transient query failure doesn't blank an established chart. + if samples.isEmpty { unavailable = true } + return + } + unavailable = false + append(summary) + } + + private func append(_ summary: BurnLedger.Summary) { + let now = Date() + let tokensPerSecond: Double + let dollarsPerMinute: Double + if let prev = samples.last { + let dt = now.timeIntervalSince(prev.date) + if dt > 0 { + // Deltas can dip negative as the rolling window slides old turns + // out from under `--since`; clamp so the rate line stays sane. + tokensPerSecond = max(0, Double(summary.tokens - prev.tokens) / dt) + dollarsPerMinute = max(0, (summary.cost - prev.cost) / dt * 60) + } else { + tokensPerSecond = 0 + dollarsPerMinute = 0 + } + } else { + tokensPerSecond = 0 + dollarsPerMinute = 0 + } + + samples.append(LiveBurnSample( + date: now, + cost: summary.cost, + tokens: summary.tokens, + tokensPerSecond: tokensPerSecond, + dollarsPerMinute: dollarsPerMinute + )) + if samples.count > maxSamples { + samples.removeFirst(samples.count - maxSamples) + } + } +}