Kai (Tam Nhu) Tran
06e83091be
fix: bound Codex rollout tail reads ( #1547 )
...
Replaces unbounded rollout-file reads with a bounded backward tail (1 MiB cap), preserving last-N-lines semantics.
2026-06-16 08:45:30 -04:00
github-actions[bot]
c83d004783
chore(release): 8.4.0-dev.6
2026-06-16 12:32:50 +00:00
Kai (Tam Nhu) Tran
ba7a2abb79
fix(bar): distinguish native Codex subscription rows ( #1552 )
...
Distinguishes native Codex subscription rows from pool rows in the bar menu.
2026-06-16 08:28:36 -04:00
Kai (Tam Nhu) Tran
50f136a1f0
fix(macos-bar): launch dashboard without shell ( #1549 )
...
Launches the dashboard without going through a shell, avoiding unescaped-command exposure.
2026-06-16 08:28:31 -04:00
Kai (Tam Nhu) Tran
8bd289bfae
fix(bar): avoid blocking on lower-priority probes ( #1548 )
...
Bar server probing no longer blocks on lower-priority probes.
2026-06-16 08:28:15 -04:00
github-actions[bot]
639334b40b
chore(release): 8.4.0-dev.5
2026-06-16 03:32:52 +00:00
Kai (Tam Nhu) Tran
c776e18434
fix(bar): preserve Gatekeeper quarantine on install ( #1534 )
...
Preserves the Gatekeeper quarantine attribute on the installed CCS Bar app so the user makes the right-click to Open trust decision, instead of silently clearing it.
2026-06-15 23:28:24 -04:00
Kai (Tam Nhu) Tran
e3566ed765
fix: avoid echoing invalid channel token values ( #1542 )
...
Avoids echoing invalid channel token values in config output.
2026-06-15 23:24:42 -04:00
Kai (Tam Nhu) Tran
b85a3de26e
fix(cursor): redact daemon token from dashboard start ( #1540 )
...
Redacts the Cursor daemon token from dashboard start output.
2026-06-15 23:24:37 -04:00
Kai (Tam Nhu) Tran
74dd2f38cc
fix: harden release issue parsing ( #1536 )
...
Hardens release issue parsing against a quadratic/ReDoS pattern while preserving parsing semantics.
2026-06-15 23:24:33 -04:00
Kai (Tam Nhu) Tran
10aff10a67
fix: harden macOS bar launch descriptor ( #1533 )
...
Hardens the macOS bar launch.json descriptor against untrusted/foreign-owned files and constrains the decoded descriptor; blocks dashboard file writes to the launch descriptor.
2026-06-15 23:24:13 -04:00
github-actions[bot]
619723e9b7
chore(release): 8.4.0-dev.4
2026-06-16 03:21:39 +00:00
Kai (Tam Nhu) Tran
ab6c59ba35
fix(browser): preserve profile-bound DevTools discovery ( #1541 )
...
Preserves the profile-bound DevTools port/discovery so browser launches resolve the correct per-profile endpoint.
2026-06-15 23:14:55 -04:00
Kai (Tam Nhu) Tran
473aa082f6
fix: honor default target for Claude passthrough ( #1539 )
...
Honors the configured default target in the Claude subcommand passthrough resolver.
2026-06-15 23:12:52 -04:00
Kai (Tam Nhu) Tran
d2848d3931
fix(bar): verify CCS Bar release archive digest ( #1532 )
...
Verifies the GitHub release asset sha256 digest before extracting the CCS Bar archive.
2026-06-15 23:12:49 -04:00
Kai (Tam Nhu) Tran
db44845857
fix(codex): sanitize config override probes ( #1535 )
...
Sanitizes ccsxp support-probe config overrides to avoid env leak; parity with the real Codex launch path.
2026-06-15 23:12:46 -04:00
github-actions[bot]
c351261fe4
chore(release): 8.4.0-dev.3
2026-06-16 02:54:04 +00:00
Kai (Tam Nhu) Tran
f74561fe9b
fix: avoid quadratic cliproxy usage hydration ( #1537 )
...
Replaces O(n^2) usage hydration in the cliproxy merge path with a linear lookup.
2026-06-15 22:48:11 -04:00
github-actions[bot]
21e2dc1c24
chore(release): 8.4.0-dev.2
2026-06-16 02:20:52 +00:00
Kai (Tam Nhu) Tran
499aec8a9b
feat(config): add opt-in output limits for spawned CLI ( #1544 )
...
Adds opt-in config.runtime.outputLimits to inject MAX_MCP_OUTPUT_TOKENS/BASH_MAX_OUTPUT_LENGTH into the spawned CLI; defaults unchanged when unset. Closes #231 .
2026-06-15 22:16:54 -04:00
Kai (Tam Nhu) Tran
a472c44015
feat(api): add Fireworks AI provider preset ( #1543 )
...
Promotes Fireworks AI to a first-class discoverable preset over the existing Anthropic-compatible Bearer path. Closes #890 .
2026-06-15 22:16:50 -04:00
github-actions[bot]
5320b4f418
chore(release): 8.4.0-dev.1
2026-06-16 02:01:20 +00:00
kcfang
8f9795bce2
fix(proxy): keep undici timeouts above the upstream request timeout ( #1524 )
...
Sets undici headersTimeout/bodyTimeout to request_timeout+30s so the AbortController is the single authority on upstream request lifetime, preventing premature socket closes on slow self-hosted upstreams. Verified undici v5 ProxyAgent object-signature compat.
2026-06-15 21:57:23 -04:00
semantic-release-bot
0d856fc0ab
chore(release): 8.4.0 [skip ci]
...
## [8.4.0](https://github.com/kaitranntt/ccs/compare/v8.3.0...v8.4.0 ) (2026-06-16)
### Features
* **bar:** bundle a macOS app icon ([30ed7c4 ](https://github.com/kaitranntt/ccs/commit/30ed7c42b1c8a24fc10d1c788a532e1a3198a410 )), closes [#1525 ](https://github.com/kaitranntt/ccs/issues/1525 )
* **bar:** run the CCS server detached with serve/stop/status ([b5ef06a ](https://github.com/kaitranntt/ccs/commit/b5ef06a4d5fe0ea2a83110947a2772b8ea87ee3f )), closes [#1526 ](https://github.com/kaitranntt/ccs/issues/1526 )
* **bar:** self-start the server from the app and stop dropdown clipping ([64fbf2e ](https://github.com/kaitranntt/ccs/commit/64fbf2e0621aca4398693de5b5ef43b9448bfecc )), closes [#1526 ](https://github.com/kaitranntt/ccs/issues/1526 ) [#1527 ](https://github.com/kaitranntt/ccs/issues/1527 )
### Bug Fixes
* **bar:** anchor menu panel to top and stop full-screen sizing ([#1530 ](https://github.com/kaitranntt/ccs/issues/1530 )) ([842857d ](https://github.com/kaitranntt/ccs/commit/842857dec6035625b14ec81c77045b4562004575 ))
* **cliproxy:** resolve plus release asset variants ([#1523 ](https://github.com/kaitranntt/ccs/issues/1523 )) ([9e9cddd ](https://github.com/kaitranntt/ccs/commit/9e9cddd101dc7ae91d9e8051e6f172747a0fc1b4 )), closes [#1522 ](https://github.com/kaitranntt/ccs/issues/1522 )
### Documentation
* **bar:** document detached launch model and serve/stop/status ([#1529 ](https://github.com/kaitranntt/ccs/issues/1529 )) ([b03e2e1 ](https://github.com/kaitranntt/ccs/commit/b03e2e1cb2dbc30e4a9f923ffd4bbb5bd817732c ))
2026-06-16 00:12:20 +00:00
Kai (Tam Nhu) Tran
d12eb3f825
Merge pull request #1531 from kaitranntt/dev
...
feat(bar): CCS Bar seamless launch, app icon, and panel fixes
2026-06-15 20:08:35 -04:00
github-actions[bot]
dd9b469093
chore(release): 8.3.0-dev.3
2026-06-16 00:02:23 +00:00
Kai (Tam Nhu) Tran
b03e2e1cb2
docs(bar): document detached launch model and serve/stop/status ( #1529 )
...
Reflect the seamless-launch change: the app self-starts the background
server, ccs bar runs it detached, and add the serve/stop/status commands
plus the launch.json/server.pid/serve.log files.
2026-06-15 19:58:03 -04:00
Kai (Tam Nhu) Tran
842857dec6
fix(bar): anchor menu panel to top and stop full-screen sizing ( #1530 )
...
The dropdown height defaulted to screenCap before the content was measured,
and the ScrollView frame had no alignment, so an unmeasured panel rendered at
nearly full screen height with the content centered in it (macOS then centered
the oversized window). Default to a modest height until measured and pin the
frame to .top, so the popover anchors under the menu bar and sizes to its
content, scrolling only on genuine overflow.
2026-06-15 19:58:00 -04:00
github-actions[bot]
9f8517bb29
chore(release): 8.3.0-dev.2
2026-06-15 23:10:10 +00:00
Kai (Tam Nhu) Tran
8f2da4cc75
Merge pull request #1528 from kaitranntt/kai/feat/ccs-bar-seamless-launch
...
feat(bar): seamless launch, app icon, and dropdown height fix
2026-06-15 19:06:02 -04:00
Tam Nhu Tran
64fbf2e062
feat(bar): self-start the server from the app and stop dropdown clipping
...
The app now port-probes for a live CCS server and, if none is found,
starts the recorded detached server itself (launch.json, with a login-shell
fallback) before connecting, so double-clicking the app works without the
CLI. The offline panel gains a Start CCS action and a starting state. The
dropdown is sized to its measured content up to a screen-aware cap instead
of a fixed maxHeight, so it no longer collapses and clips rows.
Refs #1526 , #1527
2026-06-15 17:13:58 -04:00
Tam Nhu Tran
b5ef06a4d5
feat(bar): run the CCS server detached with serve/stop/status
...
ccs bar now spawns the web-server as a detached background process and
exits immediately instead of hosting it in the foreground, so closing the
terminal no longer takes the bar offline. Adds 'bar serve' (the long-lived
host), 'bar stop', and 'bar status', and records ~/.ccs/bar/launch.json at
install so the app can start the server without a shell PATH.
Refs #1526
2026-06-15 17:13:47 -04:00
Tam Nhu Tran
30ed7c42b1
feat(bar): bundle a macOS app icon
...
Generate AppIcon.icns from the CCS mark at package time (sips + iconutil)
and reference it via CFBundleIconFile so Finder, Spotlight, and the Dock
show the brand icon instead of a blank bundle.
Refs #1525
2026-06-15 17:13:36 -04:00
github-actions[bot]
e26f294124
chore(release): 8.3.0-dev.1
2026-06-15 13:24:33 +00:00
Kai (Tam Nhu) Tran
9e9cddd101
fix(cliproxy): resolve plus release asset variants ( #1523 )
...
Use version-aware CLIProxy Plus asset names so current
no-plugin releases install without breaking older fallback releases.
Tag latest-version caches with their GitHub repo and ignore
legacy or cross-repo cache entries.
Closes #1522
2026-06-15 09:20:37 -04:00
semantic-release-bot
af6d082f95
chore(release): 8.3.0 [skip ci]
...
## [8.3.0](https://github.com/kaitranntt/ccs/compare/v8.2.0...v8.3.0 ) (2026-06-14)
### Features
* **bar-app:** add CCS icon variants and usage analytics UI ([9b64514 ](https://github.com/kaitranntt/ccs/commit/9b64514a57f78ff101333caa3daa8c600a48f541 ))
* **bar-app:** bar-first quota card with sane time formatting ([df96779 ](https://github.com/kaitranntt/ccs/commit/df967792b91cd6674b39a08b38cb32eaed730ddc ))
* **bar-app:** inline spend chart bars/line toggle in the Spend header ([a700a92 ](https://github.com/kaitranntt/ccs/commit/a700a92171cb16a4d08af7775554c5e501d7228a ))
* **bar-app:** label settings clearly and confirm before quit ([26323c1 ](https://github.com/kaitranntt/ccs/commit/26323c13dfcca42f9ce2dc5e51faa1a65acfc47a ))
* **bar-app:** legible tier chips, honest Icon label, dashboard auto-start ([11b3cd5 ](https://github.com/kaitranntt/ccs/commit/11b3cd5a5cc91b3a8e71a09ea22f43406e2a00a7 ))
* **bar-app:** per-surface usage UI, unambiguous title, hidden scrollbar ([4a633ea ](https://github.com/kaitranntt/ccs/commit/4a633eac65adefab4d04a265d0993172d9fca001 ))
* **bar-app:** quota gauges, threshold alerts, configurable glance ([559d434 ](https://github.com/kaitranntt/ccs/commit/559d4340e72e8d900a20e0315f3298ca66e23992 ))
* **bar-app:** render native subscription accounts with quota gauges ([03077aa ](https://github.com/kaitranntt/ccs/commit/03077aa9fdad5b64a22f157c2470bc816da78b4a ))
* **bar-app:** retune subscription card palette for the dark theme ([5aa94b5 ](https://github.com/kaitranntt/ccs/commit/5aa94b5019b3a6efdea4ef5e0b8ac15affd4f966 ))
* **bar-app:** selectable System/Light/Dark theming ([e33da98 ](https://github.com/kaitranntt/ccs/commit/e33da989eb7c57f1832864e5d9680d18bce400d5 ))
* **bar-app:** subscription-first cockpit with detailed quota card ([0e0b912 ](https://github.com/kaitranntt/ccs/commit/0e0b9121878a18d1e77b8418006468991fa3c981 ))
* **bar-app:** tune density and add spend chart style toggle ([0b1c4e4 ](https://github.com/kaitranntt/ccs/commit/0b1c4e490880da83245e87f9de2118438ff42dc4 ))
* **bar:** add calendar month-to-date spend to analytics ([68f0231 ](https://github.com/kaitranntt/ccs/commit/68f0231f487a7a56e4571bc67d3171827baebaa5 ))
* **bar:** add ccs bar --help with docker-style help screen ([9ae6f85 ](https://github.com/kaitranntt/ccs/commit/9ae6f85fa7d8f204dc9821d1f9c0fde77a44cc1b ))
* **bar:** add Get CCS Bar dashboard banner and ccs bar docs page ([1e7ad7e ](https://github.com/kaitranntt/ccs/commit/1e7ad7e75e2edd1e36fe9651efd44c464b7f8375 ))
* **bar:** harden summary against provider hangs and add analytics endpoint ([78f9fc7 ](https://github.com/kaitranntt/ccs/commit/78f9fc7c0b4c69de48d31147b5501fb50aa99af0 ))
* **bar:** honest quota state and merged multi-source analytics ([5f850c4 ](https://github.com/kaitranntt/ccs/commit/5f850c4899a3d7f64385a72a4d1d5080206a1023 ))
* **bar:** native Claude Code + Codex subscription quota (safe, server-side) ([dbeb0c5 ](https://github.com/kaitranntt/ccs/commit/dbeb0c543a888d7bc54ed0e3ebfffa63334d1f75 ))
* **bar:** one-flow install with quarantine automation and launch handoff ([4eef3f7 ](https://github.com/kaitranntt/ccs/commit/4eef3f77a4a8210501a9dfe369ceeac581772939 )), closes [#1504 ](https://github.com/kaitranntt/ccs/issues/1504 )
* **bar:** per-window subscription quota detail + codex multi-session scan ([e96967c ](https://github.com/kaitranntt/ccs/commit/e96967c22492fe312258bf6ab7f5883250cbc4be ))
* **bar:** show running app version in the panel header ([3438c39 ](https://github.com/kaitranntt/ccs/commit/3438c3940eb0af9a680954526ba63274bf768c30 ))
* **catalog:** add Claude Fable 5 to Anthropic model registry ([298c89f ](https://github.com/kaitranntt/ccs/commit/298c89f2c30712daaf782082903fcb7d93a0ab5e ))
* **cli:** add ccs bar command for the macOS menu bar app ([205c2f3 ](https://github.com/kaitranntt/ccs/commit/205c2f3cd607399031c19e49f37cc64108c13def ))
* **cliproxy:** claude pool gap closure - model-neutral launch, shadow warning, provider ban copy ([a257016 ](https://github.com/kaitranntt/ccs/commit/a257016ebb42ab7f68296188cd71267bab6fecdd )), closes [#1464 ](https://github.com/kaitranntt/ccs/issues/1464 )
* **cliproxy:** managed drain order for account pools ([a33e126 ](https://github.com/kaitranntt/ccs/commit/a33e12619ee3dd7b034a952a51feae9cec69759c )), closes [#1464 ](https://github.com/kaitranntt/ccs/issues/1464 )
* **cliproxy:** pool onboarding hints for existing multi-profile users ([0343734 ](https://github.com/kaitranntt/ccs/commit/0343734665d5610c84297dc50a486d703c6ff28f )), closes [#1464 ](https://github.com/kaitranntt/ccs/issues/1464 )
* **cliproxy:** pool routing defaults and safety rails ([fdb0430 ](https://github.com/kaitranntt/ccs/commit/fdb043083f6a76cc3d33e830d8bd6142827c0cd6 )), closes [#1464 ](https://github.com/kaitranntt/ccs/issues/1464 )
* **cliproxy:** pool visibility in quota output and dashboard routing card ([74894f6 ](https://github.com/kaitranntt/ccs/commit/74894f61da26410a214e1b2af2fe8ffd18da5c30 )), closes [#1464 ](https://github.com/kaitranntt/ccs/issues/1464 )
* **dashboard:** promote CCS Bar globally ([b9356a7 ](https://github.com/kaitranntt/ccs/commit/b9356a7ce67d783ecbc8b2d0d4ba70e25176b660 ))
* **macos-bar:** add ad-hoc packaging script + Info.plist ([df4554f ](https://github.com/kaitranntt/ccs/commit/df4554fe1f9a0d3d4e43e2b21f454fb862a131c5 ))
* **macos-bar:** add CCS Bar core (client, models, discovery) + tests ([23abf6a ](https://github.com/kaitranntt/ccs/commit/23abf6a6350015dbbc97159564f5ee2678beaf6f ))
* **macos-bar:** add SwiftUI MenuBarExtra app + view-model ([e7001fc ](https://github.com/kaitranntt/ccs/commit/e7001fc252c4eea1075d89c2455f8fb29164fdf4 ))
* **quota:** add per-provider tier-lock account selection ([40f32eb ](https://github.com/kaitranntt/ccs/commit/40f32ebbf06937b85f7e151169ae93399a1dca04 ))
* **usage:** attribute CLIProxy usage to accounts for per-account cost ([1867116 ](https://github.com/kaitranntt/ccs/commit/1867116472dca0d579d34cc82a3aff3268c7648a ))
* **web-server:** add /api/bar/summary aggregator with force-fresh ([6d3fde9 ](https://github.com/kaitranntt/ccs/commit/6d3fde9ed399845a8aa757b4a7c706395e962dc6 ))
### Bug Fixes
* **bar-app:** periodic background refresh so the glance self-heals ([28fef67 ](https://github.com/kaitranntt/ccs/commit/28fef67a453fc50cbbca03d2e8b51ce63e2a983f ))
* **bar-app:** settings as standalone window, real theme forcing, roomier layout ([b950b41 ](https://github.com/kaitranntt/ccs/commit/b950b41503352bf019b3070e84a44740750c2be1 ))
* **bar:** bind 'ccs bar launch' server to IPv4 loopback ([2f8745b ](https://github.com/kaitranntt/ccs/commit/2f8745bc1f54f12caa773e716a03e71b6b44bec0 ))
* **bar:** capture click location synchronously before async panel anchoring ([54a670c ](https://github.com/kaitranntt/ccs/commit/54a670c943e8599bd103421e0cdb6212b31f5f67 ))
* **bar:** correct the already-running reinstall hint ([3aab14c ](https://github.com/kaitranntt/ccs/commit/3aab14ca85f704cfda95f3e4d3769fb6f5cca4c7 ))
* **bar:** harden install handoff per review ([dfc8b7d ](https://github.com/kaitranntt/ccs/commit/dfc8b7d1dcca23a3c2f905b6e5e6f7bdd5195752 ))
* **bar:** keep header version label rightmost during refresh ([a5c4186 ](https://github.com/kaitranntt/ccs/commit/a5c41864b3710b31b9cd740305928f76643d9a35 ))
* **bar:** keep menu bar panel on the clicked screen in multi-display setups ([70dc53d ](https://github.com/kaitranntt/ccs/commit/70dc53d947e54e23d7befb422fbd1f556f8b57f5 )), closes [#1502 ](https://github.com/kaitranntt/ccs/issues/1502 ) [#1503 ](https://github.com/kaitranntt/ccs/issues/1503 )
* **bar:** probe IPv6 loopback when detecting a running CCS server ([3569297 ](https://github.com/kaitranntt/ccs/commit/3569297b6d0b7d36d5ec24bb1e0daeadebd42b4e ))
* **bar:** read app version from Info.plist and verify bar API instead of version majors ([c572d9f ](https://github.com/kaitranntt/ccs/commit/c572d9f8608a14d1150b6c9cf8064fd9e6f77417 )), closes [#1497 ](https://github.com/kaitranntt/ccs/issues/1497 )
* **bar:** read codex rollout tail via fs so quota surfaces under node ([2e99b58 ](https://github.com/kaitranntt/ccs/commit/2e99b58d095b847d0f8862b634262ae79a5666d5 ))
* **bar:** resolve pre-dev review findings (security gate, honesty, correctness) ([7d3a11a ](https://github.com/kaitranntt/ccs/commit/7d3a11a45278c4507070c958d8ce33c11b157c0b ))
* **bar:** reuse a running CCS web-server and probe ports on the bind host ([af1a2a0 ](https://github.com/kaitranntt/ccs/commit/af1a2a0f5d74ec368e1edbdd936b1d8024925188 )), closes [#1500 ](https://github.com/kaitranntt/ccs/issues/1500 )
* **bar:** stage downloads and swap so reinstall never strands the user ([cf3bd8a ](https://github.com/kaitranntt/ccs/commit/cf3bd8a5efb4e1166650d5a3d0d4002f59b6f3dc ))
* **bar:** stop install at the manual step when quarantine clearing fails ([015cc4d ](https://github.com/kaitranntt/ccs/commit/015cc4dd320728f152b13a924b9dceb1c8ea441f ))
* **bar:** verify server compat before Gatekeeper steps and harden reinstall ([f68c08e ](https://github.com/kaitranntt/ccs/commit/f68c08ede3188e2f58f74c50049bd72d06ad4ee6 ))
* **cli:** harden ccs bar install + align launch path ([63d10cb ](https://github.com/kaitranntt/ccs/commit/63d10cb2d0d20d6512fe623cf7d13c3ddc669e61 ))
* **cliproxy:** close second-round review gaps in pool onboarding and remote env ([7b8a6f5 ](https://github.com/kaitranntt/ccs/commit/7b8a6f5cceabddf7a68cc66014ef0ec6eba3e96e ))
* **cliproxy:** guard upstream response timeout cleanup against detached socket ([f59536a ](https://github.com/kaitranntt/ccs/commit/f59536a81fd0a2ca4dc58a2e3c89b463bb57150c ))
* **cliproxy:** harden account pools per pre-merge usefulness review ([1c90388 ](https://github.com/kaitranntt/ccs/commit/1c90388b5d16a3c8f7895f86bc9a769cb0800de3 ))
* **cliproxy:** silence legacy-config skip in pool opt-in prompt ([cff9008 ](https://github.com/kaitranntt/ccs/commit/cff9008f49643bac027de4a3f7eeb010f601ed8b ))
* **macos-bar:** correct set-default key, lead account, asset name ([8350c24 ](https://github.com/kaitranntt/ccs/commit/8350c247333cec3494409543f4030802b8c768d5 ))
* **mcp:** retry Claude user config locks ([cf90f48 ](https://github.com/kaitranntt/ccs/commit/cf90f48240db2666186eec08dce329690d26d60e ))
* **proxy:** add Anthropic passthrough mode for coding-agent-only endpoints ([b98b0df ](https://github.com/kaitranntt/ccs/commit/b98b0df0846944225889167658d9d6251d28baab ))
* **proxy:** route Anthropic passthrough by upstream profile ([bb9d23a ](https://github.com/kaitranntt/ccs/commit/bb9d23ad6a5597eadc2b3c23a773c60b3c78ad31 ))
* **quota:** reject tier-lock for non-managed providers ([b9a1084 ](https://github.com/kaitranntt/ccs/commit/b9a1084bd4c6437e34563f10a4b6ce9b09f14224 ))
* **test:** restore real account modules in tier-lock to fully stop mock leak ([ad9bdd5 ](https://github.com/kaitranntt/ccs/commit/ad9bdd5794963b25dce2e3da49b4a0ad18b7fe75 ))
* **test:** run bucket paths explicitly ([27c8a95 ](https://github.com/kaitranntt/ccs/commit/27c8a9570ba7a3b8879539a5817e3f76bbf30d42 ))
* **test:** stop tier-lock mock.module leaking an empty PROVIDERS_WITHOUT_EMAIL ([0770b89 ](https://github.com/kaitranntt/ccs/commit/0770b8903748c83fd1debe3c7c5d489ae72b1c3a ))
* **usage:** compute cost fallback lazily to stop event-loop stall ([f073434 ](https://github.com/kaitranntt/ccs/commit/f0734348d032d5267e1816cf908f60fd742a97e5 ))
* **usage:** correct per-account cost attribution ([cc7ac55 ](https://github.com/kaitranntt/ccs/commit/cc7ac553e326d7db84ef6ed02211a5afb58e4875 ))
### Documentation
* **bar:** align install docs with Info.plist version pinning and bar-API check ([e7f3ec0 ](https://github.com/kaitranntt/ccs/commit/e7f3ec0da1142efa1536ad3f4b95ddfdde097e25 ))
* **bar:** troubleshooting reflects reuse-first launch behavior ([db1d125 ](https://github.com/kaitranntt/ccs/commit/db1d125f83e2a967230be186ae31b2804c6c8177 ))
### Performance Improvements
* **bar:** probe reuse candidates concurrently to avoid launch stalls ([2fd90ff ](https://github.com/kaitranntt/ccs/commit/2fd90fff9bd59b18a2dac713a24ca05363b12759 ))
### Tests
* **ci:** allow temporary epic branch in PR trigger assertion ([22d4c72 ](https://github.com/kaitranntt/ccs/commit/22d4c727172567787a7719a87bdda0c3e960011b ))
### CI
* drop temporary epic branch from PR trigger ([2b7cfa3 ](https://github.com/kaitranntt/ccs/commit/2b7cfa32c8b7bde8cf1ab5f8f272a50fedb10c7e ))
* run PR CI for account-pools epic branch ([5101e21 ](https://github.com/kaitranntt/ccs/commit/5101e21ecd7f7990b06ba6aad05f7d1ba888f24f ))
2026-06-14 16:17:26 +00:00
Kai (Tam Nhu) Tran
0abcda17c5
Merge pull request #1521 from kaitranntt/dev
...
feat(release): promote dev to main
2026-06-14 12:13:44 -04:00
github-actions[bot]
ceb20a34c7
chore(release): 8.2.0-dev.11
2026-06-14 16:03:46 +00:00
Kai (Tam Nhu) Tran
2f2f8b042b
Merge pull request #1520 from kaitranntt/kai/fix/1516-test-bucket-paths
...
fix(test): run bucket paths explicitly
2026-06-14 11:59:48 -04:00
Tam Nhu Tran
27c8a9570b
fix(test): run bucket paths explicitly
2026-06-14 11:55:01 -04:00
github-actions[bot]
7e6e12d008
chore(release): 8.2.0-dev.10
2026-06-14 15:26:19 +00:00
Kai (Tam Nhu) Tran
65c2964050
Merge pull request #1519 from itzrnvr/fix/openai-compat-preserve-user-agent
...
fix(proxy): add Anthropic passthrough mode for coding-agent-only endpoints
2026-06-14 11:22:39 -04:00
Tam Nhu Tran
bb9d23ad6a
fix(proxy): route Anthropic passthrough by upstream profile
2026-06-14 11:19:58 -04:00
github-actions[bot]
0a11db9f62
chore(release): 8.2.0-dev.9
2026-06-13 02:35:28 +00:00
Kai (Tam Nhu) Tran
ce3cb99f7b
Merge pull request #1517 from kaitranntt/kai/feat/ccs-bar-promo
...
feat(dashboard): promote CCS Bar globally
2026-06-12 22:31:40 -04:00
Sanskar Singh
b98b0df084
fix(proxy): add Anthropic passthrough mode for coding-agent-only endpoints
...
Some providers (e.g. Kimi, Anthropic-API mirrors) reject OpenAI-format
chat-completions requests and/or only accept requests from a recognized
coding-agent User-Agent (e.g. Claude Code, Roo Code, Kilo Code). The
OpenAI-compat proxy previously translated every profile's request to
OpenAI format and overwrote the User-Agent with a fixed sentinel,
which made these providers unreachable.
This change adds an opt-in Anthropic passthrough mode:
- New CCS_OPENAI_PROXY_PASSTHROUGH=1 env var on a profile opts it in.
- The base URL is auto-detected as Anthropic-style for known hosts
(api.kimi.com, api.minimax.com, api.anthropic.com) or any base URL
ending in /v1.
- In passthrough mode the proxy forwards the incoming Anthropic body
verbatim to the upstream /v1/messages endpoint, preserving the
original User-Agent (or x-stainless-user-agent) so coding-agent
provider checks pass.
- The Anthropic-format response is streamed back unchanged.
Adds:
- isAnthropicPassthroughProfile() + passthrough option on
resolveOpenAIChatCompletionsUrl/resolveOpenAIModelsUrl
- CCS_OPENAI_PROXY_PASSTHROUGH env var on OpenAICompatProfileConfig
- readRawBody() helper for the passthrough path
- Preserved User-Agent (or x-stainless-user-agent) on the upstream
request, falling back to CCS-OpenAI-Compat-Proxy/1.0
- Skip SSE response transformation in passthrough mode (upstream
already returns Anthropic-format bytes)
Tests:
- 9 new tests in upstream-url.test.ts covering auto-detection and the
passthrough URL contract
- 2 new tests in profile-router.test.ts covering the env var
Verified end-to-end against api.kimi.com: a request through the
modified proxy returned a real Kimi response (model kimi-k2p7-coding)
with the original claude-cli/2.1.170 User-Agent preserved.
2026-06-13 01:39:49 +05:30
Tam Nhu Tran
b9356a7ce6
feat(dashboard): promote CCS Bar globally
2026-06-12 14:51:08 -04:00
github-actions[bot]
8e73ee0acc
chore(release): 8.2.0-dev.8
2026-06-12 15:27:36 +00:00
Kai (Tam Nhu) Tran
6c6cc22a7d
Merge pull request #1514 from kaitranntt/kai/feat/1464-account-pools
...
feat(cliproxy): account pools with auto-continue at usage limits
2026-06-12 11:23:46 -04:00
Tam Nhu Tran
7b8a6f5cce
fix(cliproxy): close second-round review gaps in pool onboarding and remote env
...
- create-command: show the pool onboarding hint only after profile
creation fully succeeds; the pre-create placement burned the
once-per-install dismissal when creation failed or rolled back
- remote env (claude): skip the read-level stale-pin filter once the
migration marker exists - a post-migration pin is user-intentional
(e.g. an explicit --config pick equal to a historical default)
- unified-config loader: document that loadOrCreateUnifiedConfig never
writes to disk, so read paths on legacy installs stay side-effect free
2026-06-11 19:32:51 -04:00