Tam Nhu Tran
af6aa2d7b2
fix(types): use type-only import for composite tier config
2026-02-21 01:35:58 +07:00
Tam Nhu Tran
8d2ec86155
refactor(core): centralize claude paths and command parsing
2026-02-21 01:31:16 +07:00
semantic-release-bot
6a9abd2a48
chore(release): 7.47.0 [skip ci]
...
## [7.47.0](https://github.com/kaitranntt/ccs/compare/v7.46.0...v7.47.0 ) (2026-02-20)
### Features
* **quota:** add GitHub Copilot quota checks for ghcp and copilot ([8d9d498 ](https://github.com/kaitranntt/ccs/commit/8d9d4987dc42415ebe53760e1ac06c9c024ce17f ))
* **thinking:** complete thinking UX/DX for all providers ([c48ed2e ](https://github.com/kaitranntt/ccs/commit/c48ed2ea7fe7fcf0725805274233bd5760f284d8 )), closes [#583 ](https://github.com/kaitranntt/ccs/issues/583 )
### Bug Fixes
* **api:** sanitize preset help text rendering ([5b12ce7 ](https://github.com/kaitranntt/ccs/commit/5b12ce7f0065ff19eff46f61171db20f6e1170a3 ))
* **cliproxy:** add Kimi model catalog, sync, and pricing to dashboard ([3767b95 ](https://github.com/kaitranntt/ccs/commit/3767b95735950b506e2470a0454d4d0db7f00764 )), closes [#581 ](https://github.com/kaitranntt/ccs/issues/581 )
* **cliproxy:** add kimi-k2 pricing and kimi catalog tests ([dd38df6 ](https://github.com/kaitranntt/ccs/commit/dd38df6b8d7a5367c06b14b0258a271af8545fd4 ))
* **cliproxy:** address review feedback on kimi catalog ([c73a26c ](https://github.com/kaitranntt/ccs/commit/c73a26c51c5340598aacf25f48fb2851bf61d5a8 ))
* **cliproxy:** harden provider alias and refresh edge cases ([a71496c ](https://github.com/kaitranntt/ccs/commit/a71496cc3d7db499780c2b257d74bb6cc101f450 ))
* **cliproxy:** normalize codex model and provider routing ([ecc4a3f ](https://github.com/kaitranntt/ccs/commit/ecc4a3fe58721b47f3c248053d06dcec8a5c2fbf ))
* **cliproxy:** warn gemini and agy users about issue 509 ([476eabe ](https://github.com/kaitranntt/ccs/commit/476eabe08f06284fed3d35ed546534f9f73ef9d2 ))
* **delegation:** strip CLAUDECODE env var to bypass nested session guard ([4303ee4 ](https://github.com/kaitranntt/ccs/commit/4303ee48c9849f6ba1cdfb420eddca4d9ae2d541 )), closes [#588 ](https://github.com/kaitranntt/ccs/issues/588 )
* **delegation:** strip claudecode in core delegation spawn paths ([50412dc ](https://github.com/kaitranntt/ccs/commit/50412dc6799921a3e536ab2fd86b011f8849e99c )), closes [#588 ](https://github.com/kaitranntt/ccs/issues/588 )
* **execution:** strip claudecode in remaining claude paths ([8e57d59 ](https://github.com/kaitranntt/ccs/commit/8e57d5947901c56ac39071dee14938551ad49c84 )), closes [#588 ](https://github.com/kaitranntt/ccs/issues/588 )
* **profile:** close km legacy kimi compatibility gaps ([0bf00b2 ](https://github.com/kaitranntt/ccs/commit/0bf00b23d9085dde7fedfbed30f7924fee41da92 ))
* **profile:** handle km compatibility for legacy kimi api users ([cf8070b ](https://github.com/kaitranntt/ccs/commit/cf8070b5f00d8fa13f86d7324a7bfd85cfc8f78e ))
* **profiles:** reset form state on preset transitions ([14242b5 ](https://github.com/kaitranntt/ccs/commit/14242b568190920bd954ec9e093a9f9a2f766480 ))
* **quota:** address ghcp review follow-ups ([8201204 ](https://github.com/kaitranntt/ccs/commit/8201204380ac5d3981d9c84a609b1c823f6696e6 ))
* **spawn:** sanitize claudecode in shared claude env builders ([d25eda8 ](https://github.com/kaitranntt/ccs/commit/d25eda8435c72c24f16f28a84d6bfffb31b67174 )), closes [#588 ](https://github.com/kaitranntt/ccs/issues/588 )
* **test:** pin real child_process passthrough refs ([04e4e61 ](https://github.com/kaitranntt/ccs/commit/04e4e61b686b50dd685917646af97b7d47e81ba1 ))
* **test:** prevent child_process mock cross-test leakage ([5b164a6 ](https://github.com/kaitranntt/ccs/commit/5b164a64864a548192578eacd4bb149253d4be95 ))
* **test:** scope child_process mock to test lifecycle ([873b7ad ](https://github.com/kaitranntt/ccs/commit/873b7adb701f01d1686fab2ad98cb294c4143405 ))
* **thinking:** handle clear no-op and tighten override coverage ([954baec ](https://github.com/kaitranntt/ccs/commit/954baecfe429aad1c6fc4f60601b578af04ff37f ))
* **thinking:** harden codex reasoning controls across cli and dashboard ([92e2ec1 ](https://github.com/kaitranntt/ccs/commit/92e2ec111d08aecb55e4461fccebc93c544439eb ))
* **ui:** harden cliproxy panel and proxy edge handling ([c18adc9 ](https://github.com/kaitranntt/ccs/commit/c18adc90c33b45577422de4929edb9034e854941 ))
* **ui:** harden provider preset/icon typing ([b317717 ](https://github.com/kaitranntt/ccs/commit/b3177179b11b55cb3ba0a660adade4f5898c11dd ))
* **ui:** make api profile dialog scrollable on small screens ([faa610f ](https://github.com/kaitranntt/ccs/commit/faa610f843bae381aaa6553370fd1ae294a144e9 ))
* **ui:** normalize ghcp quota tooltip and labels ([2c5b2af ](https://github.com/kaitranntt/ccs/commit/2c5b2af55a9a7cf87716b98432c2c6d40311d860 ))
* **ui:** replace stale BASE_URL references in api client ([5a78626 ](https://github.com/kaitranntt/ccs/commit/5a786263bc2501684593c2c1aa0b56b1d20a56ed ))
### Documentation
* **spawn:** document claudecode env sanitization behavior ([f2ffb81 ](https://github.com/kaitranntt/ccs/commit/f2ffb815ab059e8f48b309ab4af05b2cde8b3215 )), closes [#588 ](https://github.com/kaitranntt/ccs/issues/588 )
### Code Refactoring
* **cliproxy:** address review feedback on parity and refresh flow ([39593c1 ](https://github.com/kaitranntt/ccs/commit/39593c161b4cbbfc6a5a125f6ef100922b73ef9b ))
* **cliproxy:** centralize provider auth capability metadata ([bd8daac ](https://github.com/kaitranntt/ccs/commit/bd8daac094404bf834d77f5c4bebd9470d88c55f ))
* **cliproxy:** resolve remaining review parity and cleanup nits ([7e527af ](https://github.com/kaitranntt/ccs/commit/7e527af777f1ca8ea36570f97aada469c77299ee ))
* **cliproxy:** use shared default port in management paths ([90b8d04 ](https://github.com/kaitranntt/ccs/commit/90b8d04d71c78b8a120ac8cd091ea0936ba5bb6f ))
* **commands:** share cliproxy default port for setup and help ([688f3e3 ](https://github.com/kaitranntt/ccs/commit/688f3e3889843931cde2e34fd56ec51df454b0a6 ))
* **presets:** centralize shared provider preset catalog ([21d6754 ](https://github.com/kaitranntt/ccs/commit/21d6754ec6ae59002c2d393d41515dd105de692a ))
* **ui:** centralize default ports and add parity test ([63f4221 ](https://github.com/kaitranntt/ccs/commit/63f422179ed34678a8abc0f763a2a3e3525bac16 ))
* **ui:** centralize provider metadata and fallbacks ([9ad8e64 ](https://github.com/kaitranntt/ccs/commit/9ad8e64e85458a0154c1cac7bac2e3f082f9c7ac ))
* **ui:** centralize provider metadata for setup wizard ([a53e6cb ](https://github.com/kaitranntt/ccs/commit/a53e6cbd2505c2dab5c5e8fd940b75af5584d600 ))
* **ui:** replace remaining hardcoded port defaults ([70116cb ](https://github.com/kaitranntt/ccs/commit/70116cb3a15694532e57d370245176b905c8f375 ))
* **ui:** unify api base path for cursor and copilot hooks ([feb556d ](https://github.com/kaitranntt/ccs/commit/feb556dc90dab593e79aaf6145dd5b9a38eb6831 ))
* **ui:** use shared default proxy port in settings cards ([5788ddc ](https://github.com/kaitranntt/ccs/commit/5788ddc3b7747df898571470318d5df774603b95 ))
### Tests
* **delegation:** add regression coverage for claudecode stripping ([80a84ed ](https://github.com/kaitranntt/ccs/commit/80a84edf1f7a7514dfb3fbd8c3786b0571b528bf )), closes [#588 ](https://github.com/kaitranntt/ccs/issues/588 )
2026-02-20 17:01:39 +00:00
Kai (Tam Nhu) Tran and GitHub
3c3da4eb85
Merge pull request #594 from kaitranntt/dev
...
feat: v7.47.0 release — Kimi provider, multi-target droid, GHCP quota, thinking UX
2026-02-21 00:00:09 +07:00
github-actions[bot]
f2bbf77ca4
chore(release): 7.46.0-dev.9 [skip ci]
2026-02-20 16:50:05 +00:00
Kai (Tam Nhu) Tran and GitHub
21e6b80286
Merge pull request #593 from kaitranntt/kai/refactor-hardcoded-260220-225538
...
refactor(presets): reduce hardcoded provider logic
2026-02-20 23:48:38 +07:00
Tam Nhu Tran
04e4e61b68
fix(test): pin real child_process passthrough refs
...
- bind real spawn/spawnSync/execSync before module mocking
- avoid potential rebinding recursion or mock passthrough drift in CI
- keeps non-Claude process execution untouched during test mocks
2026-02-20 23:41:20 +07:00
Tam Nhu Tran
873b7adb70
fix(test): scope child_process mock to test lifecycle
...
- register child_process module mock in beforeAll instead of module load
- keep passthrough for non-Claude commands and restore after suite
- avoids cross-suite side effects that stalled cursor daemon CI tests
2026-02-20 23:36:22 +07:00
Tam Nhu Tran
5b164a6486
fix(test): prevent child_process mock cross-test leakage
...
- mock only Claude command spawns and pass through real child_process for others
- add missing ChildProcess-compatible fields (pid/unref) on mock child
- stabilizes cursor daemon and ccsd alias tests in CI parallel execution
2026-02-20 23:24:11 +07:00
Tam Nhu Tran
b3177179b1
fix(ui): harden provider preset/icon typing
...
- replace unsafe provider asset/color index lookups with typed helpers
- explicitly type UI preset override map to satisfy ProviderPresetId indexing
- resolves TS7053 failures seen in validate CI after dev merges
2026-02-20 23:24:11 +07:00
Tam Nhu Tran
14242b5681
fix(profiles): reset form state on preset transitions
...
- resolve presets through canonical alias-aware lookup
- reset all tier model fields when switching presets/custom
- derive quick templates from non-recommended categories
2026-02-20 23:24:11 +07:00
Tam Nhu Tran
9ad8e64e85
refactor(ui): centralize provider metadata and fallbacks
...
- move logo, label, and device-code copy into provider-config
- handle unknown or non-string providers without UI crashes
- replace duplicated hardcoded mappings in cliproxy table/logo
2026-02-20 23:24:11 +07:00
Tam Nhu Tran
5b12ce7f00
fix(api): sanitize preset help text rendering
...
- strip control characters from dynamic preset output
- render preset help from shared registry data
- include normalized alias hints without hardcoded lines
2026-02-20 23:24:11 +07:00
Tam Nhu Tran
21d6754ec6
refactor(presets): centralize shared provider preset catalog
...
- add shared preset catalog used by CLI and Dashboard
- enforce alias/id integrity and canonical normalization
- replace duplicated preset definitions in service and UI layers
- allow Vite dev fs access to repo root for shared catalog imports
2026-02-20 23:24:11 +07:00
Tam Nhu Tran
e32192177b
Merge remote-tracking branch 'origin/dev' into kai/fix/588-nested-session-guard
2026-02-20 23:04:59 +07:00
github-actions[bot]
f80c8244f6
chore(release): 7.46.0-dev.8 [skip ci]
2026-02-20 16:01:43 +00:00
Tam Nhu Tran
f2ffb815ab
docs(spawn): document claudecode env sanitization behavior
...
- note delegation compatibility with Claude nested-session guard
- document CLAUDECODE sanitization invariant in code standards
Refs #588
2026-02-20 23:01:21 +07:00
Tam Nhu Tran
80a84edf1f
test(delegation): add regression coverage for claudecode stripping
...
- verify case-insensitive CLAUDECODE removal helper behavior
- cover execClaude env merge, override, no-key, and Windows paths
- cover headless executor spawn env sanitization behavior
Refs #588
2026-02-20 23:01:09 +07:00
Tam Nhu Tran
8e57d59479
fix(execution): strip claudecode in remaining claude paths
...
- sanitize Copilot profile Claude launch environment
- sanitize auth create isolated instance launch environment
- sanitize doctor Claude CLI version check spawn environment
Refs #588
2026-02-20 23:00:59 +07:00
Tam Nhu Tran
d25eda8435
fix(spawn): sanitize claudecode in shared claude env builders
...
- strip CLAUDECODE from cliproxy-built Claude environments
- enforce sanitization in ClaudeAdapter buildEnv
- apply same env hardening in shared spawnClaude helper
Refs #588
2026-02-20 23:00:47 +07:00
Tam Nhu Tran
50412dc679
fix(delegation): strip claudecode in core delegation spawn paths
...
- add shared CLAUDECODE sanitizer for child env construction
- apply sanitizer in execClaude and headless delegation execution
- sanitize GLMT embedded Claude spawn environment
Refs #588
2026-02-20 23:00:33 +07:00
Kai (Tam Nhu) Tran and GitHub
a2cfe7e6c2
Merge pull request #592 from kaitranntt/fix/589-github-copilot-quota-check
...
feat(quota): add GitHub Copilot quota checks for ghcp and copilot
2026-02-20 23:00:14 +07:00
Tam Nhu Tran
8201204380
fix(quota): address ghcp review follow-ups
2026-02-20 22:53:49 +07:00
Tam Nhu Tran
2c5b2af55a
fix(ui): normalize ghcp quota tooltip and labels
2026-02-20 22:40:22 +07:00
Tam Nhu Tran
8d9d4987dc
feat(quota): add GitHub Copilot quota checks for ghcp and copilot
2026-02-20 22:32:27 +07:00
Tam Nhu Tran
4303ee48c9
fix(delegation): strip CLAUDECODE env var to bypass nested session guard
...
Claude Code v2.1.39+ sets CLAUDECODE env var and refuses to launch
if detected, breaking CCS auto-delegation which spawns child Claude
processes. Strip the var from both interactive (execClaude) and
headless (HeadlessExecutor) spawn paths.
Closes #588
2026-02-20 22:22:11 +07:00
github-actions[bot]
00fc478d02
chore(release): 7.46.0-dev.7 [skip ci]
2026-02-20 05:37:41 +00:00
Kai (Tam Nhu) Tran and GitHub
2eddd5c773
Merge pull request #590 from kaitranntt/fix/api-profiles-mobile-scroll
...
fix(ui): make API profile dialog scrollable on small screens
2026-02-20 12:36:18 +07:00
Tam Nhu Tran
faa610f843
fix(ui): make api profile dialog scrollable on small screens
2026-02-20 12:31:19 +07:00
github-actions[bot]
58af0a4423
chore(release): 7.46.0-dev.6 [skip ci]
2026-02-19 09:33:26 +00:00
Kai (Tam Nhu) Tran and GitHub
e63292c793
Merge pull request #587 from kaitranntt/kai/feat/583-thinking-ux-dx
...
feat(thinking): complete thinking UX/DX for all providers
2026-02-19 16:32:05 +07:00
Tam Nhu Tran
954baecfe4
fix(thinking): handle clear no-op and tighten override coverage
2026-02-19 16:26:56 +07:00
Tam Nhu Tran
92e2ec111d
fix(thinking): harden codex reasoning controls across cli and dashboard
2026-02-19 14:13:41 +07:00
github-actions[bot]
f09d633f24
chore(release): 7.46.0-dev.5 [skip ci]
2026-02-19 07:02:42 +00:00
Kai (Tam Nhu) Tran and GitHub
f03c8c81d7
Merge pull request #586 from kaitranntt/fix/km-legacy-kimi-migration
...
fix(profile): handle km compatibility for legacy kimi api users
2026-02-19 14:01:13 +07:00
Tam Nhu Tran
0bf00b23d9
fix(profile): close km legacy kimi compatibility gaps
2026-02-19 13:02:56 +07:00
Tam Nhu Tran
c48ed2ea7f
feat(thinking): complete thinking UX/DX for all providers
...
- Fix codex off-mode bug: add disableEffort to CodexReasoningProxy
so mode=off actually skips reasoning injection
- Add CCS_THINKING env var (priority: flag > env > config)
- Add startup feedback: [i] Thinking: <level> (<source>)
- Add ccs config thinking CLI subcommand with --mode, --override,
--tier, --provider-override, --clear-override
- Dashboard: add manual override selector when mode=manual
- Dashboard: add provider overrides collapsible section
- Dashboard: update info box with CCS_THINKING env var docs
- Update help-command.ts with CCS_THINKING and config thinking
Closes #583
2026-02-19 12:45:23 +07:00
Tam Nhu Tran
cf8070b5f0
fix(profile): handle km compatibility for legacy kimi api users
2026-02-19 12:43:41 +07:00
github-actions[bot]
7efbac6c1a
chore(release): 7.46.0-dev.4 [skip ci]
2026-02-19 03:50:14 +00:00
Kai (Tam Nhu) Tran and GitHub
10c15dab3d
Merge pull request #585 from kaitranntt/kai/fix/kimi-missing-models
...
fix(cliproxy): add Kimi model catalog, sync, and pricing to dashboard
2026-02-19 10:49:00 +07:00
Tam Nhu Tran
c73a26c51c
fix(cliproxy): address review feedback on kimi catalog
...
- Sync kimi-k2.5 description between backend and UI catalogs
to 'Latest multimodal model (262K context)' per official naming
- Add kimi-k2 pricing entry to avoid fallback to unknown model rate
- Add supportsModelConfig and getProviderCatalog tests for kimi
2026-02-19 10:41:32 +07:00
Tam Nhu Tran
dd38df6b8d
fix(cliproxy): add kimi-k2 pricing and kimi catalog tests
...
Address review feedback from PR #585 :
- Add missing kimi-k2 pricing entry ($0.60/$2.50, cache $0.15)
to avoid fallback to unknown model pricing
- Add kimi provider tests to model-catalog.test.js verifying
catalog structure, default model, and model IDs
2026-02-19 10:36:42 +07:00
Tam Nhu Tran
3767b95735
fix(cliproxy): add Kimi model catalog, sync, and pricing to dashboard
...
- Add kimi entry to UI model-catalogs.ts with K2.5, K2 Thinking, K2
models and preset mappings so dashboard shows available models
- Add kimi to CHANNEL_TO_PROVIDER and SYNCABLE_PROVIDERS in
catalog-cache.ts so models sync from upstream CLIProxyAPI
- Add kimi/moonshot to provider-editor ownerMap for model filtering
- Update Kimi model pricing to match official Kimi Platform rates:
kimi-k2.5 ($0.60/$3.00), kimi-k2-thinking ($0.60/$2.50),
kimi-k2-turbo-preview ($1.15/$8.00)
- Add missing kimi-k2.5 pricing entry
Closes #581
2026-02-19 10:28:40 +07:00
github-actions[bot]
b9b98cb723
chore(release): 7.46.0-dev.3 [skip ci]
2026-02-19 03:24:49 +00:00
Kai (Tam Nhu) Tran and GitHub
60bbacd3a3
Merge pull request #584 from kaitranntt/fix/260219-issue-509-cliproxy-warning
...
fix(cliproxy): warn gemini and agy users about issue 509
2026-02-19 10:23:23 +07:00
Tam Nhu Tran
476eabe08f
fix(cliproxy): warn gemini and agy users about issue 509
2026-02-19 10:12:57 +07:00
github-actions[bot]
63f1bacfbe
chore(release): 7.46.0-dev.2 [skip ci]
2026-02-18 15:14:55 +00:00
Kai (Tam Nhu) Tran and GitHub
42cbbe8bbf
Merge pull request #582 from kaitranntt/fix/260218-codex-provider-routing
...
fix(cliproxy): normalize codex model and provider routing
2026-02-18 22:13:29 +07:00
Tam Nhu Tran
ecc4a3fe58
fix(cliproxy): normalize codex model and provider routing
2026-02-18 21:27:58 +07:00
github-actions[bot]
e6469d1b00
chore(release): 7.46.0-dev.1 [skip ci]
2026-02-18 14:04:50 +00:00