Commit Graph
4629 Commits
Author SHA1 Message Date
Tam Nhu Tran 4e4c949967 fix(cliproxy): harden xAI provider contracts 2026-07-18 19:04:07 -04:00
Tam Nhu Tran 90c0409aac Merge remote-tracking branch 'origin/dev' into kai/review/1641-xai-grok 2026-07-18 18:14:56 -04:00
github-actions[bot] 66189250a3 chore(release): 8.7.0-dev.11 2026-07-18 22:00:21 +00:00
Kai (Tam Nhu) Tran 4998153205 Merge pull request #1644 from kaitranntt/kai/fix/fast-bucket-bar-isolation
fix(ci): isolate Bar command fast tests
2026-07-18 17:54:13 -04:00
Tam Nhu Tran 6dc199a038 fix(ci): isolate Bar command fast tests 2026-07-18 17:46:53 -04:00
Kai (Tam Nhu) Tran be97e43503 Merge pull request #1643 from kaitranntt/kai/fix/1642-bar-pool-quota
fix(bar): show Claude and Codex pool quota
2026-07-18 17:40:17 -04:00
Tam Nhu Tran 8996c92fda fix(bar): preserve quota cache and reset semantics 2026-07-18 17:28:36 -04:00
Tam Nhu Tran f77ed33cc7 fix(bar): show Claude and Codex pool quota 2026-07-18 17:13:40 -04:00
minhbi245 54a2b4759b feat(cliproxy): add xAI Grok provider 2026-07-17 00:02:12 +07:00
github-actions[bot] 1b67c7840b chore(release): 8.7.0-dev.10 2026-07-15 15:56:56 +00:00
Kai (Tam Nhu) Tran 802ea04712 Merge pull request #1640 from kaitranntt/kai/fix/1639-ccsx-profile-plugin-cache-v2
fix(codex-auth): share plugin cache across profiles
2026-07-15 11:52:26 -04:00
Tam Nhu Tran 234dce3150 fix(codex-auth): reject aliased plugin cache paths 2026-07-15 11:36:15 -04:00
Tam Nhu Tran 3103af5355 docs(codex-auth): document shared plugin cache 2026-07-15 10:24:13 -04:00
Tam Nhu Tran 960d6e23a0 test(codex-auth): cover profile cache repair entry points 2026-07-15 10:24:13 -04:00
Tam Nhu Tran e5d4d860b3 fix(codex-auth): share plugin cache across profiles 2026-07-15 10:24:13 -04:00
github-actions[bot] 463a1ffa50 chore(release): 8.7.0-dev.9 2026-07-13 09:44:06 -04:00
github-actions[bot] 612a664259 chore(release): 8.7.0-dev.8 2026-07-13 13:37:36 +00:00
Kai (Tam Nhu) Tran 44c2e8ccc5 Merge pull request #1634 from KennethWKZ/feat/support-claude-sonnet-1m
fix: preserve saved Claude extended-context preference
2026-07-13 09:27:02 -04:00
Tam Nhu Tran 72f00bac1f Merge remote-tracking branch 'origin/dev' into kai/review/pr-1634 2026-07-13 09:26:00 -04:00
Kai (Tam Nhu) Tran 073e795f61 Merge pull request #1638 from tom-price/fix/usage-aggregator-missing-modelbreakdowns
fix: guard against missing modelBreakdowns in usage aggregation
2026-07-13 09:25:43 -04:00
Tam Nhu Tran b52e42eba4 Merge remote-tracking branch 'origin/dev' into kai/review/pr-1634 2026-07-13 09:16:46 -04:00
Tam Nhu Tran 5943c8fa3c fix: strip stale Gemini extended context suffixes 2026-07-13 09:14:04 -04:00
Tom Price a7f3e4bc0e fix: guard against missing modelBreakdowns in usage aggregation
The CCS Bar server was crash-looping with:

    [X] Cannot read properties of undefined (reading 'length')

Usage records from partially-written or legacy persisted files (e.g. a
Codex rollout scanned mid-write) can be missing modelBreakdowns despite
the type. getHourlyRequestCount() and the daily/monthly/hourly merges
read it unguarded, and the Bar re-runs aggregation every ~5 min and
restarts on crash - hence the loop.

Default modelBreakdowns to [] at every use site and fall back to 0 for
request count. Regression test added for all three merges.

I don't normally work in TS and this was heavily tool-assisted, but it
has fixed the crash loop on my machine.
2026-07-12 21:23:31 -04:00
github-actions[bot] 507ce278b9 chore(release): 8.7.0-dev.7 2026-07-10 17:30:09 +00:00
Kai (Tam Nhu) Tran 58c02a53d9 Merge pull request #1637 from kaitranntt/kai/feat/1633-gpt-5-6-models
feat(codex): add GPT-5.6 model catalog
2026-07-10 13:20:50 -04:00
Kai (Tam Nhu) Tran ab09c96210 Merge pull request #1636 from kaitranntt/kai/fix/1635-codex-toml-recovery
fix(codex): preview joined migration TOML repair
2026-07-10 13:20:35 -04:00
Tam Nhu Tran 24eae8ae8f feat(codex): add GPT-5.6 model catalog
Closes #1633
2026-07-10 08:54:48 -04:00
Tam Nhu Tran 77e73dd091 fix(codex): preview joined migration TOML repair
Closes #1635
2026-07-10 08:54:18 -04:00
Kenneth Wong 7f369f75dc fix: claude model no get the 1m tag 2026-07-10 00:39:19 +08:00
github-actions[bot] da6c99e3df chore(release): 8.7.0-dev.6 2026-07-08 14:22:20 +00:00
Kai (Tam Nhu) Tran 5afd294c7e Merge pull request #1631 from sgaluza/sergey/add-claude-sonnet-5-pricing
feat(pricing): register Claude Sonnet 5 in the pricing registry
2026-07-08 10:18:03 -04:00
Sergey Galuza 1e63c37baf feat(pricing): register Claude Sonnet 5 in the pricing registry
Add explicit `claude-sonnet-5` and `claude-sonnet-5-thinking` entries to the
web-server PRICING_REGISTRY at the standard Sonnet rates ($3/$15 in/out,
$3.75/$0.30 cache).

The model catalog and dashboard already ship Sonnet 5 (it is the Claude
default), but pricing was missing: getModelPricing() fell through to
UNKNOWN_MODEL_PRICING, which only coincidentally matches Sonnet rates. As a
result hasCustomPricing('claude-sonnet-5') returned false and getKnownModels()
omitted it, so Sonnet 5 was treated as an unknown model in cost accounting and
known-model listings.

Registering it explicitly makes the pricing intentional and consistent with
every other Claude model, without changing any resolved values.

Built [OnSteroids](https://onsteroids.ai)
2026-07-07 14:51:43 +02:00
github-actions[bot] f1eee3029e chore(release): 8.7.0-dev.5 2026-07-02 15:15:30 +00:00
Kai (Tam Nhu) Tran b95f95317e Merge pull request #1630 from kaitranntt/kai/feat/copilot-model-ui
feat: support custom GHCP model selection
2026-07-02 11:11:20 -04:00
Tam Nhu Tran c8a4b42990 feat: add Sonnet 5 to Claude provider catalog 2026-07-02 10:31:42 -04:00
Tam Nhu Tran 631a515986 feat: support custom GHCP model selection 2026-07-02 10:10:28 -04:00
github-actions[bot] 1aacbfd2a8 chore(release): 8.7.0-dev.4 2026-07-01 05:30:54 +00:00
Kai (Tam Nhu) Tran 1ee7cac555 fix: reject case-variant symlinked file paths (#1629)
* fix: reject case-variant symlinked file paths

* fix: validate requested case-variant symlink paths
2026-07-01 01:26:48 -04:00
github-actions[bot] 53fe7e1e8d chore(release): 8.7.0-dev.3 2026-07-01 05:20:05 +00:00
Kai (Tam Nhu) Tran 343899f6c1 fix: prevent default profile credential collision (#1628)
* fix: prevent default profile credential collision

* fix: isolate default profile credential fallback
2026-07-01 01:15:45 -04:00
github-actions[bot] 20df3445d9 chore(release): 8.7.0-dev.2 2026-07-01 05:13:16 +00:00
Kai (Tam Nhu) Tran 0f9a87619c fix: cap native quota profile refresh fan-out (#1627)
* fix: cap native quota profile refresh fan-out

* fix: preserve native quota live cache state
2026-07-01 01:09:01 -04:00
github-actions[bot] f2cd076c08 chore(release): 8.7.0-dev.1 2026-07-01 04:54:25 +00:00
Kai (Tam Nhu) Tran 3621f8dcb1 fix: validate CCS Bar launch shim target integrity (#1626)
* fix: validate CCS Bar launch shim target integrity

* fix: execute verified bar shim bytes
2026-07-01 00:49:56 -04:00
Kai (Tam Nhu) Tran 05685d1c21 fix: keep agy websearch permissions enabled (#1625) 2026-07-01 00:45:09 -04:00
semantic-release-bot 99f023fe3d chore(release): 8.7.0 [skip ci]
## [8.7.0](https://github.com/kaitranntt/ccs/compare/v8.6.1...v8.7.0) (2026-07-01)

### Features

* add Requesty as an OpenAI-compatible provider ([#1604](https://github.com/kaitranntt/ccs/issues/1604)) ([a167f94](https://github.com/kaitranntt/ccs/commit/a167f94e1b07ee47f201cdbbc72c6fd0e68a8738))
* **bar:** enumerate ccs/ccsx subscription profiles with per-profile quota ([ed86a08](https://github.com/kaitranntt/ccs/commit/ed86a089ba9102538f2aee07cd47515c7cb498ed))
* **bar:** make the profile carousel mouse-navigable ([f57eed8](https://github.com/kaitranntt/ccs/commit/f57eed8c34817ea77f313d63029fa9e746f8b9c9))
* **bar:** per-provider profile carousel with ccs/ccsx surface tags ([e8adcb8](https://github.com/kaitranntt/ccs/commit/e8adcb89993c3c972691679aee402e7844f58766))
* **bar:** swipeable profile carousel and condensed alerts ([#1603](https://github.com/kaitranntt/ccs/issues/1603)) ([d7933c6](https://github.com/kaitranntt/ccs/commit/d7933c6243b7593eed524b6aa6c9c977f1e16eea)), closes [#1602](https://github.com/kaitranntt/ccs/issues/1602)
* **websearch:** add agy provider and deprecate gemini cli fallback ([#1607](https://github.com/kaitranntt/ccs/issues/1607)) ([9dd9bf2](https://github.com/kaitranntt/ccs/commit/9dd9bf297890c1802fdc491ec6b909e1e5136a84))

### Bug Fixes

* **auth:** honor legacy unified default profiles ([#1619](https://github.com/kaitranntt/ccs/issues/1619)) ([2f1453e](https://github.com/kaitranntt/ccs/commit/2f1453e39785889ba82cb4183dd0a31f32349f45))
* **bar:** align subscription carousel and collapse stale blank space ([#1600](https://github.com/kaitranntt/ccs/issues/1600)) ([62274da](https://github.com/kaitranntt/ccs/commit/62274dabfa62049a4ab0a0249e59b2d5645bc2b8)), closes [#1599](https://github.com/kaitranntt/ccs/issues/1599)
* **bar:** cache expired profiles and gate codex local fallback to the default ([a0a2dd0](https://github.com/kaitranntt/ccs/commit/a0a2dd00face1825aff6fbc4d87b93bd38bf7f9b))
* **bar:** keep is_default on cache-fallback rows ([7b610f0](https://github.com/kaitranntt/ccs/commit/7b610f0e8275c4d61ae3b35a891cd17ef0f8262e))
* **bar:** lead carousel with default account, label it as the base command ([b9f6837](https://github.com/kaitranntt/ccs/commit/b9f68379135afa653f835cd36fef8a6ad515bad9))
* **bar:** short-TTL parked rows + keep valid codex subs active ([b514986](https://github.com/kaitranntt/ccs/commit/b514986ddd947ebd4a67acd41bf6735586a72959))
* **bar:** show the active default ccs login as the leading Claude account ([54ef540](https://github.com/kaitranntt/ccs/commit/54ef5406ce891343ef6bd7fe885ae5db59466763))
* **bar:** tighten subscription carousel spacing ([d9bd5b6](https://github.com/kaitranntt/ccs/commit/d9bd5b6f8683bc279979156b76935fe09da5288b))
* **bar:** use nonce-bound probe auth ([#1623](https://github.com/kaitranntt/ccs/issues/1623)) ([0180b62](https://github.com/kaitranntt/ccs/commit/0180b624539eda3e34155b4ef3adc169282d3c6a))
* bound bar raw socket probes ([#1618](https://github.com/kaitranntt/ccs/issues/1618)) ([396e01a](https://github.com/kaitranntt/ccs/commit/396e01ab6fbaddf74949a1777dc34a0ebbdc9677))
* **ci:** include compose parity in CI Gate ([#1614](https://github.com/kaitranntt/ccs/issues/1614)) ([58a90d3](https://github.com/kaitranntt/ccs/commit/58a90d3633ddac8a932ef71833f9c53723dda7d5))
* **cliproxy:** clean up launch-settings overlay on synchronous spawn failure ([454e155](https://github.com/kaitranntt/ccs/commit/454e1555a7b1d50f77d77c2fd7b6690930e52260))
* **cliproxy:** keep proxy-chain base URL authoritative over --settings env ([3847443](https://github.com/kaitranntt/ccs/commit/3847443da37aa7361b14d7e840b1fe595991cab0))
* **cliproxy:** mask control panel login key ([#1617](https://github.com/kaitranntt/ccs/issues/1617)) ([bb7c3a4](https://github.com/kaitranntt/ccs/commit/bb7c3a4037db6ff14a9511e6638b039437d7d68b))
* close bar launch case bypass ([#1613](https://github.com/kaitranntt/ccs/issues/1613)) ([3f1dce3](https://github.com/kaitranntt/ccs/commit/3f1dce30bc1a9743e3baab2cc479e32762d68cb5))
* **codex:** normalize CLIProxy responses routes ([#1605](https://github.com/kaitranntt/ccs/issues/1605)) ([ba0e768](https://github.com/kaitranntt/ccs/commit/ba0e768fbf5d92d380caf1b8a1eb6cc2cf9d15fc))
* **codex:** route codex CLI to /backend-api/codex on original CLIProxy backend ([a1a5651](https://github.com/kaitranntt/ccs/commit/a1a565177e5118bb06f1e159ee1dcd887c8ed19e)), closes [#1597](https://github.com/kaitranntt/ccs/issues/1597)
* **cursor:** propagate daemon auth token ([#1616](https://github.com/kaitranntt/ccs/issues/1616)) ([4283c46](https://github.com/kaitranntt/ccs/commit/4283c4665c7812a7eda343b31f6ff3359f8294b8))
* fail closed on websearch launch provisioning ([#1621](https://github.com/kaitranntt/ccs/issues/1621)) ([f2843ad](https://github.com/kaitranntt/ccs/commit/f2843ad2ce8f929e46a75ca8692d8f3bb9c0034c))
* **glmt:** emit thinking signature as opaque string ([cbcdb6b](https://github.com/kaitranntt/ccs/commit/cbcdb6ba626ee5438502ea32eb9505735fa0963a))
* **logging:** redact browser debug endpoint ([#1622](https://github.com/kaitranntt/ccs/issues/1622)) ([138ead0](https://github.com/kaitranntt/ccs/commit/138ead0e1ef36f96f7c7b3c515aaa308f27e389c))
* make CCS Bar launch descriptor use private shim ([fb9509d](https://github.com/kaitranntt/ccs/commit/fb9509d9be08187077baf44d2141aadc2518e551))
* restrict bar release workflow to main ([#1612](https://github.com/kaitranntt/ccs/issues/1612)) ([23b2c3d](https://github.com/kaitranntt/ccs/commit/23b2c3d6afd3170920bc00435f5013b7464e2795))
* skip paused codex accounts in bar refresh ([#1620](https://github.com/kaitranntt/ccs/issues/1620)) ([0527e27](https://github.com/kaitranntt/ccs/commit/0527e276b12033a3718e1330120d020e9843188a))

### Documentation

* **cliproxy:** document strip-vs-overlay launch-settings siblings and model-key superset ([13e23e0](https://github.com/kaitranntt/ccs/commit/13e23e0fc5b55c10af16e00a82535ca8c71a161f))

### Tests

* **cliproxy:** cover launch-settings corrupt-JSON fallback and overlay permissions ([e5db374](https://github.com/kaitranntt/ccs/commit/e5db374e98ad25091bc8105acb6c83486c17dbb8))
* **glmt:** align thinking signature coverage ([045fc93](https://github.com/kaitranntt/ccs/commit/045fc932857bdc9c52fa7573ec1bbd81a951b6a0))
* **glmt:** assert thinking signature is a non-empty opaque string ([37d2bae](https://github.com/kaitranntt/ccs/commit/37d2bae001cc52753696c575d86a4889591d8789))
2026-07-01 02:56:15 +00:00
Kai (Tam Nhu) Tran eccb3d1997 Merge pull request #1624 from kaitranntt/dev
feat: promote dev to main
2026-06-30 22:52:18 -04:00
github-actions[bot] 772a9c246e chore(release): 8.6.1-dev.13 2026-06-30 17:16:40 +00:00
Kai (Tam Nhu) Tran 0180b62453 fix(bar): use nonce-bound probe auth (#1623) 2026-06-30 13:10:56 -04:00
Kai (Tam Nhu) Tran 138ead0e1e fix(logging): redact browser debug endpoint (#1622)
* fix(logging): redact browser debug endpoint

* fix(logging): redact prompt argv values
2026-06-30 13:07:46 -04:00