Commit Graph
314 Commits
Author SHA1 Message Date
kaitranntt b5f22e415b feat(ui): update theme colors to match brand palette 2025-12-07 15:36:18 -05:00
kaitranntt 1b163050f7 feat(ui): add ccs branding assets and logo component 2025-12-07 15:05:23 -05:00
kaitranntt 707af2f01a feat(ui): add comprehensive quality gates and fix linting issues
- Added ESLint, Prettier, TypeScript strict mode to ui/ directory
- Fixed 40+ lint/format issues across ui codebase
- Created extraction files for react-refresh compliance:
  - button-variants.ts for Button component styles
  - use-sidebar.ts, use-websocket-context.ts custom hooks
  - ws-context.ts WebSocket context provider
- Fixed React hooks issues (setState ordering, dependency arrays)
- Added ui:validate script to enforce quality checks
- Updated husky pre-commit to validate UI files on change
2025-12-07 14:51:29 -05:00
kaitranntt 59758024c9 feat(web-dashboard): complete settings, health, shared data and build integration
- Settings editor with API key masking and conflict detection
- Health dashboard with status cards and one-click fixes
- Home dashboard with stats and quick actions
- Shared data viewer for commands/skills/agents
- Build scripts for UI + server bundle
- Bundle size verification (<500KB gzipped)
- Pre-release checklist script
2025-12-07 14:23:56 -05:00
kaitranntt 56502ab6a8 feat(web-dashboard): add rest api and real-time sync
REST API & CRUD:
- Add REST API routes for profiles, cliproxy, accounts
- Integrate React Query with data fetching hooks
- Create API client wrapper with TypeScript types
- Add shadcn/ui components (dialog, input, label, table)
- Build profiles table with edit/delete actions
- Create profile form dialog with zod validation
- Mount QueryClientProvider in App

Real-time Sync & WebSocket:
- Implement file watcher with chokidar for config changes
- Create WebSocket server with broadcast capability
- Add client auto-reconnect with exponential backoff
- Integrate React Query cache invalidation on WS messages
- Add connection status indicator in header
- Implement heartbeat keepalive (30s interval)
- Add graceful cleanup on server shutdown
- Show toast notifications for external config changes

Dependencies:
- Add @tanstack/react-query, react-table, react-hook-form, zod
- Add chokidar for file watching
2025-12-07 12:00:56 -05:00
kaitranntt 6a6f2a2463 feat(web-dashboard): add express server and react ui scaffolding 2025-12-07 11:37:28 -05:00
github-actions[bot] e1cbee1074 chore(release): 5.9.0-dev.3 [skip ci] 2025-12-07 13:31:40 +00:00
kaitranntt 98fd1bedb9 feat(doctor): improve port detection with process identification
- Add port-utils.ts module to detect which process occupies CLIProxy port
- Enhance doctor command to show specific process (PID/name) using port
- Distinguish between CLIProxy process vs other conflicting processes
- Support cross-platform detection (Windows netstat, Unix lsof)
- Provide actionable guidance when port conflict detected

This helps users identify if CLIProxy is already running or if another
application needs to be terminated to free up the port.
2025-12-07 08:29:53 -05:00
github-actions[bot] d65dd63042 chore(release): 5.9.0-dev.2 [skip ci] 2025-12-06 13:45:47 +00:00
kaitranntt 63b3ca7760 feat(cliproxy): deprecate claude thinking models in agy provider
Deprecated 2 Claude thinking models:
- gemini-claude-opus-4-5-thinking
- gemini-claude-sonnet-4-5-thinking

These models have compatibility issues with Antigravity.
A new deprecation system was added with badges and warnings in the UI.
2025-12-06 08:44:09 -05:00
github-actions[bot] 95e98313b8 chore(release): 5.9.0-dev.1 [skip ci] 2025-12-06 07:30:12 +00:00
kaitranntt 59a2f2b717 feat(completions): enhance cliproxy help and update shell completion scripts
- Styled cliproxy help output with UI primitives and added status hint
- Added cliproxy --help reference to main help command
- Updated bash, zsh, fish, and PowerShell completions with:
  - Missing commands (api, cliproxy)
  - CLIProxy OAuth profiles (gemini, codex, agy, qwen)
  - Provider flags and update command flags
2025-12-06 02:28:34 -05:00
semantic-release-bot 244b441663 chore(release): 5.9.0 [skip ci]
# [5.9.0](https://github.com/kaitranntt/ccs/compare/v5.8.0...v5.9.0) (2025-12-06)

### Features

* **cliproxy:** add crud commands for variant profiles ([6427ecf](https://github.com/kaitranntt/ccs/commit/6427ecf5af4a9be40f39c2a64bf72ac4e861d349))
2025-12-06 02:45:41 +00:00
kaitranntt 6427ecf5af feat(cliproxy): add crud commands for variant profiles
- Add `ccs cliproxy create/list/remove` commands for variant management
- Interactive wizard with provider/model selection from catalog
- Settings file auto-generated with all 6 ANTHROPIC_* env fields
- Fix `ccs api create` to include all 4 model fields (was missing 3)
- Fix `--config` flag to save to correct variant settings file
- Remove paid tier badge from AGY models (all free via Antigravity)
- Add settings file format example to README for CLIProxy variants
- Add 22 unit tests for cliproxy command validation and config handling
2025-12-05 21:44:41 -05:00
semantic-release-bot e103f21dde chore(release): 5.8.0 [skip ci]
# [5.8.0](https://github.com/kaitranntt/ccs/compare/v5.7.0...v5.8.0) (2025-12-05)

### Bug Fixes

* **agy:** enable claude model thinking via antigravity profile ([6f19440](https://github.com/kaitranntt/ccs/commit/6f194404722e63990f64d250d08c5f5e33235e05))
* **agy:** preserve user settings during model switch ([f5c31da](https://github.com/kaitranntt/ccs/commit/f5c31dab55033cd8db99247ca9eab8a47fcb24fb))
* **agy:** remove max_thinking_tokens when switching to non-claude model ([6decd15](https://github.com/kaitranntt/ccs/commit/6decd157e5e7b4d19ed3dac2cfdcb0131ce9d782))
* **cliproxy:** consolidate download ui to single spinner ([ace5ba8](https://github.com/kaitranntt/ccs/commit/ace5ba87502c51a7e8fe35df5fe4a8f7aaacd173))
* **cliproxy:** only remove provider-specific auth files on logout ([4770047](https://github.com/kaitranntt/ccs/commit/47700474a40539fad85c58fc5c971b85ddab45c4))
* **skill:** use yaml block scalar for ccs-delegation description ([26154c3](https://github.com/kaitranntt/ccs/commit/26154c3e13b14d76fee87473b84365457139c553))

### Features

* **agy:** disable thinking toggle for claude models via antigravity ([f5a1b81](https://github.com/kaitranntt/ccs/commit/f5a1b81e553d2d057dc1f49fabac1945a83fc361)), closes [#415](https://github.com/kaitranntt/ccs/issues/415)
* **delegation:** add passthrough args for claude cli flags ([26d72cf](https://github.com/kaitranntt/ccs/commit/26d72cfa5bbd7ea5d4a42dc7d5c4010ae5247711))
2025-12-05 22:45:27 +00:00
Kai (Tam Nhu) TranandGitHub b8d98a6b55 Merge pull request #59 from kaitranntt/dev
feat(release): v5.7.0 - claude thinking support via antigravity
2025-12-05 17:44:46 -05:00
github-actions[bot] 165c43aa9e chore(release): 5.7.0-dev.8 [skip ci] 2025-12-05 22:42:45 +00:00
kaitranntt 6decd157e5 fix(agy): remove max_thinking_tokens when switching to non-claude model
Cleans up the thinking token limit setting when user switches from
a Claude model to a Gemini model via ccs agy --config.
2025-12-05 17:41:41 -05:00
github-actions[bot] b2941abdb3 chore(release): 5.7.0-dev.7 [skip ci] 2025-12-05 22:38:46 +00:00
kaitranntt 6f19440472 fix(agy): enable claude model thinking via antigravity profile
- Removed broken: true and issueUrl from Claude thinking models
- Added MAX_THINKING_TOKENS=8191 for Antigravity-proxied Claude models
- Removed alwaysThinkingEnabled:false requirement
- Updated info message explaining thinking token limit

Claude models now work with extended thinking when using Antigravity
proxy (MAX_THINKING_TOKENS < 8192 is required).
2025-12-05 17:37:19 -05:00
github-actions[bot] 30eb5d2553 chore(release): 5.7.0-dev.6 [skip ci] 2025-12-05 22:25:40 +00:00
kaitranntt ace5ba8750 fix(cliproxy): consolidate download ui to single spinner
Use single spinner with update() instead of multiple spinners.
Prevents UI jumping during download/verify/extract phases.
2025-12-05 17:24:12 -05:00
kaitranntt 47700474a4 fix(cliproxy): only remove provider-specific auth files on logout
Previously --logout cleared all files in shared auth directory.
Now filters by provider prefix or JSON type field to preserve other providers.
2025-12-05 17:23:28 -05:00
github-actions[bot] 9ddaa76c1b chore(release): 5.7.0-dev.5 [skip ci] 2025-12-05 22:03:42 +00:00
kaitranntt f5c31dab55 fix(agy): preserve user settings during model switch
Model configuration now uses selective merge instead of full replacement:
- Preserves all user customizations (includeCoAuthoredBy, MAX_TOKENS, etc.)
- Only updates CCS-controlled fields (model selection, base URL, auth token)
- Still enforces alwaysThinkingEnabled: false for Claude models
2025-12-05 17:02:19 -05:00
github-actions[bot] c71b1b9889 chore(release): 5.7.0-dev.4 [skip ci] 2025-12-05 21:45:57 +00:00
kaitranntt f5a1b81e55 feat(agy): disable thinking toggle for claude models via antigravity
Claude models routed through Google's Antigravity protocol don't support
the thinking toggle due to protocol conversion limitations.

Changes:
- Add alwaysThinkingEnabled: false when selecting Claude models
- Show warning about thinking toggle limitation after model selection
- Reference GitHub issue #415 for technical details
2025-12-05 16:44:33 -05:00
kaitranntt 26d72cfa5b feat(delegation): add passthrough args for claude cli flags
Support passing through additional CLI flags like --agent, --system-prompt-file
to the underlying Claude CLI when using delegation mode.
2025-12-05 16:43:08 -05:00
github-actions[bot] fff40b6a27 chore(release): 5.7.0-dev.2 [skip ci] 2025-12-05 20:03:06 +00:00
kaitranntt 9063c11e1f ci: add pr validation workflow for install, build, and lint 2025-12-05 15:01:40 -05:00
github-actions[bot] 2f575c5434 chore(release): 5.7.0-dev.1 [skip ci] 2025-12-05 19:56:28 +00:00
kaitranntt 26154c3e13 fix(skill): use yaml block scalar for ccs-delegation description 2025-12-05 14:55:01 -05:00
semantic-release-bot ff3599d108 chore(release): 5.7.0 [skip ci]
# [5.7.0](https://github.com/kaitranntt/ccs/compare/v5.6.0...v5.7.0) (2025-12-05)

### Bug Fixes

* **ci:** add path filtering to deploy-ccs-worker pull request trigger ([64a8e86](https://github.com/kaitranntt/ccs/commit/64a8e86db4be7dd96d19654e1e91827ae62e0f7e))
* **doctor:** repair shared settings.json symlink broken by claude cli ([1471bd2](https://github.com/kaitranntt/ccs/commit/1471bd2152b8eec376b7c0b5d13499546477c0cb)), closes [#57](https://github.com/kaitranntt/ccs/issues/57)
* **types:** add forceversion to binarymanagerconfig interface ([3bb1ea7](https://github.com/kaitranntt/ccs/commit/3bb1ea7541fcf1bd38818b941ef3c5997d8daeb5))

### Features

* **cliproxy:** add iFlow OAuth provider support ([#55](https://github.com/kaitranntt/ccs/issues/55)) ([20bf626](https://github.com/kaitranntt/ccs/commit/20bf6266d2817bbceb8a9b5b7914f3ffc9164275))
2025-12-05 18:42:50 +00:00
Kai (Tam Nhu) TranandGitHub 417f7a691d Merge pull request #58 from kaitranntt/dev
feat(release): promote dev to main - v5.6.0
2025-12-05 13:42:14 -05:00
github-actions[bot] 656552ecda chore(release): 5.6.0-dev.3 [skip ci] 2025-12-05 18:36:54 +00:00
kaitranntt 3bb1ea7541 fix(types): add forceversion to binarymanagerconfig interface 2025-12-05 13:35:29 -05:00
20bf6266d2 feat(cliproxy): add iFlow OAuth provider support (#55)
Add iFlow as a new OAuth-based provider for CLIProxy.

Changes:
- Add config/base-iflow.settings.json with iFlow provider configuration
- Add iFlow to CLIProxyProvider type
- Add iFlow OAuth config (authUrl, scopes, authFlag)
- Add iFlow to provider display names, auth prefixes, and type values
- Update config-generator to support iFlow provider
- Update base-qwen.settings.json models (qwen3-coder-plus)

Co-authored-by: kaitranntt <kaitran.ntt@gmail.com>
2025-12-05 13:31:42 -05:00
github-actions[bot] 8fee4040cb chore(release): 5.6.0-dev.2 [skip ci] 2025-12-05 18:30:54 +00:00
kaitranntt 1471bd2152 fix(doctor): repair shared settings.json symlink broken by claude cli
claude cli's atomic writes (toggle thinking, etc.) replace symlinks with
regular files, breaking the settings sync chain. this adds:

- `ccs doctor --fix` to detect and repair broken shared symlinks
- `ccs sync` now also repairs shared symlinks automatically

fixes #57
2025-12-05 13:29:10 -05:00
github-actions[bot] c96b0f9fb3 chore(release): 5.6.0-dev.1 [skip ci] 2025-12-04 20:53:16 +00:00
kaitranntt 64a8e86db4 fix(ci): add path filtering to deploy-ccs-worker pull request trigger 2025-12-04 15:51:36 -05:00
semantic-release-bot 2130855874 chore(release): 5.6.0 [skip ci]
# [5.6.0](https://github.com/kaitranntt/ccs/compare/v5.5.0...v5.6.0) (2025-12-04)

### Bug Fixes

* **cliproxy:** clarify paid tier messaging to reference google account tier ([848fbf4](https://github.com/kaitranntt/ccs/commit/848fbf4686b49305c26ef85da339b12dffa51b5b))
* **cliproxy:** correct model selection default and update fallback version ([fdb8761](https://github.com/kaitranntt/ccs/commit/fdb8761cfac416831a8c3ae64f5718179517e3d0))
* **dev-release:** find next available dev version from npm ([482f3a7](https://github.com/kaitranntt/ccs/commit/482f3a7fc66f1b93a1b7e24e00a87c9858574ebd))
* **doctor:** use actual installed clipproxy version instead of hardcoded ([e3edcf6](https://github.com/kaitranntt/ccs/commit/e3edcf613e28a48fb7cb5c2c90ffed3c80cb0c62))
* **prompt:** strip bracketed paste escape sequences from password input ([df31ffc](https://github.com/kaitranntt/ccs/commit/df31ffcee7872b8d263451807818b368a9ba1eb4))
* **update:** add --help support and --dev alias for update command ([b18163c](https://github.com/kaitranntt/ccs/commit/b18163c57b59cabbd7d18165b28933155d94d74a))

### Features

* **cliproxy:** add model catalog with configuration management ([4654c15](https://github.com/kaitranntt/ccs/commit/4654c15577307457f8eb86ca9718b527460c7c40))
* **cliproxy:** add version management command ([7e07615](https://github.com/kaitranntt/ccs/commit/7e07615eedb7263aa359651abef8660ff0dcd95a))
* **cliproxy:** add warning for broken claude proxy models on agy ([0e11426](https://github.com/kaitranntt/ccs/commit/0e11426daa8896ba58aa9d53889818ab3577e250)), closes [CLIProxyAPI#415](https://github.com/CLIProxyAPI/issues/415)
* **prompt:** add password input utility with masking ([3bdbff9](https://github.com/kaitranntt/ccs/commit/3bdbff9345c2eb21d861621e56430de5bac61fc4))
* **release:** simplify dev versioning with stable base ([942b4b9](https://github.com/kaitranntt/ccs/commit/942b4b92cfce054c0886d8508f1c15ad18fd4400))
2025-12-04 11:38:21 +00:00
Kai (Tam Nhu) TranandGitHub 71d618a080 Merge pull request #54 from kaitranntt/dev
fix(cliproxy): model config improvements and fallback version update
2025-12-04 06:37:45 -05:00
github-actions[bot] ebb4e77b6d chore(release): 5.5.0-dev.11 [skip ci] 2025-12-04 11:37:12 +00:00
kaitranntt 7e07615eed feat(cliproxy): add version management command
Allow users to install specific versions or update to latest CLIProxy
via 'ccs cliproxy' command with install/update subcommands.
2025-12-04 06:36:06 -05:00
github-actions[bot] 8cadf4d7fa chore(release): 5.5.0-dev.10 [skip ci] 2025-12-04 11:23:45 +00:00
kaitranntt 0e11426daa feat(cliproxy): add warning for broken claude proxy models on agy
- add broken flag to model catalog for models with known issues
- display [BROKEN] badge in model selection and config display
- show warning message when starting with a broken model
- link to tracking issue: CLIProxyAPI#415

Claude proxy models (gemini-claude-*) currently fail with tool calls
due to upstream CLIProxyAPI bug. Warning helps users know to switch
to gemini-3-pro-preview until fixed.
2025-12-04 06:22:38 -05:00
github-actions[bot] 43e45c157c chore(release): 5.5.0-dev.9 [skip ci] 2025-12-04 11:15:43 +00:00
kaitranntt fdb8761cfa fix(cliproxy): correct model selection default and update fallback version
- Fix --config showing wrong default star position by using current
  user model instead of catalog default when reconfiguring
- Update CLIPROXY_FALLBACK_VERSION from 6.5.31 to 6.5.40
2025-12-04 06:14:14 -05:00
github-actions[bot] fcfa7ce35f chore(release): 5.5.0-dev.8 [skip ci] 2025-12-04 10:42:35 +00:00