Files
ccs/macos-bar
Tam Nhu Tran 54a670c943 fix(bar): capture click location synchronously before async panel anchoring
NSEvent.mouseLocation was sampled inside the DispatchQueue.main.async
block that anchors the panel, so a cursor move between the click and
the block run could anchor to the wrong display. The location is now
captured in makeNSView at click time and threaded through apply() into
anchorToClickedScreen, making the chosen screen deterministic.
2026-06-10 13:28:34 -04:00
..

CCS Bar (macOS)

Native SwiftUI menu bar app for CCS. A thin client of the CCS local web-server: it glances per-account quota, cost and tier, and performs account control (pause/resume, set default, solo, tier-lock) from the menu bar.

The app never talks to a provider directly. Every call goes to localhost, and CCS performs any provider fetch server-side. Opening the menu fires a debounced force-refresh so the glance reflects live data without blocking the UI.

Layout

  • Sources/CCSBarCore — pure Foundation logic (no SwiftUI): API client, discovery handshake, models, formatting, refresh debounce. Fully unit-tested.
  • Sources/CCSBarApp — SwiftUI MenuBarExtra app: view-model + views.
  • Sources/CCSBarCheck — runnable assert harness used in place of XCTest (XCTest ships with full Xcode; this builds on a CommandLineTools toolchain).

Build and test

Requires a Swift 5.9+ toolchain (CommandLineTools is enough; full Xcode not required for build/test).

swift build                 # build all targets, including the app
swift run ccs-bar-check     # run the logic tests (exits non-zero on failure)

Discovery

The app reads ~/.ccs/bar.json (written by ccs bar launch):

{ "baseUrl": "http://127.0.0.1:3000", "port": 3000, "authMode": "loopback" }

v1 supports authMode: "loopback" only (dashboard auth disabled, localhost).

Packaging

Scripts/package_app.sh assembles CCS Bar.app from a release build and signs it. v1 uses ad-hoc signing (CCS_BAR_SIGNING=adhoc, the default); users open it the first time via right-click then Open, or clear quarantine with xattr -dr com.apple.quarantine "/Applications/CCS Bar.app". Developer ID signing + notarization (CCS_BAR_SIGNING=developer-id) is the public-launch path and is not required for ad-hoc distribution.