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
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
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
github-actions[bot]
f4e87f5c61
chore(release): 7.44.0-dev.2 [skip ci]
2026-02-14 22:41:28 +00:00
Tam Nhu Tran
b40fe866ec
fix(cursor-ui): label cursor dashboard as beta
...
- add visible Beta badge in Cursor page header
- clarifies feature is not production-tested yet
2026-02-15 05:39:46 +07:00
github-actions[bot]
15f7bce432
chore(release): 7.44.0-dev.1 [skip ci]
2026-02-14 10:52:05 +00:00
Kai (Tam Nhu) Tran and GitHub
16aeddfb11
Merge pull request #568 from kaitranntt/fix/555-cursor-e2e-recovery
...
feat(cursor): recover lost Cursor dashboard and model-mapping work
2026-02-14 17:50:57 +07:00
Tam Nhu Tran
decdffea61
fix(cursor-ui): restore info card order and list scrolling
...
- move Cursor info metadata card above available models
- add min-h-0/flex containment to preserve scroll behavior
- fix clipped content in cursor config dashboard layout
2026-02-14 17:48:18 +07:00
Tam Nhu Tran
4f086aa34a
fix(cursor-settings): remove sync fs calls in settings sync
...
- switch cursor settings file reads/writes to fs.promises
- make settings sync and route handler async with awaited file ops
- restores maintainability baseline for synchronous fs references
2026-02-14 17:48:00 +07:00
Tam Nhu Tran
7ab7a156eb
feat(cursor-ui): restore Cursor dashboard UX and icon assets
...
- rebuild /cursor page with model tiers, presets, and save-all flow
- validate raw JSON edits via RawEditorSection before save operations
- add sidebar image icon rendering and restore cursor.svg asset
- include risk warning copy and OpenAI-first GPT-5.3 Codex preset
Refs #555
2026-02-14 16:57:27 +07:00
Tam Nhu Tran
7b73658f87
feat(cursor): sync model mapping across config and raw settings
...
- add cursor model fields to unified config defaults and YAML comments
- expand Cursor model catalog/defaults and return configured current model
- keep cursor.settings.json env model fields in sync with config updates
- align unit tests for new model defaults and route merge behavior
Refs #555
2026-02-14 16:57:04 +07:00
semantic-release-bot
98f1dd965f
chore(release): 7.44.0 [skip ci]
...
## [7.44.0](https://github.com/kaitranntt/ccs/compare/v7.43.0...v7.44.0 ) (2026-02-14)
### Features
* **cliproxy:** add CLI edit command for composite variants ([43e73f3 ](https://github.com/kaitranntt/ccs/commit/43e73f335f85f051b7294b0d9f4bdae405780a26 ))
* **cliproxy:** add composite variant CLI wizard ([4926c20 ](https://github.com/kaitranntt/ccs/commit/4926c200f2601655e0a93f73c9dd8d03c44e12da )), closes [#506 ](https://github.com/kaitranntt/ccs/issues/506 )
* **cliproxy:** add composite variant runtime execution ([44b30b8 ](https://github.com/kaitranntt/ccs/commit/44b30b875328bf795dfc5783948f81da018c2f2e )), closes [#506 ](https://github.com/kaitranntt/ccs/issues/506 )
* **cliproxy:** add composite variant type definitions ([3d207fa ](https://github.com/kaitranntt/ccs/commit/3d207faac5ca3389572b88eb0881b2dca040c6fb )), closes [#506 ](https://github.com/kaitranntt/ccs/issues/506 )
* **cliproxy:** add dashboard CRUD for composite variants ([1ebd9f4 ](https://github.com/kaitranntt/ccs/commit/1ebd9f43d6e5fe76f50be31458955b1a53312b25 ))
* **cliproxy:** add explicit start and restart commands ([8395364 ](https://github.com/kaitranntt/ccs/commit/83953649704c5957a2522e3b8cf041fd2725510e ))
* **cliproxy:** add per-tier thinking config for composite variants ([ed22c1a ](https://github.com/kaitranntt/ccs/commit/ed22c1aa1ec9d3c3bf6e161b31326e603e299620 ))
* **cliproxy:** add provider error detection for composite fallback ([478e9e8 ](https://github.com/kaitranntt/ccs/commit/478e9e8f7342300ec5368c606bc7619ed497c481 ))
* **cliproxy:** clarify codex effort mapping and preset UX ([945db1d ](https://github.com/kaitranntt/ccs/commit/945db1d6909e546fef988f7823d60e03adcffd44 ))
* **cliproxy:** extend composite schema with fallback and thinking fields ([20d6079 ](https://github.com/kaitranntt/ccs/commit/20d60791ffc5c805a2d2d88fc95c5e734dbcbc67 )), closes [#506 ](https://github.com/kaitranntt/ccs/issues/506 )
* **cliproxy:** implement composite variant CRUD and settings ([c58fdc9 ](https://github.com/kaitranntt/ccs/commit/c58fdc931e40026322419d6353535e95308e9a8e )), closes [#506 ](https://github.com/kaitranntt/ccs/issues/506 )
* **cliproxy:** wire composite variant into main execution flow ([07bef9f ](https://github.com/kaitranntt/ccs/commit/07bef9f50eeb3a8fe4beace38de04784f6bdda1e )), closes [#506 ](https://github.com/kaitranntt/ccs/issues/506 )
* **codex:** add gpt-5.3 preset defaults ([7fddb63 ](https://github.com/kaitranntt/ccs/commit/7fddb63ab9ffb826eee514e791ac923067938a04 ))
* **codex:** keep gpt-5.2 catalog entry ([d6aa1d9 ](https://github.com/kaitranntt/ccs/commit/d6aa1d90a6d7722829f5cdb0d9208a22fc4ae7e3 ))
* **cursor:** add auth module with SQLite auto-detect and types ([56270d9 ](https://github.com/kaitranntt/ccs/commit/56270d99f3511058bb71390df4c0b85f4a0e54e0 )), closes [#519 ](https://github.com/kaitranntt/ccs/issues/519 ) [#517 ](https://github.com/kaitranntt/ccs/issues/517 )
* **cursor:** add config integration and dashboard routes ([93dafa0 ](https://github.com/kaitranntt/ccs/commit/93dafa04d53367653aadb6d32c59d85a0502865e ))
* **cursor:** add core protobuf encoder/decoder and executor ([9daf943 ](https://github.com/kaitranntt/ccs/commit/9daf9430bb76f175e34a9aa05c6060b4a959312e ))
* **cursor:** add daemon lifecycle, models catalog, and CLI commands ([aaa31c6 ](https://github.com/kaitranntt/ccs/commit/aaa31c64270d0e718ad82d584c8c76692e39dbf4 )), closes [#520 ](https://github.com/kaitranntt/ccs/issues/520 ) [#521 ](https://github.com/kaitranntt/ccs/issues/521 ) [#522 ](https://github.com/kaitranntt/ccs/issues/522 )
* **cursor:** complete daemon wiring and add dedicated dashboard page ([be9d7cf ](https://github.com/kaitranntt/ccs/commit/be9d7cf73e10ede766affe932881969788eadfb7 ))
* **cursor:** namespace FIELD constants and implement true streaming SSE ([#531 ](https://github.com/kaitranntt/ccs/issues/531 ), [#535 ](https://github.com/kaitranntt/ccs/issues/535 )) ([4e5b502 ](https://github.com/kaitranntt/ccs/commit/4e5b502fc9b2b8e576105dddb5c9d068db5b73d2 ))
### Bug Fixes
* **analytics:** stabilize responsive row alignment ([0cc1f11 ](https://github.com/kaitranntt/ccs/commit/0cc1f111f7032fa6685ed59161b43d60a9f39f67 ))
* **cli:** add kiro auth-method flag wiring and help ([e425f47 ](https://github.com/kaitranntt/ccs/commit/e425f477a44fa030a8dc5a6c28bed14d9bdfd762 )), closes [#552 ](https://github.com/kaitranntt/ccs/issues/552 ) [#233 ](https://github.com/kaitranntt/ccs/issues/233 )
* **cliproxy:** add circular fallback and empty model validation in API ([ef77607 ](https://github.com/kaitranntt/ccs/commit/ef77607c41cbf7e7529581071d03bea158bad44f ))
* **cliproxy:** add defensive null checks for composite tier config ([0c7dc39 ](https://github.com/kaitranntt/ccs/commit/0c7dc398f77806a1aa47ed73f0828f36ad88d948 ))
* **cliproxy:** add session check on delete and atomic settings writes ([7486897 ](https://github.com/kaitranntt/ccs/commit/74868972ddbc9c4dcb689ea6a3e27a52893f6935 ))
* **cliproxy:** address 3 code review issues in composite variants ([399d7e1 ](https://github.com/kaitranntt/ccs/commit/399d7e163a30568ae6ec8070c517c54225eb1307 ))
* **cliproxy:** address 3 functional regressions in composite variants ([61f46e7 ](https://github.com/kaitranntt/ccs/commit/61f46e738d1935f9db5afb030e34daba2e95ac59 ))
* **cliproxy:** address 4 functional regressions in composite variants ([27d22e8 ](https://github.com/kaitranntt/ccs/commit/27d22e836ffc83c62eefbeeb2ef29aefcb36c834 ))
* **cliproxy:** address code review feedback (attempt 1/5) ([854b198 ](https://github.com/kaitranntt/ccs/commit/854b198b64c0feb5cfe6f7ecdf87980d18c0fda6 ))
* **cliproxy:** address code review feedback (attempt 2/5) ([ac574e0 ](https://github.com/kaitranntt/ccs/commit/ac574e0bafaf5a7124857e7f38fe3c44f5d67a8a ))
* **cliproxy:** address code review feedback (attempt 3/5) ([6cfbdd6 ](https://github.com/kaitranntt/ccs/commit/6cfbdd649b6b2e1d5038c42e69f74e2c744d2bb4 ))
* **cliproxy:** address code review feedback (attempt 4/5) ([4c002ca ](https://github.com/kaitranntt/ccs/commit/4c002caee1d64b2b90967a67a18db8f097bbac80 ))
* **cliproxy:** address lifecycle port and thinking regressions ([f02e7dc ](https://github.com/kaitranntt/ccs/commit/f02e7dc5c62084fc7fb73e08d3ca667210d17317 ))
* **cliproxy:** align kiro auth methods with upstream contracts ([fd46ad0 ](https://github.com/kaitranntt/ccs/commit/fd46ad022aae1a4d2fe6dbb8304f691465860214 )), closes [#552 ](https://github.com/kaitranntt/ccs/issues/552 ) [#233 ](https://github.com/kaitranntt/ccs/issues/233 )
* **cliproxy:** fix edit dialog empty model and composite guidance ([8e6b67b ](https://github.com/kaitranntt/ccs/commit/8e6b67bf99204f4fe187ba59e739491d4a2ab193 ))
* **cliproxy:** fix thinking off regression and composite error handling ([e914fe9 ](https://github.com/kaitranntt/ccs/commit/e914fe977895c7d036e6cd81f48d833ac29bb9f7 ))
* **cliproxy:** harden composite validation and runtime safeguards ([1a23f91 ](https://github.com/kaitranntt/ccs/commit/1a23f912a4629cb73d83351f6c1f4acf18f7a214 ))
* **cliproxy:** harden composite variant routing and validation ([0a8adb2 ](https://github.com/kaitranntt/ccs/commit/0a8adb22fcdffc993b06ed577217ccb8e55253c9 ))
* **cliproxy:** harden kiro device-code auth flow consistency ([826a42d ](https://github.com/kaitranntt/ccs/commit/826a42d8d6c4877431474c27e14f0f1d4ec092d7 ))
* **cliproxy:** improve multi-provider auth with continue-on-error pattern ([6ff17d8 ](https://github.com/kaitranntt/ccs/commit/6ff17d848091e1087ce2631ef2363e628346a8a2 ))
* **cliproxy:** keep daemon running after parent exit ([3136f24 ](https://github.com/kaitranntt/ccs/commit/3136f24b9b4a879199e272cf8d1e52c919270f10 ))
* **cliproxy:** keep variant updates atomic and persisted ([7bb9ceb ](https://github.com/kaitranntt/ccs/commit/7bb9ceb4aff0d806ec19b3e97486a96d667834d2 ))
* **cliproxy:** mark Kiro as device_code flow for dashboard auth ([6c20839 ](https://github.com/kaitranntt/ccs/commit/6c2083949f887a9f1a1d37bf8cc2a27c3bd650d7 )), closes [#552 ](https://github.com/kaitranntt/ccs/issues/552 )
* **cliproxy:** resolve merge-duplicate lifecycle handlers ([9268c05 ](https://github.com/kaitranntt/ccs/commit/9268c05ee526e9c12b7ad33e180d3b8818443e62 ))
* **cliproxy:** restore POST tier validation and guard null payloads ([a99180f ](https://github.com/kaitranntt/ccs/commit/a99180fa22c83db51b3ff2f7b4dbadab0f79fbbc ))
* **cliproxy:** strip thinking suffix in detectFailedTier matching ([efd3f21 ](https://github.com/kaitranntt/ccs/commit/efd3f21e29dd17c287f4e569670d80c9d0f85d5a ))
* **cliproxy:** unify codex reasoning flags and thinking flow ([f9df3cf ](https://github.com/kaitranntt/ccs/commit/f9df3cfa7ad5fe3668780b714edd33f17529083f ))
* **codex:** align quota display to 5h and weekly windows ([f8af5a8 ](https://github.com/kaitranntt/ccs/commit/f8af5a8c3cb9e2c0de09f0a1ffde942c642cdca0 ))
* **codex:** infer code review cadence from reset window ([1d2ee82 ](https://github.com/kaitranntt/ccs/commit/1d2ee827fe38204d8d4ceb376c604abcff130836 ))
* **codex:** preserve sonnet high alias on variant model updates ([3410c52 ](https://github.com/kaitranntt/ccs/commit/3410c52f7ed0af34428e0265b1ff510e3f3dafdf ))
* **codex:** preserve xhigh default effort for gpt-5.3 ([164d195 ](https://github.com/kaitranntt/ccs/commit/164d1953679392772506defc6024cf514fbbb188 ))
* **codex:** reduce quota timeout flakes in dashboard ([b3d9dce ](https://github.com/kaitranntt/ccs/commit/b3d9dce6e1e7b631d24bb98111a14b239074db2b ))
* **codex:** stabilize code review window labeling ([40512fe ](https://github.com/kaitranntt/ccs/commit/40512fe3388e0e517838926438c8ae4559cc09d3 ))
* **codex:** type cast provider in model update path ([41d9978 ](https://github.com/kaitranntt/ccs/commit/41d99788da96b7f59144d391d672d070e34ace00 ))
* **commands:** await async command validation ([b98335c ](https://github.com/kaitranntt/ccs/commit/b98335c1620bda79a3e27e5392f5e77f6bdd7f03 ))
* **config:** serialize cursor section in generateYamlWithComments ([4b7de69 ](https://github.com/kaitranntt/ccs/commit/4b7de69d9bd330c07d834e610ca36e657a7ab2eb ))
* **cursor:** add enabled field to tests, simplify cursor routing ([f9834c8 ](https://github.com/kaitranntt/ccs/commit/f9834c81c947315ebe2527135e6df4bdc4da37c7 ))
* **cursor:** add input validation on dashboard settings routes ([1bebf16 ](https://github.com/kaitranntt/ccs/commit/1bebf163575dc3f0a8a936d630714f48292655e4 ))
* **cursor:** add resolve guard, port validation, and daemon tests ([7d4e6d6 ](https://github.com/kaitranntt/ccs/commit/7d4e6d6b65d467cf182710805b4ee15f44a4f5f0 ))
* **cursor:** add response body handling and size limit ([36f0308 ](https://github.com/kaitranntt/ccs/commit/36f0308a72141e0481c9044a4e49b35b3065cf73 ))
* **cursor:** add subcommand parity comment and raw settings TODO ([4ca4a9d ](https://github.com/kaitranntt/ccs/commit/4ca4a9d2ab55eb0b339ac62e7a11d517ada1aff3 ))
* **cursor:** address CI gate and review regressions ([0e55db8 ](https://github.com/kaitranntt/ccs/commit/0e55db88a5b92ecde8528ee8bf396ce411c93296 ))
* **cursor:** address code review edge cases in protobuf and executor ([cc5a903 ](https://github.com/kaitranntt/ccs/commit/cc5a9039e40d952bd769b8b2dce7df9ecfd0cfa8 ))
* **cursor:** address code review feedback (attempt 1/5) ([31f5741 ](https://github.com/kaitranntt/ccs/commit/31f574118d6c1f293dd8dc59c311079bde9b0bd1 ))
* **cursor:** address code review feedback on auth module ([7e4f080 ](https://github.com/kaitranntt/ccs/commit/7e4f08004c00771ee624a09c045f920a5e105358 ))
* **cursor:** address fourth-round review feedback for protobuf module ([c5e8241 ](https://github.com/kaitranntt/ccs/commit/c5e82413932f83958bb56f37aee5dc82ab5207d3 ))
* **cursor:** address PR [#527 ](https://github.com/kaitranntt/ccs/issues/527 ) review feedback ([9f0ea25 ](https://github.com/kaitranntt/ccs/commit/9f0ea25448a8e4ca3019052812452885a4058190 ))
* **cursor:** address PR [#528 ](https://github.com/kaitranntt/ccs/issues/528 ) review feedback ([d58e988 ](https://github.com/kaitranntt/ccs/commit/d58e98815b5ccf0aa62f9fc929f88d43b4905d8e ))
* **cursor:** address remaining LOW review items in protobuf module ([f3d532a ](https://github.com/kaitranntt/ccs/commit/f3d532afd971e998ee7f72fcfc8a2940ff735ff4 ))
* **cursor:** address remaining PR [#527 ](https://github.com/kaitranntt/ccs/issues/527 ) review feedback ([afb5e74 ](https://github.com/kaitranntt/ccs/commit/afb5e746b3c11951147c381b298bc562a078685c ))
* **cursor:** address remaining PR [#528 ](https://github.com/kaitranntt/ccs/issues/528 ) review feedback ([b8aaa58 ](https://github.com/kaitranntt/ccs/commit/b8aaa58d6ebf2b715fd9f53cf42ea363bbb55042 ))
* **cursor:** address remaining review items in auth module ([b412ba2 ](https://github.com/kaitranntt/ccs/commit/b412ba2a9eb6e92630de3c4b98bb95a1375927a0 )), closes [#526 ](https://github.com/kaitranntt/ccs/issues/526 )
* **cursor:** address second-round review feedback for auth module ([84a256d ](https://github.com/kaitranntt/ccs/commit/84a256d0ac8ac2c3be6c4ffdbd422eda47f3abcc ))
* **cursor:** address second-round review feedback for protobuf module ([e177a4b ](https://github.com/kaitranntt/ccs/commit/e177a4b09796cfc48a4932428449809d8ab68015 )), closes [#531 ](https://github.com/kaitranntt/ccs/issues/531 ) [#531 ](https://github.com/kaitranntt/ccs/issues/531 )
* **cursor:** address third-round review feedback for auth module ([a8a68c9 ](https://github.com/kaitranntt/ccs/commit/a8a68c95992614e7c7ea1e3f65c85e29713ed746 ))
* **cursor:** address third-round review feedback for protobuf module ([66a93ee ](https://github.com/kaitranntt/ccs/commit/66a93ee46f26a226294cdfd25abeac78af614aff )), closes [#535 ](https://github.com/kaitranntt/ccs/issues/535 )
* **cursor:** align daemon routes, add enabled field, handle bare command ([6af7186 ](https://github.com/kaitranntt/ccs/commit/6af718626ff9db1e58a132972d08abbc3aece5bd ))
* **cursor:** clean up PID file on startDaemon failure and improve daemon robustness ([cda037e ](https://github.com/kaitranntt/ccs/commit/cda037e7e5a9a77bb6bb9768e3d601008d102b70 ))
* **cursor:** clean up settings validation and route consistency ([1e4cae3 ](https://github.com/kaitranntt/ccs/commit/1e4cae34900b307aaa7d9ddb20e624bbbf17bfb4 ))
* **cursor:** close ReadableStream controller on abort to prevent consumer hangs ([36a67c4 ](https://github.com/kaitranntt/ccs/commit/36a67c48377a0fbd325d2ed9a267de5c5357b52f ))
* **cursor:** export missing symbols, eliminate subcommand sync risk, improve tests ([9342387 ](https://github.com/kaitranntt/ccs/commit/934238740e124f6b89d04f571fe201153dbf85af ))
* **cursor:** fix router fall-through, add daemon marker, use random test port ([bfc9361 ](https://github.com/kaitranntt/ccs/commit/bfc9361701376b0a2d5541f2c8e48e95e2637539 ))
* **cursor:** fix test isolation and daemon exit handling ([fe97d72 ](https://github.com/kaitranntt/ccs/commit/fe97d720d41f83a35acf90307ef4471fb02a4cc6 ))
* **cursor:** guard raw-settings save race and enforce daemon preconditions ([9a76f86 ](https://github.com/kaitranntt/ccs/commit/9a76f866b09bfb7b864da236011658046f24f150 ))
* **cursor:** harden auth security and add token expiry warning ([aeb5802 ](https://github.com/kaitranntt/ccs/commit/aeb580281fc4b9f0d585a99e95730e65bd6fae6f ))
* **cursor:** harden stopDaemon PID validation, tighten regex, add lifecycle test ([760a5c3 ](https://github.com/kaitranntt/ccs/commit/760a5c3ca4fb10f408ddafc2bcd9a1c20e805e23 ))
* **cursor:** kill orphaned daemon on timeout and fix exit codes ([88ad13e ](https://github.com/kaitranntt/ccs/commit/88ad13ee7ba7957a6d1756e994b707d6f7402e2a ))
* **cursor:** pass all args to handler, use getCursorConfig in routes ([d7e0d1c ](https://github.com/kaitranntt/ccs/commit/d7e0d1cacff827ee1cd0015cbf8143e0a5346680 ))
* **cursor:** save credentials after auto-detect and fix signal hang ([9f9db7d ](https://github.com/kaitranntt/ccs/commit/9f9db7dcea29f8ed0e2b8d52dc8ade81f8ab050d ))
* **cursor:** show auto-detect error message, add subcommand sync comment ([887efa4 ](https://github.com/kaitranntt/ccs/commit/887efa406957bb88f0dfdfe12732b1ac0e1cfae1 ))
* **cursor:** split daemon helpers to satisfy maintainability gate ([08a3e0b ](https://github.com/kaitranntt/ccs/commit/08a3e0bae68aeefdb9e5cfaf4cb879363b16e056 ))
* **cursor:** tighten rate limit detection string matching ([79ba1de ](https://github.com/kaitranntt/ccs/commit/79ba1de4e237f126a65b981660755a0845925ce9 ))
* **cursor:** use getCursorConfig(), fix help text and stub messages ([2ba826b ](https://github.com/kaitranntt/ccs/commit/2ba826bb722c75bc773dd132095d6a42abb36691 ))
* **cursor:** use process.execPath and add safeResolve to model fetcher ([9478967 ](https://github.com/kaitranntt/ccs/commit/94789676b9642d539e9365fc03a961691981ed12 ))
* **cursor:** use stdio ignore, sequential polling, move CursorConfig to types ([ce19153 ](https://github.com/kaitranntt/ccs/commit/ce1915366d5012097b5b6814c2c672d04f16ab61 ))
* **cursor:** validate fetch status before streaming fallback and register abort early ([27badb2 ](https://github.com/kaitranntt/ccs/commit/27badb2584a9131b9408dacc1f58417745968dbe ))
* **cursor:** validate request body on settings endpoints ([f5a912b ](https://github.com/kaitranntt/ccs/commit/f5a912b114107bdc26fdcacb936ac6bf4d9f50c5 ))
* **format:** align image analysis check with pinned prettier ([ae83be1 ](https://github.com/kaitranntt/ccs/commit/ae83be159052e064ab639db2bde140326d42769f ))
* **hardening:** count executable sync fs call sites ([d21b5c4 ](https://github.com/kaitranntt/ccs/commit/d21b5c44ee736a4fea6473a32071d289fa43202e ))
* **hardening:** handle regex literals after else/do ([65a1d8a ](https://github.com/kaitranntt/ccs/commit/65a1d8ae2cd2027eb6e6992daf15466a000c48d2 ))
* **hardening:** handle regex literals in sync-call scanner ([bb9d846 ](https://github.com/kaitranntt/ccs/commit/bb9d846a549642c8b90de96a8f2377546dc2d11c ))
* **hardening:** ignore literal text in sync-call metrics ([8193e9d ](https://github.com/kaitranntt/ccs/commit/8193e9d67fef073c221f470559faa5b19db65056 ))
* **maintainability:** enforce gate and correct loc metric ([2610971 ](https://github.com/kaitranntt/ccs/commit/2610971d2e023af24c3364d94fc1a7be7e00843f ))
* **maintainability:** harden tracked scan and baseline checks ([33e9a88 ](https://github.com/kaitranntt/ccs/commit/33e9a8849420b2cdf68f1ddd5ef93d22fafc50f7 ))
* **maintainability:** require git-tracked scan for gate ([b7481cf ](https://github.com/kaitranntt/ccs/commit/b7481cf346c80fc3b178cb7c60c9459865a52f8c ))
* **maintainability:** scan tracked src files for stable gate ([8f0ba48 ](https://github.com/kaitranntt/ccs/commit/8f0ba481edf22fd87da1ad44e4eea2c257695d75 ))
* **test:** avoid global ui mock leakage in shell completion tests ([851f870 ](https://github.com/kaitranntt/ccs/commit/851f870fa8cce523205f547712ad5596e96bf3d6 ))
* **ui:** add method-aware kiro auth flow parity ([6a21f39 ](https://github.com/kaitranntt/ccs/commit/6a21f3921b618ba61949cf1eeccc2251dd3f6719 )), closes [#552 ](https://github.com/kaitranntt/ccs/issues/552 ) [#233 ](https://github.com/kaitranntt/ccs/issues/233 )
* **ui:** add trim validation for composite tier model fields ([b6e1d0c ](https://github.com/kaitranntt/ccs/commit/b6e1d0c4810581bd5a4e68b990601ac3c1f90cc8 ))
* **ui:** fix TypeScript error in composite edit dialog tier mapping ([240dfe2 ](https://github.com/kaitranntt/ccs/commit/240dfe29cf2aefead7850c03b5da592d3ebd04b0 ))
* **ui:** use default tier provider instead of hardcoded 'gemini' ([f3618c5 ](https://github.com/kaitranntt/ccs/commit/f3618c51d77512993dbe6a587c03db18d799cc32 ))
* **ui:** use type-only import for KiroAuthMethod ([e3f0860 ](https://github.com/kaitranntt/ccs/commit/e3f0860750e9213572727b8c3f5deb3c57615937 ))
* **web-server:** make kiro auth routes method-aware ([577991c ](https://github.com/kaitranntt/ccs/commit/577991c282fb3646f42d5c657c94dd5c07f6b4e3 )), closes [#552 ](https://github.com/kaitranntt/ccs/issues/552 ) [#233 ](https://github.com/kaitranntt/ccs/issues/233 )
### Documentation
* **guidelines:** add AGENTS symlink and neutral wording ([fca5ca2 ](https://github.com/kaitranntt/ccs/commit/fca5ca203f03d918ae3557754715a535a9ea85c4 ))
* **kiro:** document method-aware auth behavior ([14dd341 ](https://github.com/kaitranntt/ccs/commit/14dd34187d94fc07419175c17cd893e3f0081537 )), closes [#552 ](https://github.com/kaitranntt/ccs/issues/552 ) [#233 ](https://github.com/kaitranntt/ccs/issues/233 )
### Code Refactoring
* **cliproxy:** centralize provider capability registry ([924e368 ](https://github.com/kaitranntt/ccs/commit/924e3686c8741986def8474d079cc60ea13eee29 ))
* **commands:** add command contract and migrate shell completion ([fc4b77b ](https://github.com/kaitranntt/ccs/commit/fc4b77bc520da688af6e26add33fc7b25ff4d5c0 ))
### Tests
* **cliproxy:** add composite variant v2 unit tests ([e0ae5f2 ](https://github.com/kaitranntt/ccs/commit/e0ae5f20ff60fb8c94788a04b9c63ddb4b01b884 ))
* **cliproxy:** add regression coverage for update consistency ([7dd4ce5 ](https://github.com/kaitranntt/ccs/commit/7dd4ce5453b7e22ff1d378f396e4f8d61300a543 ))
* **cliproxy:** add thinking suffix test and document exit 0 behavior ([c35de7e ](https://github.com/kaitranntt/ccs/commit/c35de7ec9ab1eac166fc1a74bb9da3be61975ee8 ))
* **cliproxy:** stabilize path-sensitive CI test assertions ([c9faf6c ](https://github.com/kaitranntt/ccs/commit/c9faf6cdc9d5e34b1e69ed055b4e845657444c87 ))
* **cliproxy:** stabilize thinking override assertion ([d28fb2c ](https://github.com/kaitranntt/ccs/commit/d28fb2cdbd9d585f2d045fb0a64f9ec41ab5776b ))
* use getCcsDir() instead of os.homedir() for test isolation ([ca7bb23 ](https://github.com/kaitranntt/ccs/commit/ca7bb23970ba66c9b5f7ce68e96700bca8303656 ))
2026-02-14 08:44:57 +00:00
Kai (Tam Nhu) Tran and GitHub
400db74f19
Merge pull request #567 from kaitranntt/dev
...
feat(release): promote dev to main and close pending-release backlog
2026-02-14 15:43:37 +07:00
github-actions[bot]
d3ea238782
chore(release): 7.43.0-dev.20 [skip ci]
2026-02-14 06:39:14 +00:00
Kai (Tam Nhu) Tran and GitHub
c9b4a9ccba
Merge pull request #561 from kaitranntt/fix/552-review-followups
...
fix(cliproxy): harden Kiro device-code auth flow consistency
2026-02-14 13:38:00 +07:00
Tam Nhu Tran
e3f0860750
fix(ui): use type-only import for KiroAuthMethod
...
- satisfy verbatimModuleSyntax during ui build in CI
2026-02-14 13:36:13 +07:00
Tam Nhu Tran
14dd34187d
docs(kiro): document method-aware auth behavior
...
- add README Kiro auth-method examples and AWS default details
- update architecture docs for method-aware Kiro flow semantics
Refs #552
Refs #233
2026-02-14 13:34:08 +07:00
Tam Nhu Tran
6a21f3921b
fix(ui): add method-aware kiro auth flow parity
...
- add Kiro auth-method selector with AWS device-code default
- route start requests by method-specific flow and endpoint
- support auth_url status polling and delayed URL UX state
Refs #552
Refs #233
2026-02-14 13:33:57 +07:00
Tam Nhu Tran
577991c282
fix(web-server): make kiro auth routes method-aware
...
- validate kiroMethod on /start and /start-url with clear errors
- route Kiro management start-url requests with upstream method query
- accept state-first responses and keep auth_url optional
- add start-url guard tests for Kiro social and aws-authcode paths
Refs #552
Refs #233
2026-02-14 13:33:48 +07:00
Tam Nhu Tran
e425f477a4
fix(cli): add kiro auth-method flag wiring and help
...
- parse and validate --kiro-auth-method for Kiro and Kiro composite tiers
- pass selected method through auth/import flows
- document supported Kiro auth-method values in ccs --help
Refs #552
Refs #233
2026-02-14 13:33:37 +07:00
Tam Nhu Tran
fd46ad022a
fix(cliproxy): align kiro auth methods with upstream contracts
...
- add typed Kiro auth-method model and AWS device-code default
- map CLI flags and callback behavior by selected Kiro method
- harden CLI-only method guards and add contract regression tests
Refs #552
Refs #233
2026-02-14 13:33:28 +07:00
github-actions[bot]
34a310c73f
chore(release): 7.43.0-dev.19 [skip ci]
2026-02-14 06:31:48 +00:00
Kai (Tam Nhu) Tran and GitHub
e7a2775e88
Merge pull request #566 from kaitranntt/feat/562-codex-effort-clarity
...
feat(cliproxy): clarify codex effort defaults and preset UX
2026-02-14 13:30:37 +07:00
Tam Nhu Tran
945db1d690
feat(cliproxy): clarify codex effort mapping and preset UX
2026-02-14 11:31:18 +07:00
Tam Nhu Tran
826a42d8d6
fix(cliproxy): harden kiro device-code auth flow consistency
2026-02-14 10:55:14 +07:00
github-actions[bot]
a0d7c14ea0
chore(release): 7.43.0-dev.18 [skip ci]
2026-02-14 03:40:17 +00:00
Kai (Tam Nhu) Tran and GitHub
9c24dd1f38
Merge pull request #560 from kaitranntt/fix/review-cursor-variant-safety
...
fix(cliproxy): address lifecycle port and thinking regressions
2026-02-14 10:39:05 +07:00
Tam Nhu Tran
08a3e0bae6
fix(cursor): split daemon helpers to satisfy maintainability gate
2026-02-14 10:36:13 +07:00
Tam Nhu Tran
9268c05ee5
fix(cliproxy): resolve merge-duplicate lifecycle handlers
2026-02-14 10:31:00 +07:00
Tam Nhu Tran
ffb78bfe73
Merge remote-tracking branch 'origin/dev' into fix/review-cursor-variant-safety
2026-02-14 10:30:00 +07:00
Tam Nhu Tran
f02e7dc5c6
fix(cliproxy): address lifecycle port and thinking regressions
2026-02-14 10:23:39 +07:00
github-actions[bot]
84e0bce99e
chore(release): 7.43.0-dev.17 [skip ci]
2026-02-14 02:43:01 +00:00
Tam Nhu Tran
8395364970
feat(cliproxy): add explicit start and restart commands
2026-02-14 09:41:40 +07:00
github-actions[bot]
2fe8f2b4ca
chore(release): 7.43.0-dev.16 [skip ci]
2026-02-14 02:33:13 +00:00
Tam Nhu Tran
3136f24b9b
fix(cliproxy): keep daemon running after parent exit
2026-02-14 09:31:47 +07:00
github-actions[bot]
baa621aedd
chore(release): 7.43.0-dev.15 [skip ci]
2026-02-14 02:09:45 +00:00
Kai (Tam Nhu) Tran and GitHub
9796a21612
Merge pull request #559 from kaitranntt/fix/codex-reasoning-ux
...
fix: codex reasoning effort UX across cliproxy and -p
2026-02-14 09:08:20 +07:00
github-actions[bot]
bb164b16f7
chore(release): 7.43.0-dev.14 [skip ci]
2026-02-14 02:04:19 +00:00
Kai (Tam Nhu) Tran and GitHub
174a4c2777
Merge pull request #558 from kaitranntt/kai/fix/555-cursor-e2e
...
feat(cursor): complete end-to-end integration and dedicated dashboard UX
2026-02-14 09:03:09 +07:00
Tam Nhu Tran
d28fb2cdbd
test(cliproxy): stabilize thinking override assertion
2026-02-14 09:01:01 +07:00
github-actions[bot]
1ed0923af5
chore(release): 7.43.0-dev.13 [skip ci]
2026-02-14 01:22:03 +00:00
Tam Nhu Tran
0db2fd2040
Revert "feat(codex): use spark as haiku in 5.3 preset"
...
This reverts commit aaaceb43e0 .
2026-02-14 08:20:32 +07:00