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]
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
semantic-release-bot
588b757d21
chore(release): 7.27.0 [skip ci]
...
## [7.27.0](https://github.com/kaitranntt/ccs/compare/v7.26.3...v7.27.0 ) (2026-01-25)
### Features
* **ui:** add bulk account controls to provider editor ([1427d36 ](https://github.com/kaitranntt/ccs/commit/1427d36f869f8b0eb64d2c5d6893810515d2d4d4 ))
* **ui:** add expandable provider cards with account controls ([87226e0 ](https://github.com/kaitranntt/ccs/commit/87226e05c40be83299187b35ba1ca4ca2113fbe3 ))
* **ui:** add tiered visual grouping to quota tooltip ([ebfc554 ](https://github.com/kaitranntt/ccs/commit/ebfc554f5f8733b811c1ba8610a1bf11d0154510 ))
* **ui:** add visible pause toggle button to account item cards ([56dfb24 ](https://github.com/kaitranntt/ccs/commit/56dfb2429bc93772e260aa6ecaed50ebf714be06 ))
* **ui:** persist provider selection in cliproxy and auth-monitor ([7fc9ff0 ](https://github.com/kaitranntt/ccs/commit/7fc9ff0d77ddf89c13e8ec168b700bee38cabc12 ))
### Bug Fixes
* **api:** add race condition prevention and input validation for account control ([d1b579a ](https://github.com/kaitranntt/ccs/commit/d1b579ad1b8c58da352f1a2c803256a427e3f669 ))
* **hooks:** add stats invalidation to account control mutations ([7086617 ](https://github.com/kaitranntt/ccs/commit/708661744fa8463ae919cb597bd9c43cca21c336 ))
* **quota:** fetch quota for paused accounts + simplify exhausted display ([27e8813 ](https://github.com/kaitranntt/ccs/commit/27e8813cae5379dbd8f9e700155812e59fe99389 ))
* **quota:** return exhausted models with resetTime from API ([e3920e0 ](https://github.com/kaitranntt/ccs/commit/e3920e077610b3d31b7e533a629c6b09e8b6d427 ))
* **ui:** add pause toggle to flow viz account cards, remove dropdown redundancy ([56dfada ](https://github.com/kaitranntt/ccs/commit/56dfada31c36425a11d4eff397c925980a43b94c ))
* **ui:** display exhausted Claude/GPT models in quota tooltip ([ce16517 ](https://github.com/kaitranntt/ccs/commit/ce1651714473b0d7484efbbb45ecb503d7490a3b ))
* **ui:** improve bulk actions UX in provider editor ([6021c10 ](https://github.com/kaitranntt/ccs/commit/6021c10ddce84536f01dd8e9bb8a59f279dfc3cc ))
* **ui:** improve model quota tooltip tier sorting ([de71381 ](https://github.com/kaitranntt/ccs/commit/de7138166ca2dca765c05ab59e9d9b1b154277bb ))
* **ui:** improve pause toggle position in flow-viz account cards ([eb05342 ](https://github.com/kaitranntt/ccs/commit/eb053425c074ab150f67181ba7cf62668e0e7b49 ))
* **ui:** improve tier header contrast in quota tooltip ([41d17e7 ](https://github.com/kaitranntt/ccs/commit/41d17e7cae7949dbb169963b3a0e71516afa91b3 ))
* **ui:** remove dead 'Account is paused' error handling from flow-viz ([a84cc03 ](https://github.com/kaitranntt/ccs/commit/a84cc036df8179442498531fa0b4383f0b96d904 ))
* **ui:** show 0% quota when Claude/GPT models exhausted ([1f323f0 ](https://github.com/kaitranntt/ccs/commit/1f323f082c92bd8e740fa519b196f2ed957a0b68 ))
* **ui:** show Claude reset time for quota display (not earliest) ([9516e71 ](https://github.com/kaitranntt/ccs/commit/9516e71f17c112eb71d7e0283e5c9d8c654fa2f9 ))
* **ui:** simplify quota tooltip - delimiter lines only, full model names ([b2b8a85 ](https://github.com/kaitranntt/ccs/commit/b2b8a85af6c860c2e76d1f0198c2d8bc25f2ff2e ))
### Code Refactoring
* **ui:** update cliproxy page for account control flow ([118ce46 ](https://github.com/kaitranntt/ccs/commit/118ce46e7287aa929f489e218ef30609fb1348c8 ))
2026-01-25 22:42:10 +00:00
github-actions[bot]
c501e32310
chore(release): 7.26.3-dev.1 [skip ci]
2026-01-25 22:38:49 +00:00
semantic-release-bot
caba99c3b5
chore(release): 7.26.3 [skip ci]
...
## [7.26.3](https://github.com/kaitranntt/ccs/compare/v7.26.2...v7.26.3 ) (2026-01-24)
### Bug Fixes
* **cliproxy:** propagate backend parameter to version check functions ([2a0efbd ](https://github.com/kaitranntt/ccs/commit/2a0efbd954d5126d29920e4992f2f9a6be74fce6 ))
* **tests:** address edge cases in mock infrastructure ([2b91c40 ](https://github.com/kaitranntt/ccs/commit/2b91c40e37d5b28420ba9fa45f5b7bcbde6e29d5 ))
* **tests:** remove undefined MockRoute export and unused imports ([aaa6feb ](https://github.com/kaitranntt/ccs/commit/aaa6feb8db6a31e598204448d6f45520313140f3 ))
### Documentation
* clarify no-emoji rule applies only to CLI terminal output ([0902211 ](https://github.com/kaitranntt/ccs/commit/0902211d409712f00bc5582e50660f6d76ef4e4c ))
### Performance Improvements
* **tests:** replace real network ops with mock infrastructure ([5c83429 ](https://github.com/kaitranntt/ccs/commit/5c83429a79e178283654ee5d401cd8814d7ed599 ))
2026-01-24 05:05:24 +00:00
github-actions[bot]
1e2eeb1946
chore(release): 7.26.2-dev.3 [skip ci]
2026-01-24 05:01:25 +00:00
github-actions[bot]
1fbf6b0cc7
chore(release): 7.26.2-dev.2 [skip ci]
2026-01-24 04:52:01 +00:00
github-actions[bot]
23f3b6dcfd
chore(release): 7.26.2-dev.1 [skip ci]
2026-01-24 04:11:02 +00:00
semantic-release-bot
9051ea05bf
chore(release): 7.26.2 [skip ci]
...
## [7.26.2](https://github.com/kaitranntt/ccs/compare/v7.26.1...v7.26.2 ) (2026-01-23)
### Bug Fixes
* display correct project names in session stats ([8ee87c7 ](https://github.com/kaitranntt/ccs/commit/8ee87c7452d3b3f71d4dd15031350fdcb2c4a8dc )), closes [#348 ](https://github.com/kaitranntt/ccs/issues/348 ) [#103 ](https://github.com/kaitranntt/ccs/issues/103 )
* **glmt:** respect user-configured model instead of hardcoding glm-4.6 ([bd343f3 ](https://github.com/kaitranntt/ccs/commit/bd343f3f028bf1c5b0648a7566291fa4b94a09c3 )), closes [#358 ](https://github.com/kaitranntt/ccs/issues/358 )
* resolve test import paths and vi.mock hoisting issues ([84ec434 ](https://github.com/kaitranntt/ccs/commit/84ec43430d666ffd26505431d76fd1a8d1d4aaae ))
* **ui:** display correct project names in session stats ([01f9610 ](https://github.com/kaitranntt/ccs/commit/01f96104e65ae02f7a20bad44730922a61b21c02 )), closes [#348 ](https://github.com/kaitranntt/ccs/issues/348 ) [#103 ](https://github.com/kaitranntt/ccs/issues/103 )
### Tests
* add project name display tests ([c5911dd ](https://github.com/kaitranntt/ccs/commit/c5911dde38fedea1eb231a85de96c92dd79aec4e )), closes [#348 ](https://github.com/kaitranntt/ccs/issues/348 ) [#103 ](https://github.com/kaitranntt/ccs/issues/103 )
2026-01-23 23:16:50 +00:00
github-actions[bot]
ad46f3cb4d
chore(release): 7.26.1-dev.2 [skip ci]
2026-01-23 23:11:21 +00:00
github-actions[bot]
7c0cd86183
chore(release): 7.26.1-dev.1 [skip ci]
2026-01-23 21:28:08 +00:00
semantic-release-bot
5594ab503c
chore(release): 7.26.1 [skip ci]
...
## [7.26.1](https://github.com/kaitranntt/ccs/compare/v7.26.0...v7.26.1 ) (2026-01-23)
### Bug Fixes
* **cliproxy:** complete backend param propagation per code review ([388ab69 ](https://github.com/kaitranntt/ccs/commit/388ab69a970e7bbd249948f34d7ab3e7ab5ddcb9 ))
* **cliproxy:** complete backend switching with proper binary extraction ([2794a54 ](https://github.com/kaitranntt/ccs/commit/2794a548a57c94002ab8c4f926bd47f04de3f8ff ))
* **cliproxy:** make backend switching work with version pins and status ([628148c ](https://github.com/kaitranntt/ccs/commit/628148c3590e09dcb04fb205bd41880c3f295e87 ))
* **cliproxy:** make version cache backend-specific for proper switching ([a41fd2a ](https://github.com/kaitranntt/ccs/commit/a41fd2a093d207d9216cde2a58da8669c09c7c04 ))
* **cliproxy:** use backend-aware labels in error messages and API ([f0c845c ](https://github.com/kaitranntt/ccs/commit/f0c845c32e7f389d8427941dd685898a3f894faa ))
* **cliproxy:** use backend-specific GitHub repos for version fetching ([0a1cbcc ](https://github.com/kaitranntt/ccs/commit/0a1cbcc612d81ec8dc837cdada7c943ffedd4483 ))
* **ui:** add backend fields to CliproxyUpdateCheckResult type ([c916356 ](https://github.com/kaitranntt/ccs/commit/c9163568391208c346a6ca0e04562d2931e8092a ))
* **ui:** align alert icon vertically with text when using py-2 ([0511c5e ](https://github.com/kaitranntt/ccs/commit/0511c5e2fd008d953b357861a7941c3176280ecd ))
* **ui:** correct warning text to reference Instance Status section ([46e75e2 ](https://github.com/kaitranntt/ccs/commit/46e75e2a746ab46801d4d731a08405dc029fdf5a ))
* **ui:** display dynamic backend label in dashboard ([dad4349 ](https://github.com/kaitranntt/ccs/commit/dad434999469b6ed6e87c186c690004b83676420 ))
* **ui:** integrate ProxyStatusWidget in Settings & block backend switch when running ([6458173 ](https://github.com/kaitranntt/ccs/commit/64581734c61f3ad31e52c3decc6de10a6f983050 ))
* **ui:** prevent race conditions during backend switch ([498175e ](https://github.com/kaitranntt/ccs/commit/498175e9fbc70010aececc276749356e8f8a8070 ))
* **ui:** sync backend state across all CLIProxy UI components ([88560c7 ](https://github.com/kaitranntt/ccs/commit/88560c71194b66093410cd5189a84d1224b16b2a ))
2026-01-23 20:54:50 +00:00
github-actions[bot]
f21cc1fed0
chore(release): 7.26.0-dev.1 [skip ci]
2026-01-23 20:47:43 +00:00