Commit Graph
1792 Commits
Author SHA1 Message Date
kaitranntt c3f0c39e51 chore: bump version to 3.4.2 2025-11-11 15:40:24 -05:00
kaitranntt 5fae92ac07 feat(glmt): add streaming with real-time thinking blocks
- reorganize bin/ into auth/, glmt/, management/, utils/
- add budget calculator and locale enforcer
- enhance test coverage with unit/integration separation
2025-11-11 15:39:00 -05:00
kaitranntt 80f9cc644e feat: add GLMT streaming with real-time thinking blocks
- SSEParser/DeltaAccumulator for streaming state

- TTFB 5-20x faster (<500ms vs 2-10s)

- DoS protection: buffer limits, 120s timeout

- 51/51 tests passing (+25 streaming tests)
2025-11-11 03:47:30 -05:00
kaitranntt 657f99bfe8 feat: add GLMT proxy and transformer tools
- Add GLMT proxy server for GLM model routing
- Add GLMT transformer for output format conversion
- Update CLI with new proxy and transformer commands
- Add comprehensive test suite for new functionality
- Update documentation and architecture guides
- Bump version and update changelog
2025-11-11 03:08:56 -05:00
kaitranntt daf075dc69 feat(core)!: refactor to symlink-based shared data architecture (v3.2.0)
BREAKING CHANGE: Shared data architecture refactored from copy-based to symlink-based.

Architecture Change:

- OLD: ~/.claude/ → [COPY 500ms] → ~/.ccs/shared/ → [SYMLINK] → instance/

- NEW: ~/.claude/ → [SYMLINK <1ms] → ~/.ccs/shared/ → [SYMLINK] → instance/

Performance Improvements:

- Install time: 500ms → 100ms (60% faster)

- Symlink creation: <1ms per directory (500x faster than copy)

- Zero data duplication between profiles

- Live updates: instant propagation across all profiles

Implementation Changes:

- bin/shared-manager.js: Added circular symlink detection, v3.1.1→v3.2.0 migration

- installers/install.sh: Replaced copy logic with symlink creation

- installers/install.ps1: Replaced copy logic with symlink creation + Developer Mode check

- scripts/postinstall.js: Updated to call migrateFromV311()

- tests/: Added symlink chain validation tests (bash + PowerShell)

Migration:

- Automatic upgrade from v3.1.1

- User customizations preserved in ~/.claude/

- No manual action required

Testing:

- All integration tests passed (6/6)

- Symlink chain validated on Linux

- Migration with data preservation validated

- Windows fallback logic preserved for non-Developer Mode
2025-11-10 21:57:44 -05:00
kaitranntt 70471af1f8 fix(migration): run migration during install, not on first execution (v3.1.1)
Fixed:

- Migration now runs during installation across all methods (npm, bash, PowerShell)

- Guarantees ~/.ccs/shared/ populated immediately with ~/.claude/ content

- Users no longer need to run ccs command to trigger migration

Changed:

- Refactored SharedManager with _needsMigration() and _performMigration() methods

- _copyDirectory() returns {copied, skipped} stats and preserves existing files

- Shows detailed migration output: '[OK] Migrated 5 commands, 19 skills'

- Removed lazy migration from bin/ccs.js, lib/ccs, lib/ccs.ps1

Implementation:

- npm: Migration in scripts/postinstall.js

- bash: Migration in installers/install.sh (migrate_shared_data function)

- PowerShell: Migration in installers/install.ps1 (Invoke-SharedDataMigration)

- Fixed arithmetic expansion with set -e (changed ((var++)) to var=$((var + 1)))

Cross-platform parity maintained across all installation methods.
2025-11-10 21:05:55 -05:00
kaitranntt d925dfc169 feat(shared): implement shared data architecture (v3.1.0)
Phase 1: Multi-profile shared data via symlinks

Added:

- SharedManager class for symlink orchestration (bin/shared-manager.js)

- Auto-migration from ~/.claude/ to ~/.ccs/shared/ on first run

- Shared directories: commands/, skills/, agents/

- Windows fallback: copies dirs if symlinks fail

Fixed:

- Migration logic now detects empty directories

- Previously skipped migration when postinstall created empty dirs

- Now properly copies from ~/.claude/ when shared dirs are empty

Changed:

- Instance initialization symlinks to shared dirs instead of copying

- Postinstall creates ~/.ccs/shared/ structure automatically

- All implementations (Node.js, bash, PowerShell) updated for consistency

- Help text includes agents/ in shared data section

Technical:

- Profile-specific data remains isolated (settings, sessions, todolists, logs)

- Migration is idempotent: safe to run multiple times

- Cross-platform symlink support with graceful fallback

Closes #4
2025-11-10 20:45:21 -05:00
kaitranntt df549ddf4b docs: add changelog entries for v3.0.0, v3.0.1, and v3.0.2 2025-11-10 18:07:48 -05:00
kaitranntt 5428773e3d fix: improve default profile behavior and simplify help text (v3.0.2)
This release fixes default profile behavior and streamlines help output.

Breaking Changes:
- Profile creation NO LONGER auto-sets as default
- Users must explicitly run `ccs auth default <profile>` to set default
- Without explicit default, `ccs` uses implicit default from ~/.claude/

Auth Default Behavior:
- Removed auto-set default logic in profile-registry.js
- Removed auto-set default in bash register_profile() function
- Removed auto-set default in PowerShell Register-Profile function
- Implicit 'default' profile always exists (uses ~/.claude/)
- Enhanced success messages guide users to set explicit default
- Updated auth help with examples and note about default behavior

Help Text Simplification:
- Removed lengthy Examples section from main help (~40% shorter)
- Condensed Account Management section to `ccs auth --help`
- Kept detailed examples in `ccs auth --help` where relevant
- Consistent across npm, bash, and PowerShell implementations

Files Changed:
- bin/profile-registry.js: Removed auto-default logic
- bin/auth-commands.js: Updated help and success messages
- bin/ccs.js: Simplified main help text
- lib/ccs: Fixed bash implementation + simplified help
- lib/ccs.ps1: Fixed PowerShell implementation + simplified help
- VERSION, package.json, installers/*: Version bump to 3.0.2

Fixes #TBD
2025-11-10 18:05:49 -05:00
kaitranntt f65b87c123 feat: implement v3.0.1 - fix silent postinstall failures with auto-recovery
- Add auto-recovery mechanisms for missing/corrupted configuration files
- Implement comprehensive health check command (`ccs doctor`)
- Enhance error messages with context-aware diagnostics and recovery commands
- Fix silent postinstall failures - now exits with proper error codes
- Add RecoveryManager class for automatic config restoration
- Add ErrorManager class for structured, helpful error messages
- Update postinstall script to validate created files and auto-create ~/.claude/settings.json
- Add doctor command support to bash and npm implementations
- Implement atomic file operations to prevent corruption
- Add comprehensive testing scenarios and validation

Fixes critical issue where npm install succeeded but CCS failed on first run.
Enhances user experience with automatic recovery and clear error guidance.

BREAKING CHANGE: Postinstall now exits with error code 1 on critical failures
2025-11-10 17:39:17 -05:00
Tam Nhu (Kai) TranandGitHub f034c25a61 feat: implement native multi-account switching with isolated instances (#3)
* feat: implement native multi-account switching with isolated instances

Add account-based profile management system that enables users to run
multiple Claude accounts concurrently with complete isolation.

Key features:
- Profile registry (~/.ccs/profiles.json) tracks account profiles
- Instance isolation (~/.ccs/instances/<profile>/) for each account
- Auth commands: create, list, show, remove, default
- Backward compatible with settings-based profiles (GLM, Kimi)
- Auto-copies global .claude configs to new instances

Implementation:
- Phase 1: Profile detection logic (account vs settings-based)
- Phase 2: Instance management (initialization, validation)
- Phase 3: Auth CLI commands
- Phase 4: Profile registry CRUD operations
- Phase 5: Execution routing based on profile type

Both lib/ccs (bash) and lib/ccs.ps1 (PowerShell) updated for
cross-platform support.

* fix(ci): add pull_request trigger to satisfy branch protection

The branch protection rule requires "Deploy ccs-installer to CloudFlare"
status check to pass, but the workflow only ran on push to main branch.
This caused PRs to wait indefinitely for a status that never reported.

Changes:
- Add pull_request trigger with same path filters
- Split deployment into conditional steps:
  - PR mode: dry-run validation only (--dry-run flag)
  - Production: actual deployment (push to main only)
- Keeps same job name to satisfy branch protection requirement

Security:
- No deployment from PR branches (dry-run only)
- Production deploy only when push to main AND ref check
- Secrets used safely in both contexts

This fixes PR #3 which was stuck waiting for status.

* fix(ci): remove path filter from pull_request trigger

The path filter prevented workflow from running on PRs that don't
modify worker/installer files, causing required status check to
never report. This blocked PR #3 indefinitely.

Changes:
- Remove paths filter from pull_request trigger
- Keep paths filter on push to main (optimize deployments)
- Workflow now runs on ALL PRs to satisfy branch protection

Trade-off:
- PRs changing non-worker files will trigger unnecessary dry-run
- But this ensures required status check always reports
- Small cost for reliability and simpler configuration

Alternatives considered:
- Path-aware required checks: Not supported by GitHub
- Remove required check: Loses CI validation
- Add all paths to filter: Makes config brittle
2025-11-09 18:26:49 -05:00
kaitranntt 9aa2f96e6a docs(contributing): update guide for v3.0 and npm package 2025-11-09 17:19:16 -05:00
kaitranntt 96701a4992 docs: streamline READMEs and update project documentation
- Streamline Features section (65% shorter, bullet points only)
- Remove redundant 'Why CCS' table column
- Fix 'Sub-Account' → 'Multiple Accounts' terminology
- Update tagline to highlight v3.0 multi-account capabilities
- Merge duplicate sections (Concurrent Sessions)
- Remove unrealistic usage examples
- Fix weird formatting and stray content
- Streamline Uninstall section with package managers grouped
- Create root-level CONTRIBUTING.md (GitHub standard)
- Remove duplicate docs/en/contributing.md and docs/vi/contributing.vi.md
- Update all README links to point to root CONTRIBUTING.md
- Refactor CLAUDE.md for v3.0 architecture
  - Update project overview to highlight multiple Claude accounts
  - Add v3.0 technical details (CLAUDE_CONFIG_DIR, profiles.json, instances/)
  - Remove redundant high-level flow (now in README)
  - Add Node.js code standards
  - Document two profile types (settings vs account-based)
  - Update testing requirements for v3.0

Total reduction: 46 lines across all READMEs
Cross-language consistency: EN/VI/JA fully synchronized
2025-11-09 17:11:58 -05:00
Tam Nhu (Kai) TranandGitHub 7c93cadf95 docs: add Japanese README, pull request #2 from eltociear/add-ja-doc 2025-11-09 15:01:09 -05:00
kaitranntt d61a2cf59f chore: bump version to 3.0.0 2025-11-09 05:44:43 -05:00
kaitranntt 00cc50428f Merge feat/switch-account: v3.0.0 simplification 2025-11-09 05:43:25 -05:00
kaitranntt 7b25d5d437 feat!: v3.0.0 simplification - login-per-profile model
BREAKING CHANGE: Remove vault/encryption, implement login-per-profile

- Remove vault-manager.js, credential-reader.js, credential-injector.js (~642 lines)
- Implement login-per-profile (no credential copying)
- Rename 'auth save' to 'auth create'
- Fix profile schema (remove vault/subscription/email fields)
- Remove macOS credential switcher (CLAUDE_CONFIG_DIR works everywhere)
- Auto-create missing instance directories
- Maintain GLM/Kimi backward compatibility (settings profiles)

Performance: 50-120ms faster (no decryption overhead)
Code reduction: ~600 lines deleted (40% simpler)

Migration required: Users must recreate profiles with 'ccs auth create'
2025-11-09 05:43:09 -05:00
Ikko Ashimine 014ec48fdd docs: add Japanese README 2025-11-09 16:29:43 +09:00
kaitranntt 5a0209e346 fix(kimi): add ANTHROPIC_SMALL_FAST_MODEL support
- Add ANTHROPIC_SMALL_FAST_MODEL to all Kimi configuration templates
- Update installation scripts (npm, Unix, Windows) to include SMALL_FAST_MODEL
- Ensure Kimi API configuration matches official documentation format
- Bump version to 2.5.1 with updated changelog

Files updated:
- config/base-kimi.settings.json: Add SMALL_FAST_MODEL
- installers/install.sh: Update Unix template creation
- installers/install.ps1: Update PowerShell template creation
- scripts/postinstall.js: Update npm postinstall script
- All version files: Bump to 2.5.1
2025-11-07 02:08:12 -05:00
kaitranntt 385572dc47 feat(kimi): add Kimi for Coding integration as third LLM provider
- Add kimi profile support alongside existing glm and default profiles
- Create base-kimi.settings.json configuration template
- Update all installation methods (npm, Unix, Windows) to auto-create Kimi settings
- Enhance documentation with Kimi examples and API setup instructions
- Update version to 2.5.0 with comprehensive changelog
- Add Kimi detection logic in install scripts for seamless migration
- Maintain backward compatibility with existing GLM and Claude profiles
2025-11-07 01:45:29 -05:00
kaitranntt be958e992d chore(docs): remove Vietnamese documentation and outdated development files 2025-11-06 07:01:20 -05:00
kaitranntt 50ecb0e46b fix: resolve DEP0190 warning with proper shell argument handling
Use string concatenation (not args array) when shell is needed to avoid
Node.js DEP0190 deprecation warning. Restores previous working approach
with conditional shell usage based on file extension.

Key changes:
- Added escapeShellArg() helper for proper argument escaping
- Conditional shell: only for .cmd/.bat/.ps1 files on Windows
- When shell needed: concatenate args into single escaped string
- When no shell: use array form (faster, no overhead)

Benefits:
- No deprecation warning
- Proper security (escaped arguments)
- Better performance (no shell on Unix or for .exe files)
- Matches previous stable implementation

Version: 2.4.9
2025-11-05 17:38:29 -05:00
kaitranntt 56295fee00 fix: remove Node.js DEP0190 deprecation warning
Use platform-specific shell option (Windows only) instead of shell: true
to avoid deprecation warning in Node.js v22.9.0+.

Changes:
- bin/ccs.js: Change shell: true to shell: process.platform === 'win32'
- CHANGELOG.md: Document fix for v2.4.8
- VERSION: Bump to 2.4.8
- package.json: Bump to 2.4.8

Benefits:
- No deprecation warning on Windows
- Better performance on Unix (no shell overhead)
- Maintains Windows .cmd/.bat compatibility
2025-11-05 17:20:47 -05:00
kaitranntt 9c88c9f66b fix: enable shell for Windows .cmd/.bat execution
Fixes EINVAL spawn error on Windows PowerShell by adding shell: true
to spawn options. Cross-platform compatible (Windows/macOS/Linux).

Changes:
- bin/ccs.js: Add shell: true to execClaude spawn options
- CHANGELOG.md: Document fix for v2.4.7
- VERSION: Bump to 2.4.7
- package.json: Bump to 2.4.7
- installers: Update version references

Security: No injection risk (array-based args, controlled inputs)
Performance: Negligible overhead (~10-20ms)
2025-11-05 17:16:29 -05:00
kaitranntt 2b35bf419f chore: release v2.4.6 with improved npm compatibility and fixes
- fix color detection for cross-platform TTY compatibility
- enhance help command with npm-specific content and npx examples
- remove --install/--uninstall flags pending .claude/ integration testing
- update version across all files and documentation
- preserve implementation code for future release readiness
2025-11-05 16:51:30 -05:00
kaitranntt 966a43f0f9 chore: release v2.4.5 with comprehensive testing and documentation updates 2025-11-05 16:10:03 -05:00
kaitranntt 7e2ee14f6f ci(npm): fix github release parameter name 2025-11-05 11:35:29 -05:00
kaitranntt c32c23e5ed feat: add npm postinstall config creation and restructure test suite
Configuration Management:
- Add npm postinstall script to auto-create ~/.ccs/ directory and config files
- Create config.json with default profile mappings (glm, default)
- Create glm.settings.json template with GLM API configuration
- Ensure idempotent postinstall behavior (safe to run multiple times)
- Fix config-manager.js to handle missing config.json gracefully

Test Suite Restructure:
- Reorganize tests by installation method (native vs npm)
- Move 37 native Unix tests to tests/native/unix/
- Move Windows tests to tests/native/windows/
- Move 39 npm package tests to tests/npm/
- Move shared utilities to tests/shared/
- Add comprehensive test documentation and README
- Implement master orchestrators for backward compatibility
- Increase test coverage from 41 to 83+ tests (100% increase)
- Add mocha framework for npm tests with better assertions

New Test Commands:
- npm run test:npm (npm package tests only)
- npm run test:native (native tests only)
- npm run test:unit (unit tests only)
- npm run test:all (all tests)

Backward Compatibility:
- npm test (runs all tests)
- bash tests/edge-cases.sh (master orchestrator)
- All existing workflows unchanged

Version: 2.4.4
2025-11-05 11:26:01 -05:00
kaitranntt f8e9bb6cfc feat: restructure test suite by installation method
BREAKING CHANGE: Reorganize tests into native/ and npm/ directories

- Move 37 native Unix tests to tests/native/unix/
- Move Windows tests to tests/native/windows/
- Move 39 npm package tests to tests/npm/
- Move shared utilities to tests/shared/
- Add comprehensive test documentation
- Implement master orchestrators for backward compatibility
- Increase test coverage from 41 to 83+ tests (100% increase)
- Add mocha framework for npm tests
- Clean up old test files and directory structure

New test commands:
- npm run test:npm (npm package tests only)
- npm run test:native (native tests only)
- npm run test:unit (unit tests only)
- npm run test:all (all tests)

Backward compatibility maintained:
- npm test (runs all tests)
- bash tests/edge-cases.sh (master orchestrator)
- All existing workflows unchanged
2025-11-05 11:19:46 -05:00
kaitranntt af415af54c fix: finalize CCS test restructure implementation
- Update .gitignore to exclude node_modules and include Node.js patterns
  - Update package.json with final test scripts and structure
  - Complete test restructure: 83 tests across native, npm, and unit suites
  - All tests passing with 100% success rate
  - Backward compatibility maintained
2025-11-05 11:16:16 -05:00
kaitranntt a03b7307aa docs: update tests README.md with final structure
- Document final test organization with accurate test counts
- Update to reflect integration tests moved to npm/ directory
- Include detailed file listings and test counts
- Clarify backward compatibility and migration benefits
- Final counts: 37 native + 39 npm + 7 unit = 83 total tests
2025-11-05 11:16:16 -05:00
kaitranntt 2dc3d4bb26 fix: move npm-specific integration tests to npm/ directory
- Move integration/special-commands.test.js to npm/ since it tests bin/ccs.js
- This test was incorrectly categorized as cross-installation integration
- It specifically tests npm package functionality (bin/ccs.js)
- Remove empty integration/ directory and update package.json
- Final test counts: 37 native + 39 npm + 7 unit = 83 total tests

Clean final structure:
- native/     - Native installation tests only
- npm/        - npm package tests (including integration tests)
- shared/     - Shared utilities, fixtures, and unit tests
2025-11-05 11:16:16 -05:00
kaitranntt 45f80fd807 fix: properly organize shared test resources
- Move fixtures/ and unit/ to shared/ directory where they belong
- These test resources are used by both npm and native installations
- Update package.json test scripts to use new paths
- Fix relative import path in helpers.test.js
- All 46 npm-based tests now passing (7 unit + 5 integration + 34 npm)

Final test structure:
- native/     - Native installation tests only
- npm/        - npm package tests only
- shared/     - Shared utilities, fixtures, and unit tests
- integration/- Cross-installation integration tests
- edge-cases.sh/.ps1 - Master orchestrators
2025-11-05 11:16:16 -05:00
kaitranntt b5bc8d207c fix: clean up tests directory structure
- Remove old test files that were moved to native/ subdirectories
- Clean install-test.sh, install-test.ps1, uninstall-test.sh, uninstall-test.ps1, test-custom-claude-path.ps1
- Tests now properly organized: native/, npm/, shared/, unit/, integration/
- Maintains clean root test directory with only orchestrators and docs
2025-11-05 11:16:16 -05:00
kaitranntt 1b5d3e4825 refactor(tests): Phase 6 - Update package.json with new test scripts
- Add comprehensive npm test scripts using mocha framework
- Add test:npm, test:native, test:unit, test:integration scripts
- Update main test script to run all test suites
- Fix npm test issues - all 34 tests now passing
- Use npx to run mocha without global installation
2025-11-05 11:16:16 -05:00
kaitranntt 03a86160bb refactor(tests): Phase 5 - Update master test runners for backward compatibility
- Convert edge-cases.sh to orchestrator that runs native + npm tests
- Convert edge-cases.ps1 to PowerShell orchestrator
- Maintain backward compatibility - existing commands still work
- Show clear separation of test suites in output
2025-11-05 11:16:16 -05:00
kaitranntt b51acb80c5 refactor(tests): Phase 4 - Create npm tests using Node.js/mocha
- Add postinstall.test.js for npm postinstall behavior (Section 10)
- Add cli.test.js for CLI argument parsing and profile handling
- Add cross-platform.test.js for cross-platform compatibility
- Tests use mocha framework with comprehensive coverage
2025-11-05 11:16:16 -05:00
kaitranntt 66e93fcae1 refactor(tests): Phase 3 - Move native tests to new structure
- Copy Unix and Windows tests to native/ directories
- Update Unix tests to source shared helpers
- Remove Section 10 (npm tests) from native tests
- Update final results to use shared helper functions
2025-11-05 11:16:16 -05:00
kaitranntt 7aa01eb5f7 refactor(tests): Phase 2 - Extract shared utilities 2025-11-05 11:16:16 -05:00
kaitranntt 82453c822f refactor(tests): Phase 1 - Create directory structure and documentation 2025-11-05 11:16:16 -05:00
kaitranntt 101225461f fix: ensure config.json is created after npm installation
- Add npm postinstall script to auto-create ~/.ccs/ directory and config files
- Create config.json with default profile mappings (glm, default)
- Create glm.settings.json template with GLM API configuration
- Add comprehensive Vietnamese documentation for installation, development workflow, testing, and version management
- Update CLAUDE.md with Vietnamese language support references
- Enhance installation and troubleshooting documentation
- Ensure idempotent postinstall behavior (safe to run multiple times)
- Fix config-manager.js to handle missing config.json gracefully
2025-11-05 11:15:36 -05:00
kaitranntt 64925d57ca checkpoint: before test restructure migration 2025-11-05 10:16:18 -05:00
kaitranntt 1a5ae615e3 docs: update npm package name from @kai/ccs to @kaitranntt/ccs 2025-11-04 23:25:36 -05:00
kaitranntt 007996d31a chore: bump version to 2.4.3
- Fix critical Node.js DEP0190 security vulnerability in Windows npm package
- Add proper argument escaping to prevent command injection attacks
- Update all spawn() calls with platform-specific handling
- Add comprehensive changelog entry for security fix
- Maintain full cross-platform compatibility

Security fix resolves deprecation warning and secures Windows installations.
2025-11-04 23:11:47 -05:00
kaitranntt 1b69022bf1 chore: bump version to 2.4.2 for npm republish
Version 2.4.1 was already published to npm before the final Windows fix was complete.
Bumping to 2.4.2 to publish the complete fix.

No code changes - identical to v2.4.1 commit 03dd3cf
2025-11-04 22:49:58 -05:00
kaitranntt 03dd3cf857 fix(windows): resolve npm installation PATH detection on Windows
CRITICAL fix for Windows npm global installation unable to find Claude CLI in PATH,
particularly affecting SSH sessions. Native installation always worked.

Root Causes Identified:
1. Node.js spawn() doesn't use Windows PATHEXT variable
2. where.exe returns no-extension file first, but spawn() needs actual .cmd wrapper
3. .cmd files require shell: true to execute (batch scripts, not binaries)

Solutions Implemented:
1. Pre-resolve absolute path using where.exe/which before spawning
2. Prefer executables with extensions (.exe, .cmd, .bat) on Windows
3. Auto-detect .cmd/.bat/.ps1 files and use shell: true for execution

Changes:
- bin/claude-detector.js: Added execSync PATH resolution with extension preference
- bin/ccs.js: Added null checks + getSpawnOptions() helper for shell: true
- CHANGELOG.md: Comprehensive documentation of Windows-specific fixes

Security:
- Commands are hardcoded literals (no injection risk)
- 5-second timeout on execSync prevents hangs
- shell: true only used for verified .cmd files
- Documented security considerations

Testing:
-  Linux: All tests pass, no regressions
-  Windows SSH (i9-bootcamp): Verified fix resolves EINVAL and PATH errors

Impact: Windows npm users can now use CCS in SSH sessions with npm-installed Claude CLI

Fixes: #windows-npm-path-detection
2025-11-04 22:47:22 -05:00
kaitranntt 80a5200cae fix: terminal termination & simplified detection (v2.4.1)
Critical Fixes:
- Fixed PowerShell terminal closing when using `irm | iex` installation
  * Changed `exit 1` to `return` in install.ps1 (line 229)
  * Terminal now stays open on errors, showing full error messages
  * Affects: Windows PowerShell 5.1+, PowerShell 7+

- Fixed installation download path
  * Changed `/ccs.ps1` to `/lib/ccs.ps1` in install.ps1 (line 223)
  * Resolves standalone installation failures from GitHub

- Simplified Claude CLI detection logic across all platforms
  * Removed complex validation that failed with npm-installed Claude
  * Now trusts system PATH (standard case for users)
  * Falls back to CCS_CLAUDE_PATH for custom installations
  * Fixes: `where.exe claude` shows installed but CCS reports "not found"

Improvements:
- Simplified error messages (removed lengthy search location details)
- Reduced codebase by 332 lines (454 deleted, 122 added)
- npm package size reduced: 17.2 KB → 15.9 KB (7.6% smaller)

Cross-Platform Parity:
- bash (lib/ccs): Simplified detection, removed validate_claude_cli
- PowerShell (lib/ccs.ps1): Simplified detection, removed Test-ClaudeCli
- Node.js (bin/*.js): Simplified detection, removed validateClaudeCli
- All versions now use identical trust-the-PATH approach

Files Modified:
- installers/install.ps1: exit→return, download path fix
- lib/ccs.ps1: simplified detection (165 lines removed)
- lib/ccs: simplified detection (172 lines removed)
- bin/claude-detector.js: simplified detection (86 lines removed)
- bin/ccs.js: removed validation calls (31 lines removed)
- .github/workflows/publish-npm.yml: fixed package name
- CHANGELOG.md: comprehensive v2.4.1 release notes
- VERSION, package.json: bumped to 2.4.1

Testing: bash validated, npm syntax checked, manual Windows testing recommended
2025-11-04 21:54:05 -05:00
kaitranntt f066faca43 fix(install): update download URL path to lib directory 2025-11-04 21:42:31 -05:00
kaitranntt 0a7aa6cb87 fix(install): replace exit 1 with return in standalone install error handling 2025-11-04 21:39:55 -05:00
kaitranntt c17e3e8e3b feat(ccs): complete PowerShell 7+ fixes and Node.js standalone refactor
- Fix PowerShell 7 syntax errors (ampersand, pipe chars, regex patterns)
- Refactor bin/ccs.js to standalone Node.js implementation
- Add modular architecture (helpers, claude-detector, config-manager)
- Create comprehensive test suite with 95% coverage
- Add npm publishing workflow and documentation
- Enhance cross-platform compatibility and error handling
- Achieve 60% performance improvement over shell spawning

Breaking Change: Node.js npm package no longer spawns shell processes
2025-11-04 21:26:13 -05:00