github-actions[bot]
e22424097e
chore(release): 8.1.0-dev.10
2026-05-27 15:18:13 +00:00
Kai (Tam Nhu) Tran
d7d5ad2ad2
fix: time out stalled CLIProxy response streams
2026-05-27 11:14:40 -04:00
github-actions[bot]
b4a81327b2
chore(release): 8.1.0-dev.9
2026-05-27 14:16:37 +00:00
Kai (Tam Nhu) Tran
5f1976f69c
fix: add CLIProxy account reauthentication
2026-05-27 10:13:03 -04:00
github-actions[bot]
d212c72ad8
chore(release): 8.1.0-dev.8
2026-05-27 12:31:40 +00:00
Kai (Tam Nhu) Tran
52a427a7a3
fix(ci): close dev-released issues on stable release ( #1396 )
2026-05-27 08:28:01 -04:00
github-actions[bot]
aecd8beb54
chore(release): 8.1.0-dev.7
2026-05-24 16:37:11 +00:00
Kai (Tam Nhu) Tran
f1ba01334a
Merge pull request #1392 from kaitranntt/kai/fix/1390-analytics-disclaimer-shrink
...
fix(analytics): tighten profile-aware top bar (disclaimer + trigger + timestamp)
2026-05-24 12:33:44 -04:00
Tam Nhu Tran
bfa4c704eb
fix(analytics): tighten top-bar layout (single-line trigger, grouped cluster, compact timestamp)
...
Three design taste fixes that ride on top of the disclaimer collapse:
- Single-line profile trigger: render only `option.label` in the
Select trigger; keep label+description in the open menu where the
description earns its keep. Removes the two-line trigger that broke
the row baseline (taller pill, vertical-center cascade).
- Group Select + Info icon in an `inline-flex … shrink-0` cluster so
they wrap as a single unit and the icon never orphans onto a second
row under the refresh button.
- Compact timestamp: "Updated less than a minute ago" → "1m ago"
rendered in font-mono. Full phrase preserved via `title`
attribute. Drops the localized prefix into a tooltip-only context.
- Trigger width trimmed 190px → 170px since it no longer needs to fit
a description line.
2026-05-24 11:34:57 -04:00
Tam Nhu Tran
9130c7d869
fix(analytics): collapse profile-scope disclaimer into tooltip icon
...
The disclaimer paragraph rendered as a two-line block under the
controls row, eating vertical real-estate while the cards stayed
empty. Replace it with a small Info icon beside the profile
dropdown that surfaces the same copy in a tooltip on hover/focus.
- Same copy preserved verbatim; no informational loss
- Icon only renders when a non-All profile is selected
- Reclaims ~32px of vertical space on the analytics header
Closes #1390
2026-05-23 23:40:02 -04:00
github-actions[bot]
0a482bd2d3
chore(release): 8.1.0-dev.6
2026-05-24 02:41:07 +00:00
Kai (Tam Nhu) Tran
88fbac3a32
fix(channels): avoid secrets in --set-token argv ( #1389 )
2026-05-23 22:37:55 -04:00
Kai (Tam Nhu) Tran
fec84417a6
fix(web): avoid runtime proxy probes on public masked settings route ( #1388 )
2026-05-23 22:37:49 -04:00
Kai (Tam Nhu) Tran
b35a23a6e4
fix: reject unsupported image analysis backends ( #1387 )
...
* fix: reject unsupported image analysis backends
* style: apply prettier formatting
2026-05-23 22:37:44 -04:00
Kai (Tam Nhu) Tran
4cf840ea0a
fix(cliproxy): prevent management key leak on runtime proxy overrides ( #1386 )
...
* fix(cliproxy): clear yaml management key on runtime overrides
* style: apply prettier formatting
2026-05-23 22:37:39 -04:00
github-actions[bot]
2237011b59
chore(release): 8.1.0-dev.5
2026-05-24 02:14:01 +00:00
Kai (Tam Nhu) Tran
ba887e012a
fix(cursor-daemon): widen safeResolve type for daemonToken ( #1385 )
...
* fix(cursor-daemon): auto-generate token + expose for callers
PRs #1373/#1377 gated cursor daemon endpoints behind a token check, but
startDaemon() did not generate or expose a token. Health-check probing
during startup then 401'd against the new auth, so startDaemon waited 30s
then reported failure. Same for tests asserting /404 and validation
behavior — they couldn't reach the downstream logic past the 401 gate.
- Auto-generate a 32-byte hex token in startDaemon when caller did not
provide one
- Return daemonToken in startDaemon result so callers/tests can attach it
- Update integration tests to include x-ccs-cursor-token header
* fix(cursor-daemon): widen safeResolve type for daemonToken field
2026-05-23 22:09:53 -04:00
Kai (Tam Nhu) Tran
b7d5ce178a
fix(cursor-daemon): auto-generate token + expose for callers ( #1384 )
...
PRs #1373/#1377 gated cursor daemon endpoints behind a token check, but
startDaemon() did not generate or expose a token. Health-check probing
during startup then 401'd against the new auth, so startDaemon waited 30s
then reported failure. Same for tests asserting /404 and validation
behavior — they couldn't reach the downstream logic past the 401 gate.
- Auto-generate a 32-byte hex token in startDaemon when caller did not
provide one
- Return daemonToken in startDaemon result so callers/tests can attach it
- Update integration tests to include x-ccs-cursor-token header
2026-05-23 22:07:15 -04:00
Kai (Tam Nhu) Tran
b63943eb45
fix(browser): track explicit devtools_port from config ( #1383 )
...
#1369 unconditionally set hasExplicitDevtoolsPort=false for config-attach,
which broke users who explicitly set devtools_port in config. Now track
whether config.claude.devtools_port was actually provided.
2026-05-23 21:55:02 -04:00
Kai (Tam Nhu) Tran
f985cec3ff
fix(browser): avoid implicit explicit devtools port for config attach ( #1369 )
...
* fix(browser): avoid implicit explicit devtools port for config attach
* style: apply prettier formatting
2026-05-23 21:46:04 -04:00
Kai (Tam Nhu) Tran
e59ee6df79
docs(docker): avoid exposing dashboard password in examples ( #1382 )
2026-05-23 21:45:17 -04:00
Kai (Tam Nhu) Tran
7ccea955ad
docs(docker): harden remote token migration staging ( #1381 )
2026-05-23 21:45:15 -04:00
Kai (Tam Nhu) Tran
55cd78bce4
fix: create explicit CODEX_HOME with secure permissions ( #1380 )
2026-05-23 21:45:12 -04:00
Kai (Tam Nhu) Tran
90d5ca2cbb
fix(proxy): honor backpressure in cliproxy local streaming ( #1379 )
2026-05-23 21:45:09 -04:00
Kai (Tam Nhu) Tran
0db9705d75
fix(claude-extension): enforce private permissions for settings writes ( #1378 )
2026-05-23 21:45:07 -04:00
Kai (Tam Nhu) Tran
210ab761e2
fix(cursor): enforce auth token for anthropic daemon route ( #1377 )
2026-05-23 21:45:05 -04:00
Kai (Tam Nhu) Tran
781c84b04b
fix: narrow legacy GLMT base URL normalization ( #1376 )
...
* fix: narrow legacy glmt base url normalization
* style: apply prettier formatting
2026-05-23 21:45:02 -04:00
Kai (Tam Nhu) Tran
b0a754179c
fix(codex): cap buffered upstream error response size ( #1375 )
2026-05-23 21:45:00 -04:00
Kai (Tam Nhu) Tran
cba1414b7e
fix(ci): qualify docker release checkout refs ( #1374 )
...
* fix(ci): qualify docker release checkout refs
* style: apply prettier formatting
2026-05-23 21:44:57 -04:00
Kai (Tam Nhu) Tran
03a30119d9
fix(cursor): authenticate local daemon health/runtime traffic ( #1373 )
2026-05-23 21:44:55 -04:00
Kai (Tam Nhu) Tran
6c0f7ac39c
fix(dashboard): clear local control-panel management key ( #1372 )
2026-05-23 21:44:53 -04:00
Kai (Tam Nhu) Tran
e6f764c79b
fix(cursor): block cross-origin runtime probe requests ( #1371 )
2026-05-23 21:44:50 -04:00
Kai (Tam Nhu) Tran
37fdf90e30
fix(ci): constrain PR-Agent GitHub App token permissions ( #1370 )
...
* fix(ci): constrain pr-agent app token permissions
* style: apply prettier formatting
2026-05-23 21:44:47 -04:00
Kai (Tam Nhu) Tran
4e7894a3da
fix: honor browser eval env override in attach config ( #1368 )
2026-05-23 21:44:44 -04:00
Kai (Tam Nhu) Tran
c322829f44
fix(browser): cap click and key repeat counts in MCP ( #1367 )
...
* fix(browser): cap click and key repeat counts in MCP
* style: apply prettier formatting
2026-05-23 21:44:42 -04:00
Kai (Tam Nhu) Tran
8b3ba5532e
fix(browser): log only matched intercepted requests ( #1366 )
2026-05-23 21:44:40 -04:00
Kai (Tam Nhu) Tran
2188cdc990
fix(cliproxy): clean up upstream proxy on response disconnect ( #1361 )
...
* fix(cliproxy): clean up upstream proxy on response disconnect
* style: apply prettier formatting
2026-05-23 21:44:37 -04:00
Kai (Tam Nhu) Tran
e658e838f9
fix(cliproxy): scrub GitLab PAT env after token-login auth ( #1360 )
...
* fix(cliproxy): scrub gitlab pat env var after auth handoff
* style: apply prettier formatting
2026-05-23 21:44:35 -04:00
Kai (Tam Nhu) Tran
2ec23c6c3a
fix(sse): make CRLF normalization chunk-boundary safe ( #1359 )
...
* fix(sse): handle CRLF split across chunk boundaries
* style: apply prettier formatting
2026-05-23 21:44:32 -04:00
Kai (Tam Nhu) Tran
21764d5b90
fix(web): harden localhost guard against DNS rebinding ( #1357 )
...
* fix(web): harden localhost guard against DNS rebinding
* style: apply prettier formatting
2026-05-23 21:44:19 -04:00
Kai (Tam Nhu) Tran
0bd2e577b2
fix(codex-auth): restrict symlink fallback and harden copy path ( #1365 )
2026-05-23 21:43:51 -04:00
github-actions[bot]
1065f68eae
chore(release): 8.1.0-dev.4
2026-05-24 01:42:35 +00:00
Kai (Tam Nhu) Tran
9357f4df26
fix(cliproxy): redact generic token query params in oauth trace ( #1364 )
2026-05-23 21:39:05 -04:00
github-actions[bot]
65ced77c4c
chore(release): 8.1.0-dev.3
2026-05-24 01:37:41 +00:00
Kai (Tam Nhu) Tran
d9616447f9
fix(web-server): stop startup local prefix sync secret leak ( #1362 )
2026-05-23 21:24:18 -04:00
github-actions[bot]
7606a31b8e
chore(release): 8.1.0-dev.2
2026-05-24 01:23:22 +00:00
Kai (Tam Nhu) Tran
aef331d8ef
fix(docker): pin runtime deps to committed bun lockfile ( #1358 )
2026-05-23 21:19:31 -04:00
github-actions[bot]
1e834b8478
chore(release): 8.1.0-dev.1
2026-05-24 01:18:20 +00:00
Kai (Tam Nhu) Tran
ab379e9e13
fix: disable docker legacy API key auth by default ( #1355 )
2026-05-23 21:03:24 -04:00
semantic-release-bot
c21f589247
chore(release): 8.1.0 [skip ci]
...
## [8.1.0](https://github.com/kaitranntt/ccs/compare/v8.0.0...v8.1.0 ) (2026-05-23)
### Features
* **release:** promote dev to main — security hardening batch ([#1351 ](https://github.com/kaitranntt/ccs/issues/1351 )) ([aed942f ](https://github.com/kaitranntt/ccs/commit/aed942f51bc4f2dd1db52302d8cea3185a2bb192 )), closes [#1340 ](https://github.com/kaitranntt/ccs/issues/1340 ) [#1341 ](https://github.com/kaitranntt/ccs/issues/1341 ) [#1342 ](https://github.com/kaitranntt/ccs/issues/1342 ) [#1344 ](https://github.com/kaitranntt/ccs/issues/1344 ) [#1346 ](https://github.com/kaitranntt/ccs/issues/1346 ) [#1347 ](https://github.com/kaitranntt/ccs/issues/1347 ) [#1348 ](https://github.com/kaitranntt/ccs/issues/1348 ) [#1349 ](https://github.com/kaitranntt/ccs/issues/1349 ) [#1350 ](https://github.com/kaitranntt/ccs/issues/1350 ) [#1345 ](https://github.com/kaitranntt/ccs/issues/1345 ) [#1353 ](https://github.com/kaitranntt/ccs/issues/1353 ) [#1340 ](https://github.com/kaitranntt/ccs/issues/1340 ) [#1354 ](https://github.com/kaitranntt/ccs/issues/1354 ) [#1347 ](https://github.com/kaitranntt/ccs/issues/1347 ) [#1352 ](https://github.com/kaitranntt/ccs/issues/1352 )
### Bug Fixes
* **analytics:** harden sqlite3 invocation for native Droid usage scan ([#1347 ](https://github.com/kaitranntt/ccs/issues/1347 )) ([469c9ff ](https://github.com/kaitranntt/ccs/commit/469c9ffde44ca7bba8c9e33365d92b9a819cdec7 ))
* **analytics:** support sqlite3 path resolution on Windows and NixOS ([#1354 ](https://github.com/kaitranntt/ccs/issues/1354 )) ([9a42098 ](https://github.com/kaitranntt/ccs/commit/9a420988bc1b63a9cab270e331ee6e762726cb1b )), closes [#1347 ](https://github.com/kaitranntt/ccs/issues/1347 )
* **ci:** prevent promote-release tag command injection ([#1350 ](https://github.com/kaitranntt/ccs/issues/1350 )) ([3b94ec8 ](https://github.com/kaitranntt/ccs/commit/3b94ec853d090317211a33abb5cf4f56542ef664 ))
* **cliproxy:** disable spoofable default bg keepalive probe ([#1340 ](https://github.com/kaitranntt/ccs/issues/1340 )) ([f0ec820 ](https://github.com/kaitranntt/ccs/commit/f0ec82005446d51434816e5d64b74e3d0c0ea602 ))
* **cliproxy:** sanitize local port before config regeneration ([#1342 ](https://github.com/kaitranntt/ccs/issues/1342 )) ([af7aa0c ](https://github.com/kaitranntt/ccs/commit/af7aa0c2dda834237a3aa79661cd62d096c32876 ))
* **codex-auth:** stop spawning powershell in shell detection ([#1348 ](https://github.com/kaitranntt/ccs/issues/1348 )) ([825efb8 ](https://github.com/kaitranntt/ccs/commit/825efb8b109e88c4f778259176cf2485406eb8ed ))
* **codex-quota:** guard feature label type in quota windows ([#1346 ](https://github.com/kaitranntt/ccs/issues/1346 )) ([b71fe5d ](https://github.com/kaitranntt/ccs/commit/b71fe5dd6ec975ac13ea1f33bd00d51df8ac80dc ))
* **dispatcher:** also treat -p as non-subcommand short for --print ([#1352 ](https://github.com/kaitranntt/ccs/issues/1352 )) ([8335f0c ](https://github.com/kaitranntt/ccs/commit/8335f0c73cb2ade7f2bdd5d92ab6b0df1bc14e7a ))
* **dispatcher:** treat --print as non-subcommand Claude session ([#1341 ](https://github.com/kaitranntt/ccs/issues/1341 )) ([fd561b5 ](https://github.com/kaitranntt/ccs/commit/fd561b59bc4b1bd46419848a1babc388d31d5321 ))
* **models-dev:** sanitize models.dev registry entries and harden pricing resolver ([#1345 ](https://github.com/kaitranntt/ccs/issues/1345 )) ([9cd9b79 ](https://github.com/kaitranntt/ccs/commit/9cd9b796caa953e146077d8402971db7a63a2c8f ))
* **pricing:** guard malformed models.dev model entries ([#1344 ](https://github.com/kaitranntt/ccs/issues/1344 )) ([66966f3 ](https://github.com/kaitranntt/ccs/commit/66966f35276556551db52f38af46b5a5f8634c03 ))
* **ui-docs:** remove third-party runtime assets from health report ([#1349 ](https://github.com/kaitranntt/ccs/issues/1349 )) ([58df999 ](https://github.com/kaitranntt/ccs/commit/58df9999db44727695cbc0631f646623eb7e7fb5 ))
### Code Refactoring
* **cliproxy:** remove orphaned bg keepalive wiring ([#1353 ](https://github.com/kaitranntt/ccs/issues/1353 )) ([5d27f10 ](https://github.com/kaitranntt/ccs/commit/5d27f10367f2e869079c6850e8b24aa2b98242f1 )), closes [#1340 ](https://github.com/kaitranntt/ccs/issues/1340 )
2026-05-23 21:46:07 +00:00