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.
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— SwiftUIMenuBarExtraapp: 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.