Commit 8941497
committed
chore(release): 8.2.0 [skip ci]
## [8.2.0](v8.1.4...v8.2.0) (2026-06-06)
### Features
* **catalog:** add Claude Opus 4.8 to Anthropic model registry ([357ce8b](357ce8b))
* **cliproxy:** add Qoder as a CLIProxy provider channel ([43c8304](43c8304))
* **cliproxy:** add qoder base config template ([85e7674](85e7674))
* **cliproxy:** add Qoder to channel catalog, model routing, and UI ([1e60fe1](1e60fe1))
* **pricing:** support per-service-tier rates; wire Opus fast mode ([878775f](878775f)), closes [#1](#1)
* **qoder:** add model catalog entries for backend and UI ([b52c062](b52c062))
* **qoder:** add provider logo asset and dashboard mapping ([d82cc13](d82cc13))
* **qoder:** Change default models in base-qoder settings ([de5b545](de5b545))
### Bug Fixes
* add CLIProxy account reauthentication ([5f1976f](5f1976f))
* **analytics:** collapse profile-scope disclaimer into tooltip icon ([9130c7d](9130c7d)), closes [#1390](#1390)
* **analytics:** price Claude Opus 4.7 thinking ([062e77e](062e77e))
* **analytics:** tighten top-bar layout (single-line trigger, grouped cluster, compact timestamp) ([bfa4c70](bfa4c70))
* avoid relative completion backend execution ([4f2dd70](4f2dd70))
* **browser:** avoid implicit explicit devtools port for config attach ([#1369](#1369)) ([f985cec](f985cec))
* **browser:** cap click and key repeat counts in MCP ([#1367](#1367)) ([c322829](c322829))
* **browser:** handle DevTools close endpoint response ([9225218](9225218))
* **browser:** log only matched intercepted requests ([#1366](#1366)) ([8b3ba55](8b3ba55))
* **browser:** track explicit devtools_port from config ([#1383](#1383)) ([b63943e](b63943e)), closes [#1369](#1369)
* **channels:** avoid secrets in --set-token argv ([#1389](#1389)) ([88fbac3](88fbac3))
* **ci:** add always-reporting CI Gate so fork PRs stop deadlocking ([7dba36f](7dba36f)), closes [#1461](#1461)
* **ci:** close dev-released issues on stable release ([#1396](#1396)) ([52a427a](52a427a))
* **ci:** constrain PR-Agent GitHub App token permissions ([#1370](#1370)) ([37fdf90](37fdf90))
* **ci:** narrow issue reference parsing ([2a3bc68](2a3bc68))
* **ci:** qualify docker release checkout refs ([#1374](#1374)) ([cba1414](cba1414))
* **claude-extension:** enforce private permissions for settings writes ([#1378](#1378)) ([0db9705](0db9705))
* **cliproxy:** clean up upstream proxy on response disconnect ([#1361](#1361)) ([2188cdc](2188cdc))
* **cliproxy:** fall back from invalid Codex feature labels ([a0870aa](a0870aa))
* **cliproxy:** ignore stale executor exit code ([bcc6899](bcc6899))
* **cliproxy:** infer emails from alternate token prefixes ([c0cd44e](c0cd44e))
* **cliproxy:** prefer explicit Codex free fallbacks ([27e1694](27e1694))
* **cliproxy:** preserve manual quota pauses ([6ecca9b](6ecca9b))
* **cliproxy:** prevent management key leak on runtime proxy overrides ([#1386](#1386)) ([4cf840e](4cf840e))
* **cliproxy:** redact generic token query params in oauth trace ([#1364](#1364)) ([9357f4d](9357f4d))
* **cliproxy:** revert to qoder/auto prefixed model in base config ([c5308de](c5308de))
* **cliproxy:** sanitize Codex quota labels ([4574122](4574122))
* **cliproxy:** scrub GitLab PAT env after token-login auth ([#1360](#1360)) ([e658e83](e658e83))
* **cliproxy:** use unprefixed auto model for qoder base config ([9a8430f](9a8430f))
* **codex-auth:** narrow running Codex detection ([9eb0201](9eb0201))
* **codex-auth:** restrict symlink fallback and harden copy path ([#1365](#1365)) ([0bd2e57](0bd2e57))
* **codex:** cap buffered upstream error response size ([#1375](#1375)) ([b0a7541](b0a7541))
* **codex:** gate ccsxp config overrides ([e09e930](e09e930))
* compare cliproxy fork release suffixes ([#1419](#1419)) ([aee322e](aee322e))
* **config:** Update Kiro model settings in default configuration ([39656b9](39656b9))
* **config:** use valid Kiro default model ([a06eff6](a06eff6))
* correct claude image analysis default model ([8842102](8842102))
* create explicit CODEX_HOME with secure permissions ([#1380](#1380)) ([55cd78b](55cd78b))
* **cursor-daemon:** auto-generate token + expose for callers ([#1384](#1384)) ([b7d5ce1](b7d5ce1)), closes [1373/#1377](https://github.com/1373/ccs/issues/1377)
* **cursor-daemon:** widen safeResolve type for daemonToken ([#1385](#1385)) ([ba887e0](ba887e0)), closes [1373/#1377](https://github.com/1373/ccs/issues/1377)
* **cursor:** authenticate local daemon health/runtime traffic ([#1373](#1373)) ([03a3011](03a3011))
* **cursor:** block cross-origin runtime probe requests ([#1371](#1371)) ([e6f764c](e6f764c))
* **cursor:** enforce auth token for anthropic daemon route ([#1377](#1377)) ([210ab76](210ab76))
* **dashboard:** clear local control-panel management key ([#1372](#1372)) ([6c0f7ac](6c0f7ac))
* **dashboard:** respect account last-used timeline base ([70601e6](70601e6))
* disable docker legacy API key auth by default ([#1355](#1355)) ([ab379e9](ab379e9))
* **docker:** pin runtime deps to committed bun lockfile ([#1358](#1358)) ([aef331d](aef331d))
* forward bare Claude subcommands through the default profile ([3fbf850](3fbf850)), closes [#1218](#1218) [#1404](#1404)
* gate auth monitor stats polling ([#1421](#1421)) ([c12174d](c12174d))
* guard self-signed routing request setup ([5807328](5807328))
* handle system messages in OpenAI proxy ([#1403](#1403)) ([f42aee9](f42aee9))
* harden cliproxy usage cache ([6bba193](6bba193))
* harden provider alias normalization ([480f3ba](480f3ba))
* honor browser eval env override in attach config ([#1368](#1368)) ([4e7894a](4e7894a))
* keep live catalog defaults visible ([f9dec01](f9dec01))
* **management:** skip broken shared plugin entries ([f44b651](f44b651))
* narrow legacy GLMT base URL normalization ([#1376](#1376)) ([781c84b](781c84b))
* normalize cliproxy v3 usage snapshots ([65adab5](65adab5))
* normalize Codex provider requests ([0f0ad4e](0f0ad4e)), closes [#1399](#1399) [#1406](#1406)
* persist codex target selections ([04dc97a](04dc97a))
* **persist:** bound Codex translator receipt scan ([5da6334](5da6334))
* **pricing:** restore opus version order; cover 4.6/4.7 fast-tier rates ([5a79b47](5a79b47))
* **proxy:** honor backpressure in cliproxy local streaming ([#1379](#1379)) ([90d5ca2](90d5ca2))
* **proxy:** load pid-only profile daemon state ([216fae7](216fae7))
* **proxy:** support opt-in OpenAI reasoning shaping ([8282ff6](8282ff6))
* redact OAuth trace error messages ([14da76a](14da76a))
* reject symlinked cleanup directories ([920fba7](920fba7))
* reject unsupported image analysis backends ([#1387](#1387)) ([b35a23a](b35a23a))
* restrict Codex usage cache permissions ([c630ce8](c630ce8))
* restrict local runtime readiness probes ([9a7b26e](9a7b26e))
* **sse:** make CRLF normalization chunk-boundary safe ([#1359](#1359)) ([2ec23c6](2ec23c6))
* stop ccsxp model alias parsing at option terminator ([5776e9c](5776e9c))
* surface cleanup directory read errors ([f93cb36](f93cb36))
* **test:** add qoder to PLUS_EXTRA_CLIPROXY_PROVIDERS test expectation ([dea4de4](dea4de4))
* time out stalled CLIProxy response streams ([d7d5ad2](d7d5ad2))
* tolerate null retryable check ([54f3b68](54f3b68))
* **ui:** blur account identity badges in privacy mode ([dd62027](dd62027))
* **ui:** guard invalid log detail timestamps ([4ce6669](4ce6669))
* **ui:** preserve distinct log detail rows ([c0f5413](c0f5413))
* **ui:** preserve Gemini tier fallback without entitlement ([1f7ed65](1f7ed65))
* **ui:** show dashboard audit logs by default ([2b59e04](2b59e04))
* **ui:** suppress privacy mode account title leaks ([f592260](f592260))
* validate browser flags before proxy side effects ([8114ff0](8114ff0))
* validate usage profile query type ([901bad2](901bad2))
* **web-server:** stop startup local prefix sync secret leak ([#1362](#1362)) ([d961644](d961644))
* **web:** avoid runtime proxy probes on public masked settings route ([#1388](#1388)) ([fec8441](fec8441))
* **web:** harden localhost guard against DNS rebinding ([#1357](#1357)) ([21764d5](21764d5))
### Hotfixes
* sync Docker release publishing fix to dev ([6ed9e09](6ed9e09)), closes [#1400](#1400)
### Documentation
* **docker:** avoid exposing dashboard password in examples ([#1382](#1382)) ([e59ee6d](e59ee6d))
* **docker:** harden remote token migration staging ([#1381](#1381)) ([7ccea95](7ccea95))
* **pricing:** document legacy 4-7-thinking entry; cover tier metadata ([1fc595f](1fc595f))
### Styles
* format ccsxp config override changes ([89475e3](89475e3))
* format codex target persistence changes ([ad47d0f](ad47d0f))
* format email fallback parsing changes ([79379a2](79379a2))
* format live catalog default changes ([8261901](8261901))
* format provider alias normalization changes ([0ca3e4b](0ca3e4b))
* format v3 snapshot migration changes ([b3a8ced](b3a8ced))
### Code Refactoring
* **pricing:** derive fast-tier cache rates via buildRates helper ([254fc88](254fc88)), closes [#3](#3)
* **pricing:** share Opus fast-tier rate constants ([e8057a7](e8057a7))
### Tests
* **accounts:** align stale free-tier expectations with current behavior ([5157a92](5157a92))
* **accounts:** align stale free-tier expectations with current grouping ([28cfc17](28cfc17))
* cover qoder base settings ([ba853b1](ba853b1))
* **qoder:** add qoder to provider-capabilities test expectations ([4973f7a](4973f7a))
* restrict claudecode CCS_HOME cleanup ([6671423](6671423))
* update proxy resolver coverage ([1f1cc05](1f1cc05))1 parent 9b77436 commit 8941497
2 files changed
Lines changed: 137 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
1 | 137 | | |
2 | 138 | | |
3 | 139 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments