semantic-release-bot
b40aa69459
chore(release): 7.35.0 [skip ci]
...
## [7.35.0](https://github.com/kaitranntt/ccs/compare/v7.34.1...v7.35.0 ) (2026-02-04)
### ⚠ BREAKING CHANGES
* **hooks:** config.yaml image_analysis section now uses
provider_models instead of providers/model fields.
Provider-to-model mappings:
- agy → gemini-2.5-flash
- gemini → gemini-2.5-flash
- codex → gpt-5.1-codex-mini
- kiro → kiro-claude-haiku-4-5
- ghcp → claude-haiku-4.5
- claude → claude-haiku-4-5-20251001
Hook checks CCS_CURRENT_PROVIDER against provider_models and skips
if no vision model configured for that provider.
### Features
* **hooks:** add ANTHROPIC_MODEL fallback for image analysis ([ae3eb28 ](https://github.com/kaitranntt/ccs/commit/ae3eb282b4a6a0754f90be27e259af45d0d09d9b ))
* **hooks:** add block-image-read hook to prevent context overflow ([38eb740 ](https://github.com/kaitranntt/ccs/commit/38eb74043c7f9e613e308392b2c159ebfc2a05c1 )), closes [#426 ](https://github.com/kaitranntt/ccs/issues/426 )
* **hooks:** add image/PDF analysis via CLIProxy transformer ([d5f2aca ](https://github.com/kaitranntt/ccs/commit/d5f2acaa6e9ee5d12a6035c2da1f975551b6a989 )), closes [#426 ](https://github.com/kaitranntt/ccs/issues/426 )
* **hooks:** add UX improvements for image analysis hook ([2b0717e ](https://github.com/kaitranntt/ccs/commit/2b0717ed53011dcb67cc03ad09a00cfabb682f1e ))
* **hooks:** extend image analyzer to all CLIProxy providers ([3252228 ](https://github.com/kaitranntt/ccs/commit/3252228e5c230d291fc705fb5f1f4b3f58cb2d99 ))
* **hooks:** inject image analyzer hooks into all profile types ([a8ddf8b ](https://github.com/kaitranntt/ccs/commit/a8ddf8bd565ac82131dc4ca02ecadd3b04a61197 ))
* **hooks:** skip image analyzer for Claude Sub accounts ([26f4021 ](https://github.com/kaitranntt/ccs/commit/26f40217703800cb412af74195e350090d39e435 ))
* **ui:** improve settings page UX and responsiveness ([4d87a64 ](https://github.com/kaitranntt/ccs/commit/4d87a649de3873786926dad0f598d4f481b1b563 ))
### Bug Fixes
* **backup:** create backups only when settings content changes ([c324e92 ](https://github.com/kaitranntt/ccs/commit/c324e92eb442669656b53a8f685030f5cb15ce3d )), closes [#433 ](https://github.com/kaitranntt/ccs/issues/433 )
* **checks:** use configurable CLIProxy port in health check ([bfb5350 ](https://github.com/kaitranntt/ccs/commit/bfb535037ad297b3d838754af74d30b8a88b34f2 ))
* **cli:** improve network handling and shell escaping ([3c1cf91 ](https://github.com/kaitranntt/ccs/commit/3c1cf91da4a27e55578a975f02222120a5d3064c ))
* **config:** remove unused forceReload parameter in showStatus ([8dfd9e9 ](https://github.com/kaitranntt/ccs/commit/8dfd9e937599305dcdeab453bb866f16ad582020 ))
* **delegation:** dynamic model display from settings ([f6b7045 ](https://github.com/kaitranntt/ccs/commit/f6b7045023e5de52f57fa79445a29de5bfe5a5ff )), closes [#431 ](https://github.com/kaitranntt/ccs/issues/431 )
* **glmt:** gate retry rate limit logs behind verbose flag ([73824bc ](https://github.com/kaitranntt/ccs/commit/73824bc99eec2701164837588a231b56b943c536 ))
* **hooks:** add defensive validation for env var generation ([9662490 ](https://github.com/kaitranntt/ccs/commit/9662490a74297fe1c992e30beb212222abe77799 ))
* **hooks:** add edge case validation in image analyzer ([0e7b9c9 ](https://github.com/kaitranntt/ccs/commit/0e7b9c91900c319a58ec698306be01bb1f665432 ))
* **hooks:** add network errors to noRetryPatterns, update E2E test ([1201b4b ](https://github.com/kaitranntt/ccs/commit/1201b4bb4b0b207d1c170fc3dcf39e79bbc545bd ))
* **hooks:** enable image-read blocking by default for third-party profiles ([9f3edc5 ](https://github.com/kaitranntt/ccs/commit/9f3edc5dafb3aeb72f3d1cf2da80ccbda1690e48 ))
* **hooks:** improve error handling and edge cases for image analysis ([cb8de2c ](https://github.com/kaitranntt/ccs/commit/cb8de2c8e8da2ac5e97b8e1893fc4586d0bf5c8c ))
* **hooks:** improve image analysis output format ([70caaa0 ](https://github.com/kaitranntt/ccs/commit/70caaa00a090fe6a1cfcff3ff47bcb355427ff42 ))
* **ui:** add missing animate property to connection indicator ([57f7a70 ](https://github.com/kaitranntt/ccs/commit/57f7a70d67cb7bc854fa3aa4c0a932134dc1278c ))
* **update:** pre-remove package on Windows bun before reinstall ([a55e0af ](https://github.com/kaitranntt/ccs/commit/a55e0af8ef440d2cbfa7d9a487727fb1ee874bc6 )), closes [#435 ](https://github.com/kaitranntt/ccs/issues/435 )
### Documentation
* update documentation for v7.34 release ([c6be09b ](https://github.com/kaitranntt/ccs/commit/c6be09b55b9df21be551f4844b4fba3dfd9a6b3f ))
### Code Refactoring
* **hooks:** consolidate getCcsHooksDir to config-manager ([b014c4e ](https://github.com/kaitranntt/ccs/commit/b014c4e8725c484d37827ea6f2a2e5df59464ce8 ))
* **hooks:** deprecate block-image-read, add CLIProxy fallback ([51b719e ](https://github.com/kaitranntt/ccs/commit/51b719ef3463950983244d708f1b9bca45774976 )), closes [#442 ](https://github.com/kaitranntt/ccs/issues/442 ) [#426 ](https://github.com/kaitranntt/ccs/issues/426 )
* **hooks:** use provider_models mapping for image analysis ([40caff1 ](https://github.com/kaitranntt/ccs/commit/40caff13ad5e8eaca71bddb05368d2218ce94453 ))
### Performance Improvements
* **config:** replace busy-wait with Atomics.wait in lock retry ([ec4e1ae ](https://github.com/kaitranntt/ccs/commit/ec4e1ae31c882e8422e8defca6c10a9c79addc5d ))
2026-02-04 13:21:52 +00:00
github-actions[bot]
0f6ee680b2
chore(release): 7.34.1-dev.7 [skip ci]
2026-02-04 13:11:09 +00:00
github-actions[bot]
039b005b14
chore(release): 7.34.1-dev.6 [skip ci]
2026-02-04 06:09:58 +00:00
github-actions[bot]
485ed4eb4e
chore(release): 7.34.1-dev.5 [skip ci]
2026-02-04 05:02:33 +00:00
Kai (Tam Nhu) Tran and GitHub
1ad1372068
Merge pull request #441 from kaitranntt/kai/feat/426-block-image-read
...
feat(hooks): image analysis via CLIProxy with UX improvements
2026-02-04 00:01:25 -05:00
github-actions[bot]
272be161fa
chore(release): 7.34.1-dev.4 [skip ci]
2026-02-04 02:51:16 +00:00
github-actions[bot]
e821a3bee6
chore(release): 7.34.1-dev.3 [skip ci]
2026-02-04 02:35:51 +00:00
kaitranntt
d5f2acaa6e
feat(hooks): add image/PDF analysis via CLIProxy transformer
...
Intercept Read tool calls for image/PDF files and route through CLIProxy
with gemini-2.5-flash for vision analysis. Returns text descriptions
instead of blocking, enabling Claude to "see" images via proxy.
Key changes:
- Add image-analyzer-transformer.cjs hook script
- Add ImageAnalysisConfig type and loader
- Add hook installer and profile injector
- Add prompt templates for analysis customization
- Add e2e test suite (excluded from normal CI runs)
- Configure test:e2e script for manual testing
Environment variables:
- CCS_IMAGE_ANALYSIS_ENABLED: Enable/disable (default: 1)
- CCS_IMAGE_ANALYSIS_MODEL: Vision model (default: gemini-2.5-flash)
- CCS_IMAGE_ANALYSIS_TIMEOUT: Timeout in seconds (default: 60)
- CCS_CLIPROXY_API_KEY: API key for CLIProxy auth
- CCS_CLIPROXY_PORT: CLIProxy port (default: 8317)
Closes #426
2026-02-03 20:34:05 -05:00
github-actions[bot]
38d2db9304
chore(release): 7.34.1-dev.2 [skip ci]
2026-02-04 01:00:01 +00:00
github-actions[bot]
b833b149e0
chore(release): 7.34.1-dev.1 [skip ci]
2026-02-03 05:14:46 +00:00
semantic-release-bot
d39e24ba16
chore(release): 7.34.1 [skip ci]
...
## [7.34.1](https://github.com/kaitranntt/ccs/compare/v7.34.0...v7.34.1 ) (2026-02-03)
### Bug Fixes
* **dashboard:** cross-browser OAuth with manual callback fallback ([#417 ](https://github.com/kaitranntt/ccs/issues/417 )) ([#423 ](https://github.com/kaitranntt/ccs/issues/423 )) ([24b0312 ](https://github.com/kaitranntt/ccs/commit/24b03121fd43121f229bd4c07cbd7e3ee5a0234a ))
* **dashboard:** detect popup blocked during OAuth flow ([441870d ](https://github.com/kaitranntt/ccs/commit/441870d38e5e7d8069df5f4695cb28275f0d48b6 ))
* **jsonl:** add explicit UTF-8 BOM stripping ([09b5239 ](https://github.com/kaitranntt/ccs/commit/09b5239f58213b24f2e13116cb2384748bf8913f ))
* **quota:** add explicit 429 rate limit handling ([e596ab4 ](https://github.com/kaitranntt/ccs/commit/e596ab487d9782e4cd9633be081dc42e4a176668 ))
* **quota:** improve 403 error messaging for forbidden accounts ([5a308db ](https://github.com/kaitranntt/ccs/commit/5a308db409392d88e637ee66b9c693b8b7557198 ))
* **websearch:** add type guards and deduplication for global settings ([847aad0 ](https://github.com/kaitranntt/ccs/commit/847aad00fee1fd920ddf8ea3a4b0e85aa1f3dfa4 ))
* **websearch:** normalize double-slash paths in hook detection ([66f5fe6 ](https://github.com/kaitranntt/ccs/commit/66f5fe6b2c2a955b4b616c38042ab3c9ead199a1 ))
* **websearch:** normalize Windows path separators in hook detection ([d61c940 ](https://github.com/kaitranntt/ccs/commit/d61c940a087d4e9134fa0a9ae32dc8d79d42648d ))
* **websocket:** add maxPayload limit to prevent DoS attacks ([4fd2f60 ](https://github.com/kaitranntt/ccs/commit/4fd2f601f676c0710b078960ad1d6c45fba8a6ca ))
### Code Refactoring
* **oauth:** align box chars with CCS standard and add JSDoc ([258220b ](https://github.com/kaitranntt/ccs/commit/258220b7e8ec833efe772bf32b61800e20439ddb ))
* **websearch:** extract shared hook utils to DRY module ([1f8d9b8 ](https://github.com/kaitranntt/ccs/commit/1f8d9b82d5ad89cefe73966e9c1ef57692dd9284 )), closes [#420 ](https://github.com/kaitranntt/ccs/issues/420 )
### Tests
* **websearch:** add unit tests for hook-utils module ([deb6249 ](https://github.com/kaitranntt/ccs/commit/deb62490dbe797369460ac07ad42a0790463a460 ))
2026-02-03 04:50:13 +00:00
github-actions[bot]
332d150a83
chore(release): 7.34.0-dev.3 [skip ci]
2026-02-03 04:42:32 +00:00
github-actions[bot]
cc55999628
chore(release): 7.34.0-dev.2 [skip ci]
2026-02-02 17:03:13 +00:00
github-actions[bot]
deca06c42b
chore(release): 7.34.0-dev.1 [skip ci]
2026-02-02 16:52:35 +00:00
semantic-release-bot
be63056d11
chore(release): 7.34.0 [skip ci]
...
## [7.34.0](https://github.com/kaitranntt/ccs/compare/v7.33.0...v7.34.0 ) (2026-02-01)
### Features
* **glmt:** add rate limit resilience with exponential backoff retry ([3afdcea ](https://github.com/kaitranntt/ccs/commit/3afdcea379a6527657ba326895f328c219ad6a88 )), closes [#402 ](https://github.com/kaitranntt/ccs/issues/402 )
### Bug Fixes
* **claude:** update base config to Claude 4.5 model IDs ([09dd701 ](https://github.com/kaitranntt/ccs/commit/09dd7016eb2570ef9946f9e7be0bbc300f75337a ))
* **cliproxy:** load WebSearch hooks via --settings flag ([7aaf568 ](https://github.com/kaitranntt/ccs/commit/7aaf568c3f15ae0a5c9dcab14f3e61d811515c9a )), closes [#412 ](https://github.com/kaitranntt/ccs/issues/412 )
* **glmt:** add env var validation and max delay cap ([67a8e2c ](https://github.com/kaitranntt/ccs/commit/67a8e2cefcedad2f5a26f0d43952219379be5cc0 ))
* **glmt:** extract Retry-After from HTTP headers and cap maxRetries ([62ac3e2 ](https://github.com/kaitranntt/ccs/commit/62ac3e2ae9b941adaa35cc3962c4de54f917e065 ))
* **sync:** prevent duplicate backup folders on Windows ([a8b0547 ](https://github.com/kaitranntt/ccs/commit/a8b054781f9c18165e985de801500f31d87a88a8 )), closes [#409 ](https://github.com/kaitranntt/ccs/issues/409 )
* **update:** add line-buffering and unit tests for stderr filter ([b39726f ](https://github.com/kaitranntt/ccs/commit/b39726fc0713451679b26d3467e70e835c784851 ))
* **update:** filter npm cleanup warnings on Windows ([c9f8ed1 ](https://github.com/kaitranntt/ccs/commit/c9f8ed1a04faa95af68650dca4371804391daef8 )), closes [#405 ](https://github.com/kaitranntt/ccs/issues/405 )
2026-02-01 07:52:36 +00:00
github-actions[bot]
dcb1e53a9d
chore(release): 7.33.0-dev.5 [skip ci]
2026-02-01 07:51:09 +00:00
github-actions[bot]
53c9a3da9e
chore(release): 7.33.0-dev.4 [skip ci]
2026-01-30 15:14:50 +00:00
github-actions[bot]
4f4498232e
chore(release): 7.33.0-dev.3 [skip ci]
2026-01-30 14:26:38 +00:00
github-actions[bot]
63946eb5bc
chore(release): 7.33.0-dev.2 [skip ci]
2026-01-30 13:26:09 +00:00
github-actions[bot]
a26d121450
chore(release): 7.33.0-dev.1 [skip ci]
2026-01-30 12:50:17 +00:00
semantic-release-bot
3673b9d771
chore(release): 7.33.0 [skip ci]
...
## [7.33.0](https://github.com/kaitranntt/ccs/compare/v7.32.0...v7.33.0 ) (2026-01-30)
### Features
* **cliproxy:** add backend caching and reauth indicator for quota endpoints ([7947a7a ](https://github.com/kaitranntt/ccs/commit/7947a7ac89b977a34adc9ab72b89b38a61fb5200 ))
* **cliproxy:** add Codex/Gemini quota API routes ([2f5a50b ](https://github.com/kaitranntt/ccs/commit/2f5a50b801a48314b76f102ccdd4f71c4d1cf87d ))
* **cliproxy:** add proactive token refresh for Gemini quota (match AGY pattern) ([606bb72 ](https://github.com/kaitranntt/ccs/commit/606bb7272318bea9f294d9b563369d595b336cf4 ))
* **ui:** add Codex/Gemini quota API client and hooks ([19a57c3 ](https://github.com/kaitranntt/ccs/commit/19a57c395c29beb83661edb28286e01211b80261 ))
* **ui:** display Codex/Gemini quota in dashboard ([387c010 ](https://github.com/kaitranntt/ccs/commit/387c01026731d251459420d70830df418fd1311f ))
### Code Refactoring
* **ui:** address code review feedback ([32ef233 ](https://github.com/kaitranntt/ccs/commit/32ef23314a517bcda1816ce0c55691b3dd2616de ))
* **ui:** extract duplicated quota helpers to shared utils ([8ce7495 ](https://github.com/kaitranntt/ccs/commit/8ce749581ef7667bec29bdfe17d02f824e06bed4 )), closes [#400 ](https://github.com/kaitranntt/ccs/issues/400 )
* **ui:** extract shared QuotaTooltipContent component ([eeb0dde ](https://github.com/kaitranntt/ccs/commit/eeb0dde8cabf0db5eea758d50ca7fd0b126a6404 ))
### Tests
* **quota:** add extensive test suite for quota caching system ([3df2619 ](https://github.com/kaitranntt/ccs/commit/3df2619023abee095901636310818a676e02d639 ))
* **ui:** add comprehensive tests for quota utility functions ([0b8635d ](https://github.com/kaitranntt/ccs/commit/0b8635d3ba47cf954ad9cc5fe4d30c64ec77779c ))
2026-01-30 04:35:04 +00:00
github-actions[bot]
bd89cabc8a
chore(release): 7.32.0-dev.1 [skip ci]
2026-01-30 04:30:44 +00:00
semantic-release-bot
1d5c72a860
chore(release): 7.32.0 [skip ci]
...
## [7.32.0](https://github.com/kaitranntt/ccs/compare/v7.31.1...v7.32.0 ) (2026-01-30)
### Features
* **cliproxy:** add ToolSanitizationProxy for Gemini 64-char limit ([6363350 ](https://github.com/kaitranntt/ccs/commit/63633507d2eeeff7c76b73481894dd9f1148ba93 )), closes [#219 ](https://github.com/kaitranntt/ccs/issues/219 )
### Bug Fixes
* **cliproxy:** address PR [#399 ](https://github.com/kaitranntt/ccs/issues/399 ) review suggestions ([98b7f6f ](https://github.com/kaitranntt/ccs/commit/98b7f6f4545daca18b3c76619bd7c6a6496cc1ed ))
* **cliproxy:** route proxy logs to file instead of stderr ([4d292c6 ](https://github.com/kaitranntt/ccs/commit/4d292c62e46497411b8e151fe96e3e335a5be1c3 ))
### Code Refactoring
* **cliproxy:** address PR review suggestions ([d86c531 ](https://github.com/kaitranntt/ccs/commit/d86c53146ad7302600ad803faf0649391fa8f4e1 ))
### Tests
* **cliproxy:** add integration tests for ToolSanitizationProxy ([bf19002 ](https://github.com/kaitranntt/ccs/commit/bf190024f6d3b322ff945655fe65af665181a779 ))
2026-01-30 00:41:01 +00:00
github-actions[bot]
050f989b2e
chore(release): 7.31.1-dev.2 [skip ci]
2026-01-29 22:50:59 +00:00
github-actions[bot]
149dfc3d6d
chore(release): 7.31.1-dev.1 [skip ci]
2026-01-29 22:38:24 +00:00
semantic-release-bot
7f7dcb21f9
chore(release): 7.31.1 [skip ci]
...
## [7.31.1](https://github.com/kaitranntt/ccs/compare/v7.31.0...v7.31.1 ) (2026-01-29)
### Bug Fixes
* **cliproxy:** read Gemini tokens from CLIProxy auth directory ([9d96535 ](https://github.com/kaitranntt/ccs/commit/9d96535d28bf7070e8eccde6af16ef79262a65cf )), closes [#368 ](https://github.com/kaitranntt/ccs/issues/368 )
### Code Refactoring
* **cliproxy:** address code review feedback for token handling ([cddf931 ](https://github.com/kaitranntt/ccs/commit/cddf931fe6fb8b4c2b6b9edeb9d4e41a25e29535 )), closes [#396 ](https://github.com/kaitranntt/ccs/issues/396 )
2026-01-29 20:21:01 +00:00
github-actions[bot]
ad1a18d31f
chore(release): 7.31.0-dev.1 [skip ci]
2026-01-29 20:16:35 +00:00
semantic-release-bot
2084ee3e85
chore(release): 7.31.0 [skip ci]
...
## [7.31.0](https://github.com/kaitranntt/ccs/compare/v7.30.1...v7.31.0 ) (2026-01-29)
### Features
* **cliproxy:** add multi-provider quota display for Codex and Gemini CLI ([30e611f ](https://github.com/kaitranntt/ccs/commit/30e611fc28e10f89d6aabb2cdbf9450d6ce748a1 ))
### Bug Fixes
* **cliproxy:** resolve regex escape bug and complete DRY refactor ([38ba6a9 ](https://github.com/kaitranntt/ccs/commit/38ba6a9fea564d3c48a083e6594c2c6e5cc82b20 )), closes [#395 ](https://github.com/kaitranntt/ccs/issues/395 )
* **config:** add missing base-claude.settings.json ([643232f ](https://github.com/kaitranntt/ccs/commit/643232f58e4a1954553f761cbad9863dab3133fa ))
### Code Refactoring
* **cliproxy:** extract shared auth utils and remove unused parameter ([e31d00f ](https://github.com/kaitranntt/ccs/commit/e31d00f0b99f51bd8768d351b2b38604d221935b )), closes [#395 ](https://github.com/kaitranntt/ccs/issues/395 )
### Tests
* **cliproxy:** add unit tests for quota fetchers and auth utilities ([ad8327d ](https://github.com/kaitranntt/ccs/commit/ad8327d17e8182d71f0c784e2ef6db30cb3877bb )), closes [#395 ](https://github.com/kaitranntt/ccs/issues/395 )
2026-01-29 20:06:31 +00:00
github-actions[bot]
06154165f5
chore(release): 7.30.1-dev.1 [skip ci]
2026-01-29 18:35:28 +00:00
semantic-release-bot
2b1d000759
chore(release): 7.30.1 [skip ci]
...
## [7.30.1](https://github.com/kaitranntt/ccs/compare/v7.30.0...v7.30.1 ) (2026-01-29)
### Bug Fixes
* **cliproxy:** update Claude model catalog to latest CLIProxy models ([d238a5d ](https://github.com/kaitranntt/ccs/commit/d238a5d43aa50e0629609349c6eb053170f2b586 )), closes [#392 ](https://github.com/kaitranntt/ccs/issues/392 )
* **copilot:** update fallback model ID to match catalog default ([2501843 ](https://github.com/kaitranntt/ccs/commit/25018431a50fae1a45121b28a0d16fa1731deace ))
2026-01-29 06:34:31 +00:00
github-actions[bot]
91a990f024
chore(release): 7.30.0-dev.1 [skip ci]
2026-01-29 05:49:58 +00:00
semantic-release-bot
a46ac1115e
chore(release): 7.30.0 [skip ci]
...
## [7.30.0](https://github.com/kaitranntt/ccs/compare/v7.29.0...v7.30.0 ) (2026-01-28)
### Features
* **cliproxy:** add auto_sync config option ([fc23afd ](https://github.com/kaitranntt/ccs/commit/fc23afdfc78a955fc0a1ce7f55d2e2bd098fc6c4 ))
* **cliproxy:** add granular account tier prioritization (ultra/pro/free) ([aeb9abc ](https://github.com/kaitranntt/ccs/commit/aeb9abc998a5114007e34c478cf5c79213ea1fe7 )), closes [#387 ](https://github.com/kaitranntt/ccs/issues/387 )
* **cliproxy:** add local config sync module ([9de2682 ](https://github.com/kaitranntt/ccs/commit/9de26820629f5e95a487028a64c1a8a782674448 ))
* **cliproxy:** add Management API client for CLIProxy ([4cc89ea ](https://github.com/kaitranntt/ccs/commit/4cc89eaf8745d67548f032408cd284fd23c3bd5e ))
* **cliproxy:** add sync and alias CLI commands ([cb6c212 ](https://github.com/kaitranntt/ccs/commit/cb6c21216dcaf0536530f110af75dc20ee7c7738 ))
* **cliproxy:** add sync API routes ([56500fe ](https://github.com/kaitranntt/ccs/commit/56500fee98042fb333bd723818d2a3881cd28481 ))
* **cliproxy:** auto-sync on profile create ([b2ba402 ](https://github.com/kaitranntt/ccs/commit/b2ba402d0fb4204457ae1f09016cb21bd9b5a6e2 ))
* **cliproxy:** enable auto_sync by default ([28b0e89 ](https://github.com/kaitranntt/ccs/commit/28b0e89b34787f42d63e2dd1a036b75a761bcf6b ))
* **ui:** add CLIProxy sync components ([75a4e68 ](https://github.com/kaitranntt/ccs/commit/75a4e68f95ba5f8c7c8b647b8d5cf0d013dc425a ))
* **ui:** add granular account tier types (pro/ultra/free) ([890fd14 ](https://github.com/kaitranntt/ccs/commit/890fd140f2ede728f212ed0bfc77bc8609b3a09b ))
* **ui:** add tier badges to account cards ([31a91f6 ](https://github.com/kaitranntt/ccs/commit/31a91f609fad4af17f0e4bd3b0f0dbabe8bf2b77 ))
* **ui:** add toast feedback for sync actions ([f972a4e ](https://github.com/kaitranntt/ccs/commit/f972a4ee80ebdec7b0a645d29eba4d65ca847caf ))
* **ui:** allow custom model names in Quick Setup wizard ([ab9bbed ](https://github.com/kaitranntt/ccs/commit/ab9bbedfa92555d0502b064145c0cfd5bf24065c ))
* **ui:** mount SyncStatusCard to CLIProxy page ([afa3bda ](https://github.com/kaitranntt/ccs/commit/afa3bdafceb1829e0fef2994bcb51c731797657f ))
### Bug Fixes
* **cliproxy:** address edge cases in sync module ([9924b2f ](https://github.com/kaitranntt/ccs/commit/9924b2fb25650803c34d26eae151c53a007fa0bb ))
* **cliproxy:** address PR review feedback ([4967693 ](https://github.com/kaitranntt/ccs/commit/496769383979fb0b08bb03a57acd4ad2c10221c6 ))
* **cliproxy:** address sync review feedback ([e80d2d2 ](https://github.com/kaitranntt/ccs/commit/e80d2d2d05c00522cdaac03e6f55ecf10a938fc7 ))
* **cliproxy:** correct sync terminology and add unit tests ([c3f85bc ](https://github.com/kaitranntt/ccs/commit/c3f85bc4a8c1351b09d463bd1687e17fa8a989d5 ))
* **cliproxy:** harden sync against edge cases ([bbad73b ](https://github.com/kaitranntt/ccs/commit/bbad73b55450d04902b90a4fc4c006a8c7a3c5c1 ))
* **cliproxy:** improve sync robustness and consistency ([4124780 ](https://github.com/kaitranntt/ccs/commit/4124780ce07201f166971216fd48e5b072ec9dd5 ))
* **cliproxy:** preserve config comments during sync ([68a63a7 ](https://github.com/kaitranntt/ccs/commit/68a63a776812c7026a38f7dc7d5bb6996bc30190 ))
* **cliproxy:** use paidTier for account tier detection instead of allowedTiers ([de23029 ](https://github.com/kaitranntt/ccs/commit/de23029b572c9e1db1c8a004ec214ce5a465570a ))
* **ui:** add scroll boundary for account list in Quick Setup ([85aa747 ](https://github.com/kaitranntt/ccs/commit/85aa747aebccbde21111730f6eb63e047ac0b91d ))
* **ui:** fix account card layout overflow ([87cced8 ](https://github.com/kaitranntt/ccs/commit/87cced81952c168eaa4c6fd98059f089d765bcb3 ))
* **ui:** update sync card for local sync design ([e2b9c46 ](https://github.com/kaitranntt/ccs/commit/e2b9c465e4485c13086b82d282d9c67ae640dc77 ))
### Code Refactoring
* **cliproxy:** remove model alias functionality ([32dbd5e ](https://github.com/kaitranntt/ccs/commit/32dbd5e174338d7627637667c63162ea4b9ffe7f ))
* **ui:** merge sync into ProxyStatusWidget ([3761634 ](https://github.com/kaitranntt/ccs/commit/37616348f8e0edf934e68854faf6c783d4ff7aca ))
### Tests
* **cliproxy:** add management-api-client unit tests ([6611142 ](https://github.com/kaitranntt/ccs/commit/6611142dcc60180dbaa4b987c3fb801ce753ffb1 ))
2026-01-28 22:01:02 +00:00
github-actions[bot]
2c649275d6
chore(release): 7.29.0-dev.2 [skip ci]
2026-01-28 21:54:57 +00:00
github-actions[bot]
e01a622c97
chore(release): 7.29.0-dev.1 [skip ci]
2026-01-28 19:30:53 +00:00
semantic-release-bot
ae11603de7
chore(release): 7.29.0 [skip ci]
...
## [7.29.0](https://github.com/kaitranntt/ccs/compare/v7.28.2...v7.29.0 ) (2026-01-28)
### Features
* **cliproxy:** add Claude (Anthropic) OAuth provider support ([28d8bd8 ](https://github.com/kaitranntt/ccs/commit/28d8bd84a5ac912b79416aeced95f74fd71876bb )), closes [#380 ](https://github.com/kaitranntt/ccs/issues/380 )
* skip local OAuth when using remote proxy with auth token ([1f5d119 ](https://github.com/kaitranntt/ccs/commit/1f5d11930ee19c0f00b46d7994ea99c7be8e55c6 ))
### Bug Fixes
* add claude provider to statsProviderMap, UI types, and provider arrays ([4a2abc7 ](https://github.com/kaitranntt/ccs/commit/4a2abc74cac93e17ee12fab3fcf8fc0693552347 ))
* **cliproxy:** add Claude to all provider lists for sidebar display ([d212995 ](https://github.com/kaitranntt/ccs/commit/d2129957d7e954701be973725545f475711d0468 ))
* **cliproxy:** address PR review feedback ([2091a90 ](https://github.com/kaitranntt/ccs/commit/2091a90b7710e7cb0b565577a5e659473126a541 )), closes [#D97757](https://github.com/kaitranntt/ccs/issues/D97757 )
* **cliproxy:** improve skip-local-auth edge case handling ([21e819b ](https://github.com/kaitranntt/ccs/commit/21e819b59062b77c2686ecc5f24e9c3436e42f84 ))
* **cliproxy:** use correct --claude-login flag for Claude OAuth ([8017ce8 ](https://github.com/kaitranntt/ccs/commit/8017ce8f8639ffc282203d6809091df83e0c8f18 )), closes [#382 ](https://github.com/kaitranntt/ccs/issues/382 )
* replace hardcoded provider validation arrays with CLIPROXY_PROFILES import ([9cd9c42 ](https://github.com/kaitranntt/ccs/commit/9cd9c423e929579c86da3f409d74927c3c7dedc1 )), closes [#382 ](https://github.com/kaitranntt/ccs/issues/382 )
* **test:** use correct provider name 'ghcp' instead of 'copilot' ([838cd1d ](https://github.com/kaitranntt/ccs/commit/838cd1d460de68acb571bb44bc12f91bd0636ff7 ))
* **ui:** add iFlow to PROVIDER_ASSETS + sync validation test ([5c62e06 ](https://github.com/kaitranntt/ccs/commit/5c62e06d0236b5080ccfb3ca2ff55407cbb414e1 )), closes [#384 ](https://github.com/kaitranntt/ccs/issues/384 )
* **ui:** truncate long account emails in provider editor ([a9c5520 ](https://github.com/kaitranntt/ccs/commit/a9c5520b8b4b7d49d1afe0e63b4facab3142db1b ))
### Code Refactoring
* **cliproxy:** reorder providers - Antigravity first, then Claude ([b385ab1 ](https://github.com/kaitranntt/ccs/commit/b385ab131d2b179c7b7bd014859f9118afd6ce5c ))
* **cliproxy:** use CLIPROXY_PROFILES for provider arrays (DRY) ([9fd9395 ](https://github.com/kaitranntt/ccs/commit/9fd93955880fd1b90d15f45d9738d413d04769ca )), closes [#384 ](https://github.com/kaitranntt/ccs/issues/384 )
* **oauth:** derive auth-code providers from OAUTH_FLOW_TYPES (DRY) ([c713d48 ](https://github.com/kaitranntt/ccs/commit/c713d48d08af5044cb0fab4505365fd98e31b9d6 )), closes [#384 ](https://github.com/kaitranntt/ccs/issues/384 )
* **ui:** centralize provider list in provider-config.ts (DRY) ([5a4c8e0 ](https://github.com/kaitranntt/ccs/commit/5a4c8e009ce1cc355d6fa2f05001cab6c9b684c4 ))
2026-01-28 03:28:46 +00:00
github-actions[bot]
6e560b78c4
chore(release): 7.28.2-dev.5 [skip ci]
2026-01-28 03:26:46 +00:00
github-actions[bot]
ebc42c9457
chore(release): 7.28.2-dev.4 [skip ci]
2026-01-28 03:06:09 +00:00
github-actions[bot]
b3cde80d0e
chore(release): 7.28.2-dev.3 [skip ci]
2026-01-28 02:43:55 +00:00
github-actions[bot]
409ad67afb
chore(release): 7.28.2-dev.2 [skip ci]
2026-01-28 02:27:20 +00:00
github-actions[bot]
c4ec326530
chore(release): 7.28.2-dev.1 [skip ci]
2026-01-28 01:29:08 +00:00
semantic-release-bot
441dd0b513
chore(release): 7.28.2 [skip ci]
...
## [7.28.2](https://github.com/kaitranntt/ccs/compare/v7.28.1...v7.28.2 ) (2026-01-27)
### Bug Fixes
* **websearch:** add shell option for Windows spawnSync compatibility ([3c534f4 ](https://github.com/kaitranntt/ccs/commit/3c534f48cb60448875c02bc0a8444277ca7c89eb )), closes [#378 ](https://github.com/kaitranntt/ccs/issues/378 )
2026-01-27 20:12:47 +00:00
semantic-release-bot
7fbe6b2b54
chore(release): 7.28.1 [skip ci]
...
## [7.28.1](https://github.com/kaitranntt/ccs/compare/v7.28.0...v7.28.1 ) (2026-01-26)
### Bug Fixes
* **cliproxy:** pin version to 6.7.25, add disable-cooling ([fb77d72 ](https://github.com/kaitranntt/ccs/commit/fb77d72a3080d0fa096247c71a9cc1336445aa38 ))
* **websearch:** stop polluting global ~/.claude/settings.json with hooks ([0216341 ](https://github.com/kaitranntt/ccs/commit/0216341b2c45e0b0387947f30213d277e1893584 ))
2026-01-26 20:02:10 +00:00
github-actions[bot]
3ae959122c
chore(release): 7.28.0-dev.2 [skip ci]
2026-01-26 19:53:30 +00:00
github-actions[bot]
60e7441246
chore(release): 7.28.0-dev.1 [skip ci]
2026-01-26 19:16:24 +00:00
semantic-release-bot
808be31024
chore(release): 7.28.0 [skip ci]
...
## [7.28.0](https://github.com/kaitranntt/ccs/compare/v7.27.0...v7.28.0 ) (2026-01-26)
### Features
* **cli:** implement --uninstall handler ([c44a5c2 ](https://github.com/kaitranntt/ccs/commit/c44a5c221f2046b84e6a556f0ffed706964dac6f ))
* **cli:** inject hooks into profile settings on launch ([0099ab5 ](https://github.com/kaitranntt/ccs/commit/0099ab5a1c6d3201850b44bc51b06ceb8847f1d2 ))
* **npm:** add postuninstall script ([4f28de9 ](https://github.com/kaitranntt/ccs/commit/4f28de9c90cbd8b6bacbd6cf73b3f664db64eee3 ))
* **websearch:** add per-profile hook injection module ([242ab76 ](https://github.com/kaitranntt/ccs/commit/242ab7645384516db0c05c7139ae652733acf271 ))
* **websearch:** add removeHookConfig function ([9159aa5 ](https://github.com/kaitranntt/ccs/commit/9159aa52cbe99c0820c30a19843043ea141c1106 )), closes [#317 ](https://github.com/kaitranntt/ccs/issues/317 )
* **websearch:** call removeHookConfig on uninstall ([fc4d987 ](https://github.com/kaitranntt/ccs/commit/fc4d987d205bb2bd86d2cf2698858f052a740cce ))
* **websearch:** inject hooks on profile creation ([fca8dbd ](https://github.com/kaitranntt/ccs/commit/fca8dbd6cfdcb8a229051b840733b0769e61368a ))
### Bug Fixes
* address PR [#373 ](https://github.com/kaitranntt/ccs/issues/373 ) review feedback ([e98a92f ](https://github.com/kaitranntt/ccs/commit/e98a92fded2eeb32cd74ee25279b59e51237c67a ))
* address PR review feedback ([cd7a112 ](https://github.com/kaitranntt/ccs/commit/cd7a1121d4f0072a4b15dc11b4864ec3aad26758 ))
* **config:** persist setup_completed flag to YAML file ([a8c46cc ](https://github.com/kaitranntt/ccs/commit/a8c46cc8ed6743f3cfb07bbe621b644c9b2d6830 ))
* **isolation:** add getCcsDir/getCcsHome to more files ([6a2c829 ](https://github.com/kaitranntt/ccs/commit/6a2c82917dea1fb7c5c7a9e4e134ac3227e0edaa ))
* **isolation:** use getCcsDir() for test isolation ([9b61f53 ](https://github.com/kaitranntt/ccs/commit/9b61f5318eedfd1f1a25ec5f3f3a39619174567b ))
* **setup:** persist setup_completed flag to prevent repeated first-time notice ([85e41a5 ](https://github.com/kaitranntt/ccs/commit/85e41a56e94e17ab7aeb729f50404eb6c0708df9 ))
* **websearch:** use getCcsDir() for test isolation ([b33674b ](https://github.com/kaitranntt/ccs/commit/b33674b3b225dd8d07fa48f916c3400cd0685dec ))
### Code Refactoring
* **uninstall:** stop modifying global settings.json ([ba1fb7e ](https://github.com/kaitranntt/ccs/commit/ba1fb7eeb3855db50eff5cfb5999d77ffd66f17f ))
* **websearch:** address PR review recommendations ([21b18d0 ](https://github.com/kaitranntt/ccs/commit/21b18d0c4e7dbdf9e7070458ec5c5fb54ac6a410 ))
### Tests
* **setup:** add unit tests for setup_completed flag detection ([596a9c6 ](https://github.com/kaitranntt/ccs/commit/596a9c68439a2c668a7c6243594a5fd2e57e8b04 ))
* **uninstall:** add hook cleanup tests ([6838ac0 ](https://github.com/kaitranntt/ccs/commit/6838ac0fa1ae0578cf84a451ed628cd8ded31562 ))
* **uninstall:** update tests for per-profile hook behavior ([ce59eb6 ](https://github.com/kaitranntt/ccs/commit/ce59eb6269ad65efb27e373b592596355f9dc313 ))
2026-01-26 03:09:52 +00:00
github-actions[bot]
3e6d4b0f63
chore(release): 7.27.0-dev.3 [skip ci]
2026-01-26 03:03:38 +00:00
github-actions[bot]
e0891fe915
chore(release): 7.27.0-dev.2 [skip ci]
2026-01-26 02:54:03 +00:00
Kai (Tam Nhu) Tran and GitHub
2f66f74ff9
Merge pull request #371 from kaitranntt/kai/fix/uninstall-hooks-cleanup
...
fix: uninstall hooks cleanup + test isolation
2026-01-25 21:53:00 -05:00
github-actions[bot]
f51d1a801a
chore(release): 7.27.0-dev.1 [skip ci]
2026-01-26 02:39:50 +00:00
kaitranntt
4f28de9c90
feat(npm): add postuninstall script
...
- add scripts/postuninstall.js for npm uninstall cleanup
- register in package.json scripts.postuninstall
- runs ccs --uninstall on npm uninstall -g
2026-01-25 20:05:43 -05:00