Commit Graph
3929 Commits
Author SHA1 Message Date
Tam Nhu Tran 0ce01d4c65 chore(ui): bump bundle size guard for CodeMirror editor upgrade
Total dist/ui gzipped grew from ~1.5MB to ~1.6MB after the CodeEditor
switch from react-simple-code-editor + prism-react-renderer to
CodeMirror 6. The verify-bundle script preamble notes the cap is a
sanity check for accidental large dependencies, not a hard
performance target; this is an intentional editor upgrade to restore
native selection/copy in the codex config.toml viewer.
2026-05-14 17:27:19 -04:00
Tam Nhu Tran 420494e0e0 fix(ui): make codex config.toml viewer selectable
Replace the hand-rolled textarea+Prism overlay in CodeEditor with
CodeMirror 6. The overlay hid the textarea selection with
`selection:bg-transparent` and `WebkitTextFillColor: transparent` as a
workaround for wrap drift between the highlight layer and the textarea,
which left Ctrl+A / drag-select / Ctrl+C with no visible result.

CodeMirror handles selection, copy, undo, and wrap natively. Custom
themes match the previous prism-react-renderer github (light) and
nightOwl (dark) palettes; background is transparent so the surrounding
bg-muted/30 still shows; font, font-size, line-height, padding, and
gutter-less layout are preserved.

Public CodeEditor props are unchanged (value, onChange, language,
readonly, exactText, className, minHeight, heightMode) so all seven
call sites keep working. The sensitive-key blur is reimplemented as a
CodeMirror Decoration and stays gated behind the existing Eye toggle.

Test setup gets a Range.getClientRects polyfill so CM mounts cleanly in
JSDOM, and shared-page.test.tsx checks .cm-content text directly.

Closes #1247
2026-05-14 17:22:26 -04:00
semantic-release-bot aba15d8646 chore(release): 7.79.1 [skip ci]
## [7.79.1](https://github.com/kaitranntt/ccs/compare/v7.79.0...v7.79.1) (2026-05-14)

### Hotfixes

* **codex:** tolerate BOM in Codex TOML config ([5b664d2](https://github.com/kaitranntt/ccs/commit/5b664d2105b81ec263c05a37c4549a4a6c409bb3))
2026-05-14 17:24:12 +00:00
Kai (Tam Nhu) Tran e1a34ce056 Merge pull request #1246 from kaitranntt/kai/hotfix-codex-toml-bom
hotfix(codex): tolerate BOM in Codex TOML config
2026-05-14 13:20:58 -04:00
Tam Nhu Tran 5b664d2105 hotfix(codex): tolerate BOM in Codex TOML config 2026-05-14 13:13:55 -04:00
semantic-release-bot 1773586d4d chore(release): 7.79.0 [skip ci]
## [7.79.0](https://github.com/kaitranntt/ccs/compare/v7.78.1...v7.79.0) (2026-05-14)

### Features

* **dispatcher:** pass through Claude subcommands without interactive-session args ([c2b00b7](https://github.com/kaitranntt/ccs/commit/c2b00b7ad6f01f5d83db6d19e2ceb4e3d10d741b))

### Bug Fixes

* **ci:** run pull request validation on hosted runners ([e7174d6](https://github.com/kaitranntt/ccs/commit/e7174d63bb2ed8b2cf9f013aa69ad178ebbcee4f))
* clarify CLIProxy setup actions ([ac333dd](https://github.com/kaitranntt/ccs/commit/ac333dd1d50538e8164d921099f8ac85cd914999))
* **cliproxy:** explain headless Codex OAuth recovery ([29da75c](https://github.com/kaitranntt/ccs/commit/29da75c0d42ed473029d1222c7fe4e5e655f5b03)), closes [#1213](https://github.com/kaitranntt/ccs/issues/1213)
* **codex:** require local access for dashboard config routes ([bd588a2](https://github.com/kaitranntt/ccs/commit/bd588a271df8be95149d6e87eb302139cb2b4cb9))
* **codex:** self-heal ccsxp cliproxy provider ([#1243](https://github.com/kaitranntt/ccs/issues/1243)) ([4748c45](https://github.com/kaitranntt/ccs/commit/4748c452bd8bc0c18a0a1267324d5ec015a7a578))
* **config:** bind dashboard to loopback by default ([d61469e](https://github.com/kaitranntt/ccs/commit/d61469edcbdd162d9fce04b0aefe6c0506568974))
* ignore internal instance directories in health scans ([667b1d1](https://github.com/kaitranntt/ccs/commit/667b1d1e1f0db7f56f88bb88feaee9e2ce994f5c)), closes [#1236](https://github.com/kaitranntt/ccs/issues/1236)
* **proxy:** avoid exposing local auth token in daemon argv ([#1230](https://github.com/kaitranntt/ccs/issues/1230)) ([a840793](https://github.com/kaitranntt/ccs/commit/a840793a9b091b911afc7aa6ee91666a1c258366))
* **proxy:** strip stale encoding from upstream error responses ([1932b2c](https://github.com/kaitranntt/ccs/commit/1932b2ca61f084629654941efdd09fd1b971efed))
* **proxy:** strip stale encoding from upstream error responses ([#1239](https://github.com/kaitranntt/ccs/issues/1239)) ([54f1aa7](https://github.com/kaitranntt/ccs/commit/54f1aa70c0f16a965608f935ce4a39128e829688))
* **security:** constrain image fallback hook to workspace ([#1232](https://github.com/kaitranntt/ccs/issues/1232)) ([40300c2](https://github.com/kaitranntt/ccs/commit/40300c286ec9f40e89cb2b040a416cba04680930))
* **security:** protect dashboard WebSocket upgrades ([f09cdfc](https://github.com/kaitranntt/ccs/commit/f09cdfcf2ba0b14ffd20f69a1c0923343f245a39))
* **settings:** confine dashboard settings paths ([#1231](https://github.com/kaitranntt/ccs/issues/1231)) ([349db83](https://github.com/kaitranntt/ccs/commit/349db830dfbc1f91b44f287a2aa40426756338a9))
* support Claude subcommands and background sessions ([35b6210](https://github.com/kaitranntt/ccs/commit/35b6210cd2ef3b79d317cd76926b55a126084b1d))
* **ui:** keep codex toml tokens inline ([#1219](https://github.com/kaitranntt/ccs/issues/1219)) ([5138741](https://github.com/kaitranntt/ccs/commit/5138741b5c0fdc0da87982bd59227fad56f8a046))
* **ui:** render codex config as exact text ([#1215](https://github.com/kaitranntt/ccs/issues/1215)) ([225401c](https://github.com/kaitranntt/ccs/commit/225401ceca433705d11c119b3373913c95129c56))
* **ui:** restore codex config highlighting ([#1216](https://github.com/kaitranntt/ccs/issues/1216)) ([e177724](https://github.com/kaitranntt/ccs/commit/e1777247b371749ac717373f0d4299415990413c))
* **ui:** wrap codex config highlight editor ([#1217](https://github.com/kaitranntt/ccs/issues/1217)) ([ba761a0](https://github.com/kaitranntt/ccs/commit/ba761a0d1e75dac9090f58848bf1f0f10d855519))
* **windows:** pin cmd shell for wrapper launches ([#1229](https://github.com/kaitranntt/ccs/issues/1229)) ([9c5d497](https://github.com/kaitranntt/ccs/commit/9c5d4976c51696a86251c507902ea03e4d78a8b0))
2026-05-14 16:55:30 +00:00
Kai (Tam Nhu) Tran 78c5c85e2b Merge pull request #1244 from kaitranntt/dev
feat: promote dev to main
2026-05-14 12:52:25 -04:00
github-actions[bot] e694f3cd38 chore(release): 7.78.1-dev.8 2026-05-14 16:38:52 +00:00
Kai (Tam Nhu) Tran 4748c452bd fix(codex): self-heal ccsxp cliproxy provider (#1243) 2026-05-14 12:35:31 -04:00
github-actions[bot] 9748ba4ee0 chore(release): 7.78.1-dev.7 2026-05-14 14:21:39 +00:00
walker1211 35b6210cd2 fix: support Claude subcommands and background sessions
Squash merge PR #1240.\n\nValidated locally from the PR head because trusted-author GitHub CI was skipped for this fork PR:\n- bun run validate\n- bun run build:all\n- bun run test:all\n- CCS_E2E_SKIP_BUILD=1 bun run test:e2e
2026-05-14 10:18:23 -04:00
github-actions[bot] e87b627764 chore(release): 7.78.1-dev.6 2026-05-13 13:38:07 +00:00
Kai (Tam Nhu) Tran 54f1aa70c0 fix(proxy): strip stale encoding from upstream error responses (#1239) 2026-05-13 09:31:43 -04:00
Tam Nhu Tran 1932b2ca61 fix(proxy): strip stale encoding from upstream error responses 2026-05-13 09:13:28 -04:00
github-actions[bot] ab096ac37e chore(release): 7.78.1-dev.5 2026-05-13 02:23:37 +00:00
Kai (Tam Nhu) Tran 667b1d1e1f fix: ignore internal instance directories in health scans
Closes #1236
2026-05-12 22:17:16 -04:00
github-actions[bot] ac00ba4f00 chore(release): 7.78.1-dev.4 2026-05-12 23:27:59 +00:00
Kai (Tam Nhu) Tran ac333dd1d5 fix: clarify CLIProxy setup actions
Make account setup the primary CLIProxy CTA, keep advanced variant creation secondary, and contain setup dialogs across narrow viewports.
2026-05-12 19:23:59 -04:00
github-actions[bot] 26311f7752 chore(release): 7.78.1-dev.3 2026-05-12 22:18:38 +00:00
Kai (Tam Nhu) Tran 40300c286e fix(security): constrain image fallback hook to workspace (#1232) 2026-05-12 18:13:32 -04:00
Kai (Tam Nhu) Tran 349db830df fix(settings): confine dashboard settings paths (#1231) 2026-05-12 18:13:26 -04:00
Kai (Tam Nhu) Tran a840793a9b fix(proxy): avoid exposing local auth token in daemon argv (#1230) 2026-05-12 18:13:20 -04:00
Kai (Tam Nhu) Tran 9c5d4976c5 fix(windows): pin cmd shell for wrapper launches (#1229) 2026-05-12 18:13:13 -04:00
github-actions[bot] 2e5439290e chore(release): 7.78.1-dev.2 2026-05-12 20:49:48 +00:00
Kai (Tam Nhu) Tran d9b6abf134 Merge pull request #1233 from kaitranntt/kai/feat/1218-claude-subcommand-passthrough
feat(dispatcher): pass through Claude subcommands without interactive-session args
2026-05-12 16:46:12 -04:00
Tam Nhu Tran c2b00b7ad6 feat(dispatcher): pass through Claude subcommands without interactive-session args
Closes #1218.

When the user invokes `ccs <profile> agents` (and other Claude subcommands
like `mcp`, `doctor`, `plugin`, ...), CCS was unconditionally injecting
session-only Claude flags (`--append-system-prompt`, `--disallowedTools`,
`--settings`, official-channels plugin specs) and forwarding the
`DISABLE_TELEMETRY=1` env var from profile settings. Each of those
either errored out the subcommand (`error: unknown option
'--append-system-prompt'`) or silently flipped Claude into
non-interactive list mode, so the new `claude agents` agent view never
opened under CCS.

Add a small `claude-subcommand-detector` that recognizes the documented
Claude subcommand set after skipping known value-taking flags, then have
the three steering-prompt injectors (websearch, image-analysis, browser),
the cliproxy and settings launchers, and the official-channels plan
short-circuit when a subcommand invocation is detected. Also strip
`DISABLE_TELEMETRY` from the spawned env only for subcommand
invocations — upstream Claude Code uses that var as a kill switch for
the subcommand TUIs, and the user's telemetry preference still applies
to every normal interactive session.

Verified end-to-end against `ccs glm agents` and `ccs ck agents`: the
agent view opens correctly, no `unknown option` error, and all 1938
existing tests pass.
2026-05-12 16:35:37 -04:00
github-actions[bot] 72f2f9993d chore(release): 7.78.1-dev.1 2026-05-12 16:50:48 +00:00
Tam Nhu Tran 4c0aa83c82 chore(sync): merge main into dev after release
# Conflicts:
#	.github/workflows/ci.yml
#	package.json
2026-05-12 12:43:02 -04:00
semantic-release-bot 4099dfc3ca chore(release): 7.78.1 [skip ci]
## [7.78.1](https://github.com/kaitranntt/ccs/compare/v7.78.0...v7.78.1) (2026-05-12)

### Bug Fixes

* **ci:** harden self-hosted workflow trust boundaries ([2273757](https://github.com/kaitranntt/ccs/commit/2273757c837254edd2277c785530835d6db2a977))
2026-05-12 16:37:30 +00:00
Kai (Tam Nhu) Tran 2273757c83 fix(ci): harden self-hosted workflow trust boundaries
Keep active CCS workflows on self-hosted runners, gate self-hosted PR execution to trusted authors, and scope privileged release credentials to the exact git operations that need them.
2026-05-12 12:34:15 -04:00
github-actions[bot] 9afb09aad3 chore(release): 7.78.0-dev.10 2026-05-12 15:04:01 +00:00
Kai (Tam Nhu) Tran d61469edcb fix(config): bind dashboard to loopback by default 2026-05-12 10:59:49 -04:00
github-actions[bot] 837f7f46e3 chore(release): 7.78.0-dev.9 2026-05-12 14:45:34 +00:00
Kai (Tam Nhu) Tran f09cdfcf2b fix(security): protect dashboard WebSocket upgrades 2026-05-12 10:42:05 -04:00
github-actions[bot] 25e21d311c chore(release): 7.78.0-dev.8 2026-05-12 14:37:27 +00:00
Kai (Tam Nhu) Tran e7174d63bb fix(ci): run pull request validation on hosted runners 2026-05-12 10:33:47 -04:00
github-actions[bot] f830115dcc chore(release): 7.78.0-dev.7 2026-05-12 14:27:56 +00:00
Kai (Tam Nhu) Tran bd588a271d fix(codex): require local access for dashboard config routes 2026-05-12 10:24:25 -04:00
github-actions[bot] 1ad8a54aa1 chore(release): 7.78.0-dev.6 2026-05-12 13:01:00 +00:00
Kai (Tam Nhu) Tran eb4bbfddf3 security(browser-mcp): restrict model-callable local file uploads/downloads to safe roots and deny sensitive paths (#1220)
* fix(browser): restrict file transfer paths

* fix(browser): normalize safe transfer paths

* fix(browser): reject sensitive transfer roots
2026-05-12 08:57:33 -04:00
github-actions[bot] f7d5d08bbf chore(release): 7.78.0-dev.5 2026-05-12 11:56:16 +00:00
Kai (Tam Nhu) Tran 5138741b5c fix(ui): keep codex toml tokens inline (#1219) 2026-05-12 07:51:59 -04:00
github-actions[bot] e5a10c9ed9 chore(release): 7.78.0-dev.4 2026-05-12 02:02:48 +00:00
Kai (Tam Nhu) Tran ba761a0d1e fix(ui): wrap codex config highlight editor (#1217) 2026-05-11 21:58:55 -04:00
github-actions[bot] a3e8e2e58c chore(release): 7.78.0-dev.3 2026-05-12 01:37:02 +00:00
Kai (Tam Nhu) Tran e1777247b3 fix(ui): restore codex config highlighting (#1216) 2026-05-11 21:33:33 -04:00
github-actions[bot] 46b8ac2560 chore(release): 7.78.0-dev.2 2026-05-12 00:46:52 +00:00
Kai (Tam Nhu) Tran 225401ceca fix(ui): render codex config as exact text (#1215) 2026-05-11 20:43:26 -04:00
github-actions[bot] 56d5493a61 chore(release): 7.78.0-dev.1 2026-05-11 18:29:03 +00:00
Kai (Tam Nhu) Tran 29da75c0d4 fix(cliproxy): explain headless Codex OAuth recovery
Closes #1213
2026-05-11 14:25:34 -04:00