From 2e5b1f212abe5611c164cc84388002686175bc8b Mon Sep 17 00:00:00 2001 From: kaitranntt Date: Thu, 4 Dec 2025 00:01:52 -0500 Subject: [PATCH] fix(changelog): restore full changelog history from main --- CHANGELOG.md | 666 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 652 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5da2f5e..099d37f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,3 @@ -## [5.4.4-dev.1](https://github.com/kaitranntt/ccs/compare/v5.4.3...v5.4.4-dev.1) (2025-12-04) - - -### Bug Fixes - -* **tests:** migrate test suite from mocha to bun test runner ([bd46c8d](https://github.com/kaitranntt/ccs/commit/bd46c8de1237e3a76c774b00a1c9e026f4c0cd4b)) - -## [5.4.3-dev.1](https://github.com/kaitranntt/ccs/compare/v5.4.3...v5.4.3-dev.1) (2025-12-04) - - -### Bug Fixes - -* **tests:** migrate test suite from mocha to bun test runner ([bd46c8d](https://github.com/kaitranntt/ccs/commit/bd46c8de1237e3a76c774b00a1c9e026f4c0cd4b)) - ## [5.4.3](https://github.com/kaitranntt/ccs/compare/v5.4.2...v5.4.3) (2025-12-03) @@ -22,6 +8,14 @@ ## [5.4.2](https://github.com/kaitranntt/ccs/compare/v5.4.1...v5.4.2) (2025-12-03) +### Bug Fixes + +* **merge:** resolve conflicts between dev and main ([8347ea6](https://github.com/kaitranntt/ccs/commit/8347ea64c6b919a79f5ab63c398b6c36f012ca2d)) +* **sync:** implement copy fallback for windows when symlinks unavailable ([6b3f93a](https://github.com/kaitranntt/ccs/commit/6b3f93a80a0232e8c964d73e51aa0afb0768b00f)), closes [#45](https://github.com/kaitranntt/ccs/issues/45) + +## [5.4.2-dev.1](https://github.com/kaitranntt/ccs/compare/v5.4.1...v5.4.2-dev.1) (2025-12-03) + + ### Bug Fixes * **merge:** resolve conflicts between dev and main ([8347ea6](https://github.com/kaitranntt/ccs/commit/8347ea64c6b919a79f5ab63c398b6c36f012ca2d)) @@ -36,6 +30,14 @@ * **doctor:** resolve windows claude cli detection failure ([cfe9ba0](https://github.com/kaitranntt/ccs/commit/cfe9ba05a4351302fbb330ca00b6025cb65a8f20)), closes [#41](https://github.com/kaitranntt/ccs/issues/41) * **sync:** implement copy fallback for windows when symlinks unavailable ([6b3f93a](https://github.com/kaitranntt/ccs/commit/6b3f93a80a0232e8c964d73e51aa0afb0768b00f)), closes [#45](https://github.com/kaitranntt/ccs/issues/45) +## [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) @@ -50,6 +52,45 @@ * **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) @@ -70,6 +111,26 @@ * **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) @@ -77,6 +138,27 @@ * **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) @@ -91,6 +173,13 @@ * **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) @@ -215,3 +304,552 @@ Format: [Keep a Changelog](https://keepachangelog.com/) - **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