Tam Nhu Tran
70116cb3a1
refactor(ui): replace remaining hardcoded port defaults
...
- use shared cliproxy default in control panel embed
- use shared cursor default port in cursor page fallbacks
2026-02-18 03:10:10 +07:00
Tam Nhu Tran
5788ddc3b7
refactor(ui): use shared default proxy port in settings cards
...
- replace inline 8317 defaults with CLIPROXY_DEFAULT_PORT
- keep HTTPS fallback behavior at 443 unchanged
2026-02-18 03:10:10 +07:00
Tam Nhu Tran
a53e6cbd25
refactor(ui): centralize provider metadata for setup wizard
...
- define provider display names and descriptions in provider-config
- consume shared metadata helpers in setup wizard constants
2026-02-18 03:10:09 +07:00
Tam Nhu Tran
feb556dc90
refactor(ui): unify api base path for cursor and copilot hooks
...
- add withApiBase helper and use it across fetch calls
- remove duplicated API base literals in cursor/copilot hooks
- expose cursor default port from shared ui defaults module
2026-02-18 03:10:09 +07:00
Tam Nhu Tran
63f422179e
refactor(ui): centralize default ports and add parity test
...
- add ui default port constants for cliproxy and cursor
- wire preset utils to shared ui default port constants
- add backend/ui sync test to prevent port drift
2026-02-18 03:10:09 +07:00
Tam Nhu Tran
688f3e3889
refactor(commands): share cliproxy default port for setup and help
...
- source setup wizard local port default from port-manager
- render help text defaults from shared constant
2026-02-18 03:10:09 +07:00
Tam Nhu Tran
90b8d04d71
refactor(cliproxy): use shared default port in management paths
...
- replace 8317 literals with CLIPROXY_DEFAULT_PORT constant
- keep http/https fallback behavior unchanged in runtime checks
2026-02-18 03:10:09 +07:00
Tam Nhu Tran
bd8daac094
refactor(cliproxy): centralize provider auth capability metadata
...
- move callback/auth-url names, token type values, and prefixes
- derive auth maps from capabilities instead of hardcoded records
- route refresh delegation through capability ownership metadata
2026-02-18 03:10:09 +07:00
semantic-release-bot
2ce5bb4ee3
chore(release): 7.46.0 [skip ci]
...
## [7.46.0](https://github.com/kaitranntt/ccs/compare/v7.45.0...v7.46.0 ) (2026-02-17)
### Features
* **cliproxy:** add Kimi as OAuth CLIProxy provider ([08b2a67 ](https://github.com/kaitranntt/ccs/commit/08b2a6791398912ff5ea6b3cce18b37552c1ef10 )), closes [#574 ](https://github.com/kaitranntt/ccs/issues/574 )
* **cliproxy:** expose codex weekly reset schedule in quota views ([4fc19c4 ](https://github.com/kaitranntt/ccs/commit/4fc19c43902330da31b49b6296082fb13e22bebf ))
* **cliproxy:** rename kimi API preset to km, add kimi to UI ([f451f4e ](https://github.com/kaitranntt/ccs/commit/f451f4e4214396f59c0e8482be0be2f7376d5388 ))
* **cursor:** harden daemon integration and model discovery ([c639cef ](https://github.com/kaitranntt/ccs/commit/c639cefa7bd33807e96d96fd566c64a89166f22f ))
* **targets:** add multi-target CLI adapter system (Droid support) ([7d7054e ](https://github.com/kaitranntt/ccs/commit/7d7054e2c096768c42fa4be1db5d111bb8e56b8a ))
* **targets:** support CCS_DROID_ALIASES argv0 mapping ([025218a ](https://github.com/kaitranntt/ccs/commit/025218a706d30ca75163153293ce0920d9c3917d ))
* **ui:** add Kimi provider logo with dark background ([6961fb0 ](https://github.com/kaitranntt/ccs/commit/6961fb0ec35b326bb77ffea9f8828708d2a40cb7 ))
### Bug Fixes
* **cliproxy:** add kimi to wizard constants and image analysis config ([ddd5b15 ](https://github.com/kaitranntt/ccs/commit/ddd5b159d21efe436aa2bf82a190d3b284abe4a8 ))
* **cliproxy:** log unknown codex quota window labels ([9031e5a ](https://github.com/kaitranntt/ccs/commit/9031e5a085e8c1b4b58e4e871e4d98dbd48bcfc3 ))
* **core:** prevent GLMT proxy leaks in child lifecycle ([53e18d4 ](https://github.com/kaitranntt/ccs/commit/53e18d4c8d60ed0d13a1cb034f53c5c2ef91bdad ))
* **cursor:** fallback when requested model is unavailable ([fae8716 ](https://github.com/kaitranntt/ccs/commit/fae87169008b704c319f78fcac958dda435985d0 ))
* **cursor:** resolve review feedback and harden edge cases ([4798741 ](https://github.com/kaitranntt/ccs/commit/4798741a99eb60190c6ba09215f50d3bc67db6e4 ))
* **targets:** close all remaining multi-target droid edge cases ([0431adf ](https://github.com/kaitranntt/ccs/commit/0431adf3061388b5b984cbcbbf336a09bab85be3 ))
* **targets:** DRY signal handling, remove redundant guards, harden config manager ([02af8d5 ](https://github.com/kaitranntt/ccs/commit/02af8d5737d9c3db4172b094b1bfae13ccdccbb1 ))
* **targets:** harden adapter lifecycle and droid model edge cases ([3da3407 ](https://github.com/kaitranntt/ccs/commit/3da3407f9a3470f34aaf03c19d3410e5b33caa36 ))
* **targets:** harden edge cases from parallel code review ([3191a4a ](https://github.com/kaitranntt/ccs/commit/3191a4ab3887b79c598c31de278a45361c587a48 ))
* **targets:** run cleanup before adapter launch exits ([812bb5c ](https://github.com/kaitranntt/ccs/commit/812bb5c0a5b60041d1928189019cc75183ae525d ))
* **targets:** snapshot active profiles during droid prune ([15d6c06 ](https://github.com/kaitranntt/ccs/commit/15d6c06dbc8de72379330c43031a5660b4bc0338 ))
* **test:** add kimi to provider tests, remove merge conflict marker ([0fe195c ](https://github.com/kaitranntt/ccs/commit/0fe195cdc38c26b93f0f269bd384c7ef3a6c289c ))
### Documentation
* **provider:** clarify kimi base profile endpoint ([e33164f ](https://github.com/kaitranntt/ccs/commit/e33164f42e96ec6826728c47b615286bb13bfdd6 ))
* **targets:** document built-in and env droid aliases ([91edc95 ](https://github.com/kaitranntt/ccs/commit/91edc9565bbd6bf4fe6992b0c7e2457a90a87949 ))
### Styles
* format source and test files ([539afea ](https://github.com/kaitranntt/ccs/commit/539afea7374f2c931ab5cbb1e04e0845c57729b5 ))
### Code Refactoring
* **cliproxy:** DRY provider lists into single source of truth ([94b03c7 ](https://github.com/kaitranntt/ccs/commit/94b03c7f75fd398282a0737c497f882aeb708724 ))
### CI
* **ai-review:** switch from CLIProxy to GLM API for code reviews ([55ecbce ](https://github.com/kaitranntt/ccs/commit/55ecbce3f523c034a854bc741c4c3a5b5e7851d4 ))
* **ai-review:** switch from CLIProxy to GLM API for code reviews ([f81c562 ](https://github.com/kaitranntt/ccs/commit/f81c56204cd981e265b1ed072b887ac80114f5c3 ))
2026-02-17 19:40:15 +00:00
Kai (Tam Nhu) Tran and GitHub
928958a066
Merge pull request #579 from kaitranntt/dev
...
feat(release): Kimi OAuth, multi-target droid, cursor hardening
2026-02-18 02:38:41 +07:00
github-actions[bot]
37f453c0e3
chore(release): 7.45.0-dev.6 [skip ci]
2026-02-17 13:54:40 +00:00
Tam Nhu Tran
e33164f42e
docs(provider): clarify kimi base profile endpoint
...
- document that base-kimi defaults to local CLIProxy route
- describe direct Moonshot API override for ANTHROPIC_BASE_URL
2026-02-17 20:53:03 +07:00
Tam Nhu Tran
fae8716900
fix(cursor): fallback when requested model is unavailable
...
- resolve request model against current available catalog
- choose safe default when configured default id is not present
- add tests and docs for daemon request-model fallback behavior
2026-02-17 20:53:03 +07:00
Tam Nhu Tran
9031e5a085
fix(cliproxy): log unknown codex quota window labels
...
- detect and de-duplicate unclassified quota window labels
- emit diagnostics in verbose/debug modes for API label drift
- add unit tests for unknown-label extraction behavior
2026-02-17 20:53:03 +07:00
Tam Nhu Tran
53e18d4c8d
fix(core): prevent GLMT proxy leaks in child lifecycle
...
- reuse shared wireChildProcessSignals for GLMT Claude execution
- centralize proxy stop logic on child error and exit paths
- guard global signal cleanup so cleanup failures do not block exit
2026-02-17 20:53:03 +07:00
Tam Nhu Tran
91edc9565b
docs(targets): document built-in and env droid aliases
...
- add README guidance for ccsd argv[0] auto-target behavior
- document CCS_DROID_ALIASES runtime extension in architecture docs
2026-02-17 20:53:03 +07:00
Tam Nhu Tran
025218a706
feat(targets): support CCS_DROID_ALIASES argv0 mapping
...
- extend argv[0] target resolution with env-configurable aliases
- normalize alias matching to lowercase with safe-name filtering
- add tests for custom aliases, invalid entries, and case-insensitivity
2026-02-17 20:53:03 +07:00
Tam Nhu Tran
15d6c06dbc
fix(targets): snapshot active profiles during droid prune
...
- copy activeProfiles at call time before lock acquisition
- validate profile names inside locked section
- add tests for invalid names and post-call array mutation
2026-02-17 20:53:03 +07:00
Tam Nhu Tran
812bb5c0a5
fix(targets): run cleanup before adapter launch exits
...
- wrap adapter early-exit paths with a cleanup-aware exit helper
- invoke cleanup before exiting on child spawn failures
- validate Droid profile names in buildArgs and add unit coverage
2026-02-17 20:53:03 +07:00
github-actions[bot]
ef578e988b
chore(release): 7.45.0-dev.5 [skip ci]
2026-02-17 13:17:32 +00:00
Kai (Tam Nhu) Tran and GitHub
8f5235c4cf
Merge pull request #578 from kaitranntt/kai/feat/574-kimi-oauth-provider
...
feat(cliproxy): add Kimi OAuth provider + DRY provider lists
2026-02-17 20:16:11 +07:00
Tam Nhu Tran
6961fb0ec3
feat(ui): add Kimi provider logo with dark background
...
- Add kimi.svg (Moonshot brand logo, white on dark)
- Add kimi to provider-logo.tsx PROVIDER_IMAGES and PROVIDER_CONFIG
- Dark background for kimi logo container (bg-gray-900)
2026-02-17 20:13:34 +07:00
Tam Nhu Tran
0fe195cdc3
fix(test): add kimi to provider tests, remove merge conflict marker
...
- Add kimi to CLIPROXY_PROVIDER_IDS expected array
- Add kimi to device_code providers expected array
- Remove leftover >>>>>>> origin/dev merge conflict marker in cursor-daemon test
- Fix prettier formatting in image-analysis-check.ts
2026-02-17 17:31:27 +07:00
Tam Nhu Tran
ddd5b159d2
fix(cliproxy): add kimi to wizard constants and image analysis config
...
- add kimi entry to PROVIDER_INFO and WIZARD_PROVIDER_ORDER in setup wizard
- add kimi to DEFAULT_IMAGE_ANALYSIS_CONFIG.provider_models
2026-02-17 17:16:52 +07:00
Tam Nhu Tran
672813beba
chore: merge dev, resolve cursor-daemon test conflict
2026-02-17 17:05:47 +07:00
Tam Nhu Tran
539afea737
style: format source and test files
2026-02-17 17:03:11 +07:00
Tam Nhu Tran
f451f4e421
feat(cliproxy): rename kimi API preset to km, add kimi to UI
...
- create config/base-km.settings.json for API-key Kimi users
- rename preset id 'kimi' to 'km' in CLI and UI provider presets
- add 'ccs km' to help text API section, keep 'ccs kimi' for OAuth
- add --km delegation flag for API-key mode, --kimi stays for OAuth
- add kimi to UI CLIPROXY_PROVIDERS, assets, colors, names, device code
2026-02-17 17:03:05 +07:00
Tam Nhu Tran
08b2a67913
feat(cliproxy): add Kimi as OAuth CLIProxy provider
...
- add 'kimi' to CLIProxyProvider union type
- register Kimi capabilities (device_code flow, moonshot alias)
- add OAuth config, auth prefixes, type values, channel maps
- add CLIProxy-delegated token refresh for Kimi
- add Kimi model catalog (k2.5, k2-thinking, k2)
- switch base-kimi.settings.json to CLIProxy mode (127.0.0.1:8317)
- update comments removing kimi from settings-based profile mentions
Closes #574
2026-02-17 17:02:55 +07:00
Tam Nhu Tran
94b03c7f75
refactor(cliproxy): DRY provider lists into single source of truth
...
- unify CLIPROXY_SUPPORTED_PROVIDERS to import from CLIPROXY_PROVIDER_IDS
- replace 4 inline union types with CLIProxyProvider import
- replace hardcoded provider arrays in migration-manager and proxy-routes
- remove duplicate PROVIDER_DISPLAY_NAMES, use getProviderDisplayName()
- sync test now imports from ui/src/lib/provider-config instead of hardcoded array
Adding a new CLIProxy provider no longer requires updating 14+ hardcoded lists.
2026-02-17 17:02:45 +07:00
github-actions[bot]
c5b1345fa2
chore(release): 7.45.0-dev.4 [skip ci]
2026-02-17 09:50:55 +00:00
Kai (Tam Nhu) Tran and GitHub
3c1f49ccd2
Merge pull request #577 from kaitranntt/feat/576-cursor-battle-test-integration
...
feat(cursor): harden daemon integration and model discovery
2026-02-17 16:49:29 +07:00
Tam Nhu Tran
4798741a99
fix(cursor): resolve review feedback and harden edge cases
2026-02-17 16:33:21 +07:00
github-actions[bot]
905b35eea5
chore(release): 7.45.0-dev.3 [skip ci]
2026-02-16 21:24:38 +00:00
Kai (Tam Nhu) Tran and GitHub
681b8c27b8
Merge pull request #575 from kaitranntt/kai/feat/multi-target-droid
...
feat(targets): add multi-target CLI adapter system (Droid support)
2026-02-17 04:23:18 +07:00
Tam Nhu Tran
3da3407f9a
fix(targets): harden adapter lifecycle and droid model edge cases
2026-02-17 04:09:48 +07:00
Tam Nhu Tran
c639cefa7b
feat(cursor): harden daemon integration and model discovery
2026-02-17 04:09:06 +07:00
Tam Nhu Tran
02af8d5737
fix(targets): DRY signal handling, remove redundant guards, harden config manager
...
- Extract signal forwarding to reusable src/utils/signal-forwarder.ts
- Update shell-executor, claude-adapter, droid-adapter to use shared utility
- Remove 35 lines of redundant duplicate guards in src/ccs.ts
- Harden droid-config-manager with lock constants and race-safe ensureFactoryDir
- Update help-command with --target usage examples
- Update maintainability metrics baseline
2026-02-17 03:38:27 +07:00
Tam Nhu Tran
f1a61f6eb5
chore(metrics): update maintainability baseline for CI
...
Sync baseline with current metrics after edge case hardening commit.
2026-02-17 03:28:01 +07:00
Tam Nhu Tran
0431adf306
fix(targets): close all remaining multi-target droid edge cases
2026-02-17 03:22:45 +07:00
github-actions[bot]
4bd6877dcf
chore(sync): merge main into dev after release [skip ci]
2026-02-16 18:56:57 +00:00
github-actions[bot]
88ddae7c56
chore(release): 7.45.0-dev.2 [skip ci]
2026-02-16 18:56:31 +00:00
Tam Nhu Tran
55ecbce3f5
ci(ai-review): switch from CLIProxy to GLM API for code reviews
...
Route AI code reviews through api.z.ai instead of localhost CLIProxy.
Uses GLM_API_KEY repo secret for authentication.
2026-02-17 01:55:29 +07:00
Tam Nhu Tran
f81c56204c
ci(ai-review): switch from CLIProxy to GLM API for code reviews
...
Route AI code reviews through api.z.ai instead of localhost CLIProxy.
Uses GLM_API_KEY repo secret for authentication.
2026-02-17 01:55:02 +07:00
Tam Nhu Tran
3191a4ab38
fix(targets): harden edge cases from parallel code review
...
- droid-config-manager.ts: Profile name validation, backup file perms
(0o600), symlink detection before write
- droid-detector.ts: Directory check for CCS_DROID_PATH via isFile()
- ccs.ts: Replace hardcoded guards with supportsProfileType() calls,
add prepareCredentials to default branch
- droid-adapter.ts: errno-aware error messages (EACCES vs ENOENT)
- maintainability-baseline.json: Updated edge case metrics
Hardening fixes address permission handling, symlink detection, and
error classification for improved robustness in edge cases.
2026-02-16 15:32:34 +07:00
Tam Nhu Tran
7d7054e2c0
feat(targets): add multi-target CLI adapter system (Droid support)
...
Implement target adapter pattern enabling CCS CLI to support multiple backend targets
(Claude, Droid) via pluggable adapters. Core additions:
- TargetAdapter interface for pluggable target implementations
- ClaudeAdapter and DroidAdapter concrete implementations
- Target registry (singleton Map-based storage)
- Target resolver with precedence: --target flag > per-profile config > busybox detection
- Droid config manager with atomic writes and file locking to ~/.factory/settings.json
- Droid binary detector to validate runtime environment
- Adapter dispatch integrated into ccs.ts main execution flow
- ccsd busybox alias for seamless Droid invocation
- --target flag documentation in help
- Session tracking enriched with target metadata
- Dashboard target badge for visual identification
Testing:
- 43 unit tests covering resolver, registry, config manager, and adapters
- Full coverage of target detection logic and edge cases
Documentation:
- Refactored system-architecture.md into modular docs/system-architecture/ subdirectory
- Updated code-standards.md with target adapter guidelines
- Updated codebase-summary.md with architecture overview
- Updated maintainability baseline (33.8% → 35.2%)
This establishes extensible foundation for multi-target support without breaking
existing Claude workflows. Droid adapter is production-ready but defaults to Claude
for backward compatibility.
2026-02-16 10:49:09 +07:00
github-actions[bot]
8ab78f039c
chore(release): 7.45.0-dev.1 [skip ci]
2026-02-15 02:52:44 +00:00
Kai (Tam Nhu) Tran and GitHub
9be77c843a
Merge pull request #571 from kaitranntt/feat/codex-weekly-reset-quota
...
feat(cliproxy): expose codex weekly reset schedule in quota views
2026-02-15 09:51:36 +07:00
Tam Nhu Tran
4fc19c4390
feat(cliproxy): expose codex weekly reset schedule in quota views
2026-02-15 09:48:39 +07:00
semantic-release-bot
a1f879d7cd
chore(release): 7.45.0 [skip ci]
...
## [7.45.0](https://github.com/kaitranntt/ccs/compare/v7.44.0...v7.45.0 ) (2026-02-14)
### Features
* **cursor-ui:** restore Cursor dashboard UX and icon assets ([7ab7a15 ](https://github.com/kaitranntt/ccs/commit/7ab7a156ebfb696e1d2f275b58c32115800283c2 )), closes [#555 ](https://github.com/kaitranntt/ccs/issues/555 )
* **cursor:** sync model mapping across config and raw settings ([7b73658 ](https://github.com/kaitranntt/ccs/commit/7b73658f8700c7d6f3804f00df29de4c14243028 )), closes [#555 ](https://github.com/kaitranntt/ccs/issues/555 )
### Bug Fixes
* **cursor-settings:** remove sync fs calls in settings sync ([4f086aa ](https://github.com/kaitranntt/ccs/commit/4f086aa34adb32be42527e0f3a77c4369e88df72 ))
* **cursor-ui:** label cursor dashboard as beta ([b40fe86 ](https://github.com/kaitranntt/ccs/commit/b40fe866ec293fc08dbb877a000a87addd3ab16d ))
* **cursor-ui:** restore info card order and list scrolling ([decdffe ](https://github.com/kaitranntt/ccs/commit/decdffea61f543beca508ce209b543bbeee81a4c ))
2026-02-14 22:45:07 +00:00
Kai (Tam Nhu) Tran and GitHub
830bfd7a09
Merge pull request #569 from kaitranntt/dev
...
release: promote dev to main
2026-02-15 05:43:51 +07:00