## [5.4.1-dev.1](https://github.com/kaitranntt/ccs/compare/v5.4.0...v5.4.1-dev.1) (2025-12-03) ### Bug Fixes * **cliproxy:** resolve windows auth browser not opening ([af4d6cf](https://github.com/kaitranntt/ccs/commit/af4d6cff89395a74e2eaf56551d3f56b95e0a6ce)), closes [#42](https://github.com/kaitranntt/ccs/issues/42) * **doctor:** resolve windows claude cli detection failure ([cfe9ba0](https://github.com/kaitranntt/ccs/commit/cfe9ba05a4351302fbb330ca00b6025cb65a8f20)), closes [#41](https://github.com/kaitranntt/ccs/issues/41) # [5.4.0](https://github.com/kaitranntt/ccs/compare/v5.3.0...v5.4.0) (2025-12-02) ### Bug Fixes * **auth:** prevent default profile from using stale glm env vars ([13d13da](https://github.com/kaitranntt/ccs/commit/13d13dab516332bc17345dc77afd44ae48bdd2aa)), closes [#37](https://github.com/kaitranntt/ccs/issues/37) * **cliproxy:** convert windows backslashes to forward slashes in config.yaml auth-dir ([a6663cb](https://github.com/kaitranntt/ccs/commit/a6663cbd0471d1a08e8bbcdea897760b434ae937)), closes [#36](https://github.com/kaitranntt/ccs/issues/36) * **cliproxy:** improve qwen oauth error handling ([7e0b0fe](https://github.com/kaitranntt/ccs/commit/7e0b0feca8ce2ed5d505c5bf6c84e54c6df8839e)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * **cliproxy:** use double-dash flags for cliproxyapi auth ([#24](https://github.com/kaitranntt/ccs/issues/24)) ([4c81f28](https://github.com/kaitranntt/ccs/commit/4c81f28f0b67ef92cf74d0f5c13a5943ff0a7f00)) * **deps:** add chalk, boxen, gradient-string, listr2 as dependencies ([a214749](https://github.com/kaitranntt/ccs/commit/a214749725cfe05612e2c84cefa2ab3f619c6a2e)) * **glmt:** handle 401 errors and headers-already-sent exception ([#30](https://github.com/kaitranntt/ccs/issues/30)) ([c953382](https://github.com/kaitranntt/ccs/commit/c95338232a37981b95b785b47185ce18d6d94b7a)), closes [#26](https://github.com/kaitranntt/ccs/issues/26) * **prompt:** improve password input handling with raw mode and buffer support ([bc56d2e](https://github.com/kaitranntt/ccs/commit/bc56d2e135532b2ae443144dd42217b26bcba951)) ### Features * **cliproxy:** add qwen code oauth provider support ([#31](https://github.com/kaitranntt/ccs/issues/31)) ([a3f1e52](https://github.com/kaitranntt/ccs/commit/a3f1e52ac68600ba0806d67aacceb6477ffa3543)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * **cliproxy:** auto-update cliproxyapi to latest release on startup ([8873ccd](https://github.com/kaitranntt/ccs/commit/8873ccd981679e8acff8965accdc22215c6e4aa2)) * **profile:** add profile command with configuration display ([53d7a15](https://github.com/kaitranntt/ccs/commit/53d7a15c047e760723e051dc0f7be3c0dd42d087)) * **shell-completion:** add --force flag and fix zsh profile coloring ([7faed1d](https://github.com/kaitranntt/ccs/commit/7faed1d84ba29ba02bf687bae5b3458617512e67)) * **ui:** add central ui abstraction layer for cli styling ([6e49e0e](https://github.com/kaitranntt/ccs/commit/6e49e0e7e157abd4a38c98553dbe3c16473b57d9)) * **ui:** enhance auth commands with new ui layer ([6f42a65](https://github.com/kaitranntt/ccs/commit/6f42a6527b1bf02cbf29ec23525c9f27af6f0c98)) * **ui:** enhance delegation with listr2 task lists and styled output ([716193a](https://github.com/kaitranntt/ccs/commit/716193a682a1504767c7f32409a0de51278242eb)) * **ui:** enhance doctor and error manager with new ui layer ([57016f3](https://github.com/kaitranntt/ccs/commit/57016f3f765f207915161514e1827b18c0b03d5c)) * **ui:** enhance help and profile commands with new ui layer ([f3ed359](https://github.com/kaitranntt/ccs/commit/f3ed359050ce66d96c0109cf60c242bfd092114d)) * **ui:** enhance section headers with gradient and rename profile to api ([073a5e1](https://github.com/kaitranntt/ccs/commit/073a5e15ee8f895d7485864526d8946b774bb728)) # [5.4.0-beta.3](https://github.com/kaitranntt/ccs/compare/v5.4.0-beta.2...v5.4.0-beta.3) (2025-12-02) ### Bug Fixes * **cliproxy:** convert windows backslashes to forward slashes in config.yaml auth-dir ([a6663cb](https://github.com/kaitranntt/ccs/commit/a6663cbd0471d1a08e8bbcdea897760b434ae937)), closes [#36](https://github.com/kaitranntt/ccs/issues/36) # [5.4.0-beta.2](https://github.com/kaitranntt/ccs/compare/v5.4.0-beta.1...v5.4.0-beta.2) (2025-12-02) ### Bug Fixes * **auth:** prevent default profile from using stale glm env vars ([13d13da](https://github.com/kaitranntt/ccs/commit/13d13dab516332bc17345dc77afd44ae48bdd2aa)), closes [#37](https://github.com/kaitranntt/ccs/issues/37) # [5.4.0-beta.1](https://github.com/kaitranntt/ccs/compare/v5.3.0...v5.4.0-beta.1) (2025-12-02) ### Bug Fixes * **cliproxy:** improve qwen oauth error handling ([7e0b0fe](https://github.com/kaitranntt/ccs/commit/7e0b0feca8ce2ed5d505c5bf6c84e54c6df8839e)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * **cliproxy:** use double-dash flags for cliproxyapi auth ([#24](https://github.com/kaitranntt/ccs/issues/24)) ([4c81f28](https://github.com/kaitranntt/ccs/commit/4c81f28f0b67ef92cf74d0f5c13a5943ff0a7f00)) * **deps:** add chalk, boxen, gradient-string, listr2 as dependencies ([a214749](https://github.com/kaitranntt/ccs/commit/a214749725cfe05612e2c84cefa2ab3f619c6a2e)) * **glmt:** handle 401 errors and headers-already-sent exception ([#30](https://github.com/kaitranntt/ccs/issues/30)) ([c953382](https://github.com/kaitranntt/ccs/commit/c95338232a37981b95b785b47185ce18d6d94b7a)), closes [#26](https://github.com/kaitranntt/ccs/issues/26) * **prompt:** improve password input handling with raw mode and buffer support ([bc56d2e](https://github.com/kaitranntt/ccs/commit/bc56d2e135532b2ae443144dd42217b26bcba951)) ### Features * **cliproxy:** add qwen code oauth provider support ([#31](https://github.com/kaitranntt/ccs/issues/31)) ([a3f1e52](https://github.com/kaitranntt/ccs/commit/a3f1e52ac68600ba0806d67aacceb6477ffa3543)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * **cliproxy:** auto-update cliproxyapi to latest release on startup ([8873ccd](https://github.com/kaitranntt/ccs/commit/8873ccd981679e8acff8965accdc22215c6e4aa2)) * **profile:** add profile command with configuration display ([53d7a15](https://github.com/kaitranntt/ccs/commit/53d7a15c047e760723e051dc0f7be3c0dd42d087)) * **shell-completion:** add --force flag and fix zsh profile coloring ([7faed1d](https://github.com/kaitranntt/ccs/commit/7faed1d84ba29ba02bf687bae5b3458617512e67)) * **ui:** add central ui abstraction layer for cli styling ([6e49e0e](https://github.com/kaitranntt/ccs/commit/6e49e0e7e157abd4a38c98553dbe3c16473b57d9)) * **ui:** enhance auth commands with new ui layer ([6f42a65](https://github.com/kaitranntt/ccs/commit/6f42a6527b1bf02cbf29ec23525c9f27af6f0c98)) * **ui:** enhance delegation with listr2 task lists and styled output ([716193a](https://github.com/kaitranntt/ccs/commit/716193a682a1504767c7f32409a0de51278242eb)) * **ui:** enhance doctor and error manager with new ui layer ([57016f3](https://github.com/kaitranntt/ccs/commit/57016f3f765f207915161514e1827b18c0b03d5c)) * **ui:** enhance help and profile commands with new ui layer ([f3ed359](https://github.com/kaitranntt/ccs/commit/f3ed359050ce66d96c0109cf60c242bfd092114d)) * **ui:** enhance section headers with gradient and rename profile to api ([073a5e1](https://github.com/kaitranntt/ccs/commit/073a5e15ee8f895d7485864526d8946b774bb728)) # [5.3.0](https://github.com/kaitranntt/ccs/compare/v5.2.1...v5.3.0) (2025-12-01) ### Features * **profile,shell-completion,prompt:** add profile commands and improve input handling ([#34](https://github.com/kaitranntt/ccs/issues/34)) ([7ec8cc8](https://github.com/kaitranntt/ccs/commit/7ec8cc83690a595bba9bb5f62fb3b9fa6b6a2f8f)), closes [#24](https://github.com/kaitranntt/ccs/issues/24) [#30](https://github.com/kaitranntt/ccs/issues/30) [#26](https://github.com/kaitranntt/ccs/issues/26) [#31](https://github.com/kaitranntt/ccs/issues/31) [#29](https://github.com/kaitranntt/ccs/issues/29) [#29](https://github.com/kaitranntt/ccs/issues/29) # [5.3.0-beta.4](https://github.com/kaitranntt/ccs/compare/v5.3.0-beta.3...v5.3.0-beta.4) (2025-12-01) ### Bug Fixes * **cliproxy:** improve qwen oauth error handling ([#33](https://github.com/kaitranntt/ccs/issues/33)) ([1c3374f](https://github.com/kaitranntt/ccs/commit/1c3374f6a7e4440e299d49b58808c6454b4547c2)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) # [5.3.0-beta.3](https://github.com/kaitranntt/ccs/compare/v5.3.0-beta.2...v5.3.0-beta.3) (2025-12-01) ### Bug Fixes * **prompt:** improve password input handling with raw mode and buffer support ([bc56d2e](https://github.com/kaitranntt/ccs/commit/bc56d2e135532b2ae443144dd42217b26bcba951)) ### Features * **profile:** add profile command with configuration display ([53d7a15](https://github.com/kaitranntt/ccs/commit/53d7a15c047e760723e051dc0f7be3c0dd42d087)) * **shell-completion:** add --force flag and fix zsh profile coloring ([7faed1d](https://github.com/kaitranntt/ccs/commit/7faed1d84ba29ba02bf687bae5b3458617512e67)) ## [5.2.1](https://github.com/kaitranntt/ccs/compare/v5.2.0...v5.2.1) (2025-12-01) ### Bug Fixes * **cliproxy:** improve qwen oauth error handling ([#33](https://github.com/kaitranntt/ccs/issues/33)) ([1c3374f](https://github.com/kaitranntt/ccs/commit/1c3374f6a7e4440e299d49b58808c6454b4547c2)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) # [5.3.0-beta.2](https://github.com/kaitranntt/ccs/compare/v5.3.0-beta.1...v5.3.0-beta.2) (2025-12-01) ### Bug Fixes * **cliproxy:** improve qwen oauth error handling ([7e0b0fe](https://github.com/kaitranntt/ccs/commit/7e0b0feca8ce2ed5d505c5bf6c84e54c6df8839e)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) # [5.3.0-beta.1](https://github.com/kaitranntt/ccs/compare/v5.2.0...v5.3.0-beta.1) (2025-12-01) ### Bug Fixes * **cliproxy:** use double-dash flags for cliproxyapi auth ([#24](https://github.com/kaitranntt/ccs/issues/24)) ([4c81f28](https://github.com/kaitranntt/ccs/commit/4c81f28f0b67ef92cf74d0f5c13a5943ff0a7f00)) * **glmt:** handle 401 errors and headers-already-sent exception ([#30](https://github.com/kaitranntt/ccs/issues/30)) ([c953382](https://github.com/kaitranntt/ccs/commit/c95338232a37981b95b785b47185ce18d6d94b7a)), closes [#26](https://github.com/kaitranntt/ccs/issues/26) ### Features * **cliproxy:** add qwen code oauth provider support ([#31](https://github.com/kaitranntt/ccs/issues/31)) ([a3f1e52](https://github.com/kaitranntt/ccs/commit/a3f1e52ac68600ba0806d67aacceb6477ffa3543)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * **cliproxy:** auto-update cliproxyapi to latest release on startup ([8873ccd](https://github.com/kaitranntt/ccs/commit/8873ccd981679e8acff8965accdc22215c6e4aa2)) # [5.2.0](https://github.com/kaitranntt/ccs/compare/v5.1.1...v5.2.0) (2025-12-01) ### Features * **release:** trigger v5.2.0 release ([7b65374](https://github.com/kaitranntt/ccs/commit/7b65374100196562a4f83705c8626fc7e6bb35d6)) ## [5.1.1](https://github.com/kaitranntt/ccs/compare/v5.1.0...v5.1.1) (2025-12-01) ### Bug Fixes * **cliproxy:** use double-dash flags for cliproxyapi auth ([9489884](https://github.com/kaitranntt/ccs/commit/94898848ea4533dcfc142e1b6c9bf939ba655537)) ## [5.1.1-beta.1](https://github.com/kaitranntt/ccs/compare/v5.1.0...v5.1.1-beta.1) (2025-12-01) ### Bug Fixes * **cliproxy:** use double-dash flags for cliproxyapi auth ([#24](https://github.com/kaitranntt/ccs/issues/24)) ([4c81f28](https://github.com/kaitranntt/ccs/commit/4c81f28f0b67ef92cf74d0f5c13a5943ff0a7f00)) # [5.1.0](https://github.com/kaitranntt/ccs/compare/v5.0.2...v5.1.0) (2025-12-01) ### Bug Fixes * **ci:** use pat token to bypass branch protection ([04af7e7](https://github.com/kaitranntt/ccs/commit/04af7e7c09edbc4207f332e7a613d92df1f2fea1)) ### Features * **release:** implement semantic versioning automation with conventional commits ([d3d9637](https://github.com/kaitranntt/ccs/commit/d3d96371def7b5b44d6133ad50d86c934cdf1ad4)) # Changelog Format: [Keep a Changelog](https://keepachangelog.com/) ## [5.0.0] - 2025-11-28 ### Added - **CLIProxy OAuth Profiles**: Three new zero-config profiles powered by CLIProxyAPI - `ccs gemini` - Google Gemini via OAuth (zero config) - `ccs codex` - OpenAI Codex via OAuth (zero config) - `ccs agy` - Antigravity (AGY) via OAuth (zero config) - **Download-on-Demand Binary**: CLIProxyAPI binary (~15MB) downloads automatically on first use - Supports 6 platforms: darwin/linux/windows × amd64/arm64 - SHA256 checksum verification - 3x retry with exponential backoff - No npm package size impact - **OAuth Authentication System** (`src/cliproxy/auth-handler.ts`): - Browser-based OAuth flow with automatic token storage - Headless mode fallback (`ccs gemini --auth --headless`) - Token storage in `~/.ccs/cliproxy-auth//` - 2-minute OAuth timeout protection - **CLIProxy Diagnostics** in `ccs doctor`: - Binary installation status + version - Config file validation - OAuth status per provider (gemini/codex/agy) - Port 8317 availability check - **Enhanced Error Messages** (`src/utils/error-manager.ts`): - OAuth timeout troubleshooting - Port conflict resolution - Binary download failure with manual URL - **New CLIProxy Module** (`src/cliproxy/`): - `binary-manager.ts` - Download, verify, extract binary - `platform-detector.ts` - OS/arch detection for 6 platforms - `cliproxy-executor.ts` - Spawn/kill proxy pattern - `config-generator.ts` - Generate config.yaml per provider - `auth-handler.ts` - OAuth token management - `types.ts` - TypeScript type definitions - `index.ts` - Central exports ### Changed - **Profile Detection**: New priority order 1. CLIProxy profiles (gemini, codex, agy) 2. Settings-based profiles (glm, glmt, kimi) 3. Account-based profiles (work, personal) 4. Default Claude CLI - **Help Text**: Updated with new OAuth profiles (alphabetically sorted) - **Profile Detector**: Added `cliproxy` profile type ### Technical Details - **Binary Version**: CLIProxyAPI v6.5.27 - **Default Port**: 8317 (TCP polling for readiness, no PROXY_READY signal) - **Model Mappings**: - Gemini: gemini-2.0-flash (opus: thinking-exp, haiku: flash-lite) - Codex: gpt-4o (opus: o1, haiku: gpt-4o-mini) - Antigravity: agy (sonnet: agy-pro, haiku: agy-turbo) - **Storage**: - Binary: `~/.ccs/bin/cliproxyapi` - Tokens: `~/.ccs/cliproxy-auth//` - Config: `~/.ccs/cliproxy.config.yaml` ### Migration - **No breaking changes**: All existing profiles (glm, glmt, kimi, accounts) work unchanged - **Zero configuration**: OAuth profiles work out-of-box after browser login - **Backward compatible**: v4.x commands and workflows unchanged --- ## [4.5.0] - 2025-11-27 (Phase 02 Complete) ### Changed - **Modular Command Architecture**: Complete refactoring of command handling system - Main entry point (src/ccs.ts) reduced from 1,071 to 593 lines (**44.6% reduction**) - 6 command handlers extracted to dedicated modules in `src/commands/` - Enhanced maintainability through single responsibility principle - Command handlers can now be developed and tested independently ### Added - **Modular Command Handlers** (`src/commands/`): - `version-command.ts` (3.0KB) - Version display functionality - `help-command.ts` (4.9KB) - Comprehensive help system - `install-command.ts` (957B) - Installation/uninstallation workflows - `doctor-command.ts` (415B) - System diagnostics - `sync-command.ts` (1.0KB) - Configuration synchronization - `shell-completion-command.ts` (2.1KB) - Shell completion management - **New Utility Modules** (`src/utils/`): - `shell-executor.ts` (1.5KB) - Cross-platform shell command execution - `package-manager-detector.ts` (3.8KB) - Package manager detection (npm, yarn, pnpm, bun) - **TypeScript Type System**: - `src/types/` directory with comprehensive type definitions - Standardized `CommandHandler` interface for all commands - 100% TypeScript coverage across all new modules ### Improved - **Maintainability**: Each command now has focused, dedicated module - **Testing Independence**: Command handlers can be unit tested in isolation - **Development Workflow**: Multiple developers can work on different commands simultaneously - **Code Navigation**: Developers can quickly locate specific command logic - **Future Extension**: New commands can be added without modifying main orchestrator ### Technical Details - **Zero Breaking Changes**: All existing functionality preserved - **Performance**: No degradation, minor improvement due to smaller main file - **Quality Gates**: All Phase 01 ESLint strictness rules maintained - **Type Safety**: Comprehensive TypeScript coverage with zero `any` types - **Interface Consistency**: All commands follow standardized `CommandHandler` interface ## [4.4.0] - 2025-11-23 ### Changed - **BREAKING**: settings.json now shared across profiles via symlinks - Each profile previously had isolated settings.json - Now all profiles share ~/.claude/settings.json - Migration automatic on install (uses ~/.claude/settings.json) - Backups created: `/settings.json.pre-shared-migration` - Rollback: restore backup manually if needed ### Added - Doctor validates settings.json symlink integrity - Sync repairs broken settings.json symlinks - Migration from isolated to shared settings (automatic) ### Fixed - Consistent shared data architecture across all .claude/ items ## [4.3.10] - 2025-11-23 ### Fixed - **Update Cache Issue**: Fixed `ccs update` serving cached package versions instead of fresh downloads - Package manager cache is now automatically cleared before updating - Update now ensures users always receive the latest version from registry ### Technical Details - **Node.js (bin/ccs.js)**: Added cache clearing for npm, yarn, pnpm before update - npm: `npm cache clean --force` - yarn: `yarn cache clean` - pnpm: `pnpm store prune` - bun: No explicit cache clearing needed - **Bash (lib/ccs)**: Added `npm cache clean --force` before npm update - **PowerShell (lib/ccs.ps1)**: Added `npm cache clean --force` before npm update - **Non-blocking**: Update continues even if cache clearing fails (with warning) - **Manual fallback commands**: Updated to include cache clearing step ### Impact - Users no longer need to manually run `npm cache clean --force` before `ccs update` - Resolves issue where update reported success but installed cached/outdated version - Ensures fresh package downloads from npm registry on every update ## [4.3.8] - 2025-11-23 ### Fixed - **ora v9 Compatibility**: Fixed "ora is not a function" errors in `ccs doctor` and installer utilities - Properly handle ora v9+ ES module format when using CommonJS `require()` - All spinner-based operations now work correctly with ora v9.0.0 ### Technical Details - ora v9+ is an ES module, requiring `.default` property access in CommonJS - Updated import: `const oraModule = require('ora'); ora = oraModule.default || oraModule` - Fallback spinner implementation ensures graceful degradation when ora is unavailable - Affects: `bin/management/doctor.js`, `bin/utils/claude-dir-installer.js`, `bin/utils/claude-symlink-manager.js` - Impact: `ccs doctor` command and postinstall scripts now work correctly with latest ora version ## [4.3.7] - 2025-11-23 ### Fixed - **Postinstall Script**: Fixed missing `~/.ccs/.claude/` directory during `npm install` - Made `ora` dependency optional in `ClaudeDirInstaller` and `ClaudeSymlinkManager` - Postinstall script now gracefully handles missing `ora` module during installation - Ensures `.claude/` directory and symlinks are properly created even when `ora` is unavailable ### Technical Details - Root cause: `ora` module not available during `npm install` postinstall execution - Solution: Optional require with fallback to `console.log` when `ora` is unavailable - Affects: `bin/utils/claude-dir-installer.js`, `bin/utils/claude-symlink-manager.js` - Impact: All npm installations now properly create `~/.ccs/.claude/` and CCS symlinks ## [4.3.6] - 2025-11-23 ### Added - **Plugin Support**: Claude Code plugins now shared across all CCS profiles via `~/.ccs/shared/plugins/` - Symlink architecture: `~/.claude/plugins/` ← `~/.ccs/shared/plugins/` ← `instance/plugins/` - Install plugins once, use across GLM, GLMT, Kimi, and all Claude accounts - Cross-platform support with Windows fallback (copy mode) ## [4.3.5] - 2025-11-22 ### Changed - **Deprecated Agent Cleanup**: Removed deprecated `ccs-delegator.md` agent file from installations - Enhanced installation process to automatically clean up obsolete files - Improved `ccs sync` command with migration logic for deprecated components ### Removed - **ccs-delegator.md**: Agent file deprecated in favor of `ccs-delegation` skill (v4.3.2) - Clean up of package copy in `~/.ccs/.claude/agents/ccs-delegator.md` - Clean up of user symlink in `~/.claude/agents/ccs-delegator.md` ### Added - Automatic migration marker system for tracking cleanup completion - Intelligent backup system for user-modified deprecated files - Version-aware migration logic following existing patterns ### Migration - **Automatic**: Users upgrading from v4.3.2 or earlier will have deprecated files cleaned up automatically - **Manual**: Run `ccs sync` to trigger cleanup manually - **Backups**: User-modified files are backed up with timestamp before removal - **Idempotent**: Cleanup is safe to run multiple times ### Technical Details - Integrated into `npm postinstall` script for automatic cleanup on package updates - Added to `ccs sync` command for manual cleanup operations - Uses migration markers in `~/.ccs/.migrations/v435-delegator-cleanup` - Follows existing SharedManager migration patterns for consistency ## [4.3.4] - 2025-11-22 ### Fixed - **CCS Update Command**: Enhanced `ccs update` to support multiple package managers - Added automatic detection for npm, yarn, pnpm, and bun package managers - Update commands now use the appropriate package manager automatically - Improved installation method detection for more reliable updates ## [4.3.3] - 2025-11-21 ### ⚠️ BREAKING CHANGES - **CCS Delegation Commands Consolidated**: Replaced 4 hardcoded commands with 2 intelligent commands - Old: `/ccs:glm`, `/ccs:kimi`, `/ccs:glm:continue`, `/ccs:kimi:continue` - New: `/ccs` (auto-selects profile), `/ccs:continue` (auto-detects profile) - Override with flags: `/ccs --glm "task"`, `/ccs --kimi "task"` ### Changed - Updated `--help` text across Node.js, Bash, and PowerShell implementations - Updated delegation examples in README.md and workflow documentation - Fixed CCS Doctor health checks to validate new command files - Updated user configuration templates with new command syntax ### Added - Intelligent profile selection based on task analysis (reasoning, long-context, cost-optimized) - Support for custom profiles without creating new commands - Enhanced session management with automatic profile detection ### Migration | Old Command | New Command | |-------------|-------------| | `/ccs:glm "task"` | `/ccs "task"` (or `/ccs --glm "task"`) | | `/ccs:kimi "task"` | `/ccs "task"` (or `/ccs --kimi "task"`) | | `/ccs:glm:continue` | `/ccs:continue` | | `/ccs:kimi:continue` | `/ccs:continue` | --- ## [4.1.5] - 2025-11-17 ### Added - **Sync command** (`ccs sync`) for updating delegation commands and skills - **Short flag** `-sc` for `--shell-completion` command - **Enhanced version display** with delegation status information ### Changed - **Auth help text** now emphasizes concurrent account usage across all platforms - **Help text standardization** ensures consistent messaging across bash, PowerShell, and Node.js - **Description text** emphasizes running different Claude CLI sessions concurrently - **GitHub documentation links** updated to stable permalinks - **Shell completions** updated to include sync command and -sc flag ### Fixed - **Inconsistent help text** across different platform implementations - **Outdated description** text to emphasize concurrent sessions over specific examples --- ## [4.1.4] - 2025-11-17 ### Fixed - **Shell completion ENOTDIR errors** when parent path conflicts with existing files - **Zsh completion syntax errors** with _alternative and _describe functions - **Reversed color application** in zsh completion (commands vs descriptions) ### Added - **Enhanced shell completion UI/UX** with descriptions and grouping - **Color-coded completions** for zsh and fish shells - **Custom settings profile support** in shell completions - **Improved completion formatting** with section headers and separators ### Changed - **Generalized help text** removed specific account examples for broader applicability - **Delegation help section** clarified context and removed non-existent commands - **Shell completion organization** grouped by categories (commands, model profiles, account profiles) --- ## [4.1.3] - 2025-11-17 ### Fixed - **Doctor command delegation check false positive** - Fixed `ccs doctor` incorrectly checking for delegation commands in `~/.ccs/shared/commands/ccs/` instead of `~/.ccs/.claude/commands/ccs/` - Removed check for non-existent `create.md` file - Now correctly detects installed delegation commands (glm.md, kimi.md) after npm install - Users will no longer see "[!] Delegation commands not found" warning when delegation is properly installed --- ## [4.1.2] - 2025-11-16 ### Fixed - **Kimi API 401 errors** caused by deprecated model fields - Removed `ANTHROPIC_MODEL`, `ANTHROPIC_SMALL_FAST_MODEL`, `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` from Kimi settings - Kimi API update now rejects requests with these fields (previously optional, now break authentication) - Automatic migration removes deprecated fields from existing `~/.ccs/kimi.settings.json` - Preserves user API keys and custom settings during migration - Updated `config/base-kimi.settings.json` template - Users experiencing 401 errors will be automatically fixed on next install/update ### Changed - Kimi settings now minimal: only `ANTHROPIC_BASE_URL` and `ANTHROPIC_AUTH_TOKEN` required --- ## [4.1.1] - 2025-11-16 ### Fixed - **npm install fails to copy .claude/ directory** to `~/.ccs/.claude/` - Error: "[!] CCS .claude/ directory not found, skipping symlink installation" - Created `bin/utils/claude-dir-installer.js` utility to copy `.claude/` from package - Updated `scripts/postinstall.js` to copy `.claude/` before creating symlinks - Updated `ccs update` command to re-install `.claude/` directory - Supports Node.js 14+ with fallback for versions < 16.7.0 ### Added - `ClaudeDirInstaller` utility class for managing `.claude/` directory installation --- ## [4.1.0] - 2025-11-16 ### Added - **Selective .claude/ directory symlinking** for shared resources across profiles - `claude-symlink-manager.js` utility for managing symlinks with Windows fallback - Enhanced `ccs doctor` command to verify .claude/ directory health - Postinstall script for automatic .claude/ directory setup - **Stream-JSON output** for real-time delegation visibility (`--output-format stream-json --verbose`) - **Real-time tool tracking** with verbose context (shows file paths, commands, patterns) - **Smart slash command detection** (preserves /cook, /plan, /commit in delegated prompts) - **Signal handling** (Ctrl+C/Esc kills delegated child processes, prevents orphans) - **Comprehensive tool support** (13 Claude Code tools: Bash, Read, Write, Edit, Glob, Grep, NotebookEdit, NotebookRead, SlashCommand, Task, TodoWrite, WebFetch, WebSearch) - **Active task display** for TodoWrite (shows current task instead of count) - Documentation: Stream-JSON workflow diagrams ### Changed - Installers now create selective symlinks (commands/, skills/, agents/) instead of full directory copies - Windows support: Falls back to directory copying when symlinks unavailable - Profile-specific files (settings.json, sessions/, todolists/, logs/) remain isolated - Improved README with symlink architecture documentation - **BREAKING**: Delegation now uses stream-json instead of single JSON blob - **Time-based limits** replace turn-based limits (10min default timeout vs 20 max-turns) - **Graceful termination** with SIGTERM → SIGKILL fallback (2s grace period) - Removed `--max-turns` flag (deprecated, use timeout instead) - Simplified slash command docs (removed over-prescriptive instructions) - Internal tools (TodoWrite, Skill) now show meaningful progress ### Fixed - Duplicate .claude/ resources across multiple profiles - Installer logic now handles symlink creation during setup - Orphaned `claude -p` processes after parent termination - Slash commands broken by IMPORTANT safety prefix - Slash commands detected as file paths (/home vs /cook) - Stream-json requires `--verbose` flag with `-p` - Tool output spam (filtered internal tools, show active tasks) ### Removed - IMPORTANT safety prefix (broke slash command positioning) - Outdated test files (json-output.test.js, max-turns.test.js) - TTY detection (now shows progress unless CCS_QUIET=1) --- ## [3.5.0] - 2025-11-15 ### Added - Shell auto-completion (bash, zsh, PowerShell, Fish) - `--shell-completion` command (auto-installs for detected shell with proper comment markers, cross-platform) - Error codes (E101-E901) with documentation at docs/errors/ - Fuzzy matching "Did you mean?" suggestions (Levenshtein distance) - Progress indicators (doctor command: [n/9] counter, GLMT proxy startup spinner) - Interactive confirmation prompts for destructive operations - `--yes/-y` flag for automation (skips confirmations) - `--json` flag for auth commands (list, show) - Impact display (session count, paths) before profile deletion - Comprehensive test suite (15 tests, 100% pass rate) ### Changed - Error boxes: Unicode (╔═╗) → ASCII (===) for cross-platform compatibility - JSON output uses CCS version (3.5.0) instead of separate schema version - Help text includes EXAMPLES section across all platforms - Test suite properly counts test cases (not assertions) ### Fixed - Standalone installer dependency handling (now downloads error-codes, progress-indicator, prompt files) - `--yes` flag bug (returned false instead of true, preventing auto-confirmation) - Help text consistency between Node.js and bash versions (added Uninstall section to bash) - Test pass rate calculation (now excludes skipped tests from denominator) - Help section comparison (locale-specific sort order) --- ## [3.4.6] - 2025-11-12 ### Added - GLMT ReasoningEnforcer: Prompt injection + API params hybrid (4 effort levels, always enabled) ### Changed - Added GLMT production warnings (NOT PRODUCTION READY) - Streamlined CLAUDE.md (-337 lines) - Simplified GLMT controls: 4 mechanisms → 3 automatic - Locale + reasoning enforcement now always enabled ### Removed - GLMT Budget Calculator mechanism (consolidated into automatic controls) - Deprecated GLMT environment variables (`CCS_GLMT_FORCE_ENGLISH`, `CCS_GLMT_THINKING_BUDGET`, `CCS_GLMT_STREAMING`) - Outdated test scenarios for removed environment variables --- ## [3.4.5] - 2025-11-11 ### Fixed - Thinking block signature timing race (blocks appeared blank in Claude CLI UI) - Content verification guard in `_createSignatureDeltaEvent()` returns null if empty ### Changed - Consolidated debug flags: `CCS_DEBUG_LOG`, `CCS_GLMT_DEBUG` → `CCS_DEBUG` only ### Added - 6 regression tests for thinking signature race (`test-thinking-signature-race.js`) --- ## [3.4.4] - 2025-11-11 ### Fixed - Postinstall symlink creation (fixed require path to shared-manager.js) --- ## [3.4.3] - 2025-11-11 ### Added - Keyword thinking control: `think` < `think hard` < `think harder` < `ultrathink` - Streaming auto-fallback on error ### Changed - YAGNI/KISS: Removed budget-calculator.js, task-classifier.js (-272 LOC) - `CCS_DEBUG_LOG` → `CCS_DEBUG` (backward compatible) ### Removed - `CCS_GLMT_THINKING_BUDGET`, `CCS_GLMT_STREAMING`, `CCS_GLMT_FORCE_ENGLISH` env vars ### Fixed - GLMT proxy path (glmt/glmt-proxy.js) - `ultrathink` effort: `high` → `max` --- ## [3.4.2] - 2025-11-11 ### Changed - Version bump for npm CI workaround --- ## [3.4.1] - 2025-11-11 ### Added - GLMT loop prevention (locale enforcer, budget calculator, task classifier, loop detector) - Env vars: `CCS_GLMT_FORCE_ENGLISH`, `CCS_GLMT_THINKING_BUDGET` - 110 GLMT tests (all passing) ### Changed - Directory structure: bin/{glmt,auth,management,utils}, tests/{unit,integration} - Token savings: 50-80% for execution tasks ### Fixed - Thinking parameter processing from Claude CLI - GLMT tool support (MCP tools, function calling) - Unbounded planning loops (20+ min → <2 min) - Chinese output issues --- ## [3.4.0] - 2025-11-11 ### Added - GLMT streaming (5-20x faster TTFB: <500ms vs 2-10s) - SSEParser, DeltaAccumulator classes - Security limits (1MB SSE, 10MB content, 100 blocks) --- ## [3.3.0] - 2025-11-11 ### Added - Debug mode: `CCS_DEBUG_LOG=1` - Verbose flag: `ccs glmt --verbose` - GLMT config defaults --- ## [3.2.0] - 2025-11-10 ### Changed - **BREAKING**: Symlink-based shared data (was copy-based) - ~/.ccs/shared/ → ~/.claude/ symlinks - 60% faster installs --- ## [3.1.1] - 2025-11-10 ### Fixed - Migration now runs during install (not on first `ccs` execution) --- ## [3.1.0] - 2025-11-10 ### Added - Shared data architecture (commands/skills/agents shared across profiles) --- ## [3.0.2] - 2025-11-10 ### Fixed - Profile creation no longer auto-sets as default - Help text simplified (40% shorter) --- ## [3.0.1] - 2025-11-10 ### Added - Auto-recovery system for missing/corrupted configs - `ccs doctor` health check command - ErrorManager class --- ## [3.0.0] - 2025-11-09 ### Added - **Multi-account switching**: Run multiple Claude accounts concurrently - Auth commands: create, list, show, remove, default - Profile isolation (sessions, todos, logs per profile) ### BREAKING - Removed v2.x vault encryption - Login-per-profile model --- ## [2.5.1] - 2025-11-07 ### Added - Kimi `ANTHROPIC_SMALL_FAST_MODEL` support ## [2.5.0] - 2025-11-07 ### Added - Kimi integration ## [2.4.9] - 2025-11-05 ### Fixed - Node.js DEP0190 warning ## [2.4.8] - 2025-11-05 ### Fixed - Deprecation warning (platform-specific shell) ## [2.4.7] - 2025-11-05 ### Fixed - Windows spawn EINVAL error ## [2.4.6] - 2025-11-05 ### Fixed - Color detection, TTY handling ## [2.4.5] - 2025-11-05 ### Added - Performance benchmarks (npm vs shell) ## [2.4.3] - 2025-11-04 ### Fixed - **CRITICAL**: DEP0190 command injection vulnerability ## [2.4.2] - 2025-11-04 ### Changed - Version bump for republish ## [2.4.1] - 2025-11-04 ### Fixed - **CRITICAL**: Windows PATH detection - PowerShell terminal termination ## [2.4.0] - 2025-11-04 ### Added - npm package support ### BREAKING - Executables moved to lib/ ## [2.3.1] - 2025-11-04 ### Fixed - PowerShell syntax errors ## [2.3.0] - 2025-11-04 ### Added - Custom Claude CLI path: `CCS_CLAUDE_PATH` ## [2.2.3] - 2025-11-03 ### Added - `ccs --uninstall` command ## [2.2.2] - 2025-11-03 ### Fixed - `ccs --install` via symlinks ## [2.2.1] - 2025-11-03 ### Changed - Hardcoded versions (no VERSION file) ## [2.2.0] - 2025-11-03 ### Added - Auto PATH configuration - Terminal colors (NO_COLOR support) ### Changed - Unified install: ~/.local/bin (Unix) ### Fixed - **CRITICAL**: Shell injection vulnerability ## [2.1.0] - 2025-11-02 ### Changed - Windows uses --settings flag (27% code reduction) ## [2.0.0] - 2025-11-02 ### BREAKING - Removed `ccs son` profile ### Added - Config templates, installers/ folder ### Fixed - **CRITICAL**: PowerShell env var crash ## [1.1.0] - 2025-11-01 ### Added - Git worktrees support ## [1.0.0] - 2025-10-31 ### Added - Initial release