Commit Graph
164 Commits
Author SHA1 Message Date
kaitranntt 04af7e7c09 fix(ci): use pat token to bypass branch protection 2025-11-30 19:12:58 -05:00
kaitranntt d3d96371de feat(release): implement semantic versioning automation with conventional commits
- Add semantic-release for automated npm publishing
- Add commitlint + husky for commit message enforcement
- Add professional branching strategy (beta → main workflow)
- Create .releaserc.json with multi-branch config
- Create sync-version-plugin.cjs for VERSION file sync
- Update release.yml workflow (Node.js 22 required)
- Update CLAUDE.md and CONTRIBUTING.md with new workflow
- Deprecate manual bump-version.sh script
2025-11-30 18:56:02 -05:00
kaitranntt 72c2b08715 refactor: consolidate test structure and remove backup files
- Move ux-integration-test.sh to tests/integration/ directory
- Consolidate tests/fixtures/ into tests/shared/fixtures/
- Fix import paths in cli.test.js and postinstall.test.js
- Remove src/ccs.ts.backup file (958 lines)
- Remove empty src/scripts/ directory
- Remove non-existent test:edge-cases script from package.json
- Update tests/README.md with accurate structure
- Update CONTRIBUTING.md with correct test commands
- Update docs/system-architecture.md with correct test paths
2025-11-30 17:54:04 -05:00
kaitranntt cb7e38d2b1 refactor: replace custom test runner with Node.js assert
- Simplify test files by removing custom TestRunner class
- Use standard Node.js assert module across all unit tests
- Update CLAUDE.md with streamlined development instructions
- Update tests/README.md with current testing approach
- Reduce boilerplate in delegation and GLMT test suites (652 lines removed)
2025-11-30 17:42:52 -05:00
kaitranntt ce9d60d0ca feat(cliproxy): add user-defined CLIProxy variants
Allow users to create custom profile names that route through CLIProxy
providers with different model configurations.

Config example:
{
  "cliproxy": {
    "flash": { "provider": "gemini", "settings": "~/.ccs/gemini-flash.settings.json" },
    "pro": { "provider": "gemini", "settings": "~/.ccs/gemini-pro.settings.json" }
  }
}

Usage: ccs flash "quick task" or ccs pro "complex analysis"

Changes:
- Add CLIProxyVariantConfig types to src/types/config.ts
- Update profile-detector to check config.cliproxy section (Priority 1)
- Pass customSettingsPath through executor chain
- Update getEffectiveEnvVars to support custom settings path
- Document feature in README.md and CLAUDE.md
- Bump version to 5.0.2
2025-11-30 04:02:43 -05:00
kaitranntt 93b38d8550 fix(cliproxy): detect Gemini tokens by JSON type field
Root cause: CLIProxyAPI saves Gemini tokens without prefix
({email}-{projectID}.json), but CCS was only looking for
gemini-* files. Added content-based detection as fallback.

Changes:
- Added PROVIDER_TYPE_VALUES map for JSON type detection
- Added isTokenFileForProvider() for content-based detection
- Updated isAuthenticated() and getAuthStatus() with dual strategy
- Fixed triggerOAuth() success messaging and error hints
- Bumped patch version (3.0.8 -> 3.0.9)
2025-11-29 02:27:57 -05:00
kaitranntt 3c4578d423 docs: add CLIProxy profile type to Architecture section
- Add profile priority order (CLIProxy → settings → account → default)
- Document CLIProxy profile with OAuth auth, port 8317, binary location
- Include model mappings for gemini, codex, agy providers
- Add cliproxy/auth/ to profile-specific data
- Link to CLIProxyAPI GitHub repo
2025-11-28 21:19:56 -05:00
kaitranntt 6ce590e0cf docs(readme): add Zero-Config OAuth Providers section
- Add OAuth section with gemini, codex, agy providers
- Include provider table with accurate model mappings
- Add authentication commands (--auth, --headless, --logout)
- Add OAuth vs API key comparison table
- Add troubleshooting section for timeout, port, binary issues
- Credit CLIProxyAPI as underlying technology
2025-11-28 21:16:55 -05:00
kaitranntt c7efce3432 fix(ci): add Bun setup and build steps to npm publish workflow
The npm publish was failing because:
1. Bun runtime was not installed (prepublishOnly uses bun commands)
2. dist/ was not built before publish

Added:
- oven-sh/setup-bun@v2 action
- bun install step
- bun run build step
2025-11-28 21:00:53 -05:00
Kai (Tam Nhu) TranandGitHub f254e00dea Merge pull request #20 from kaitranntt/feat/typescript-npm-package
feat(cliproxy): OAuth fix, config refactoring, and provider migration
2025-11-28 20:56:08 -05:00
kaitranntt e0df6aa900 fix(cliproxy): ensure provider-specific OAuth token detection
Fixes critical auth bug where checking any JSON file in the auth
directory would incorrectly mark providers as authenticated. Now
validates that token files match provider-specific prefixes (gemini-,
codex-, antigravity-) to prevent OAuth skipping across providers.

Updates help command examples to use placeholder syntax and updates
CHANGELOG to reflect Qwen -> Antigravity provider name change.
2025-11-28 20:53:20 -05:00
kaitranntt e54d401656 feat(cliproxy): refactor config loading and enhance base settings support
- Introduce `BaseConfigLoader` for centralized configuration management
- Add `base-agy.settings.json` configuration
- Refactor `ConfigGenerator` to utilize new loading patterns
- Update help command with improved documentation
- Clean up lint violations file
- Enhance postinstall script
2025-11-28 20:43:11 -05:00
kaitranntt 50d32ca7da feat(cliproxy): add user settings override for model customization
- Add getEffectiveEnvVars() to read user overrides from ~/.ccs/{provider}.settings.json
- Add ensureProviderSettings() to create settings file from defaults on first run
- Update cliproxy-executor to use effective env vars with override support
- Export new functions from index.ts

Users can now customize model mappings by editing ~/.ccs/gemini.settings.json
or ~/.ccs/codex.settings.json. This enables:
- Using gemini-3-pro-preview for all model types
- Easy migration when new models release (gemini 4, 5, etc.)
- User takes full responsibility for custom settings

Default behavior unchanged - works out of box with bundled defaults.
2025-11-28 19:49:28 -05:00
kaitranntt efb966c96d feat(cliproxy): unified config for concurrent gemini/codex usage
- Add unified CLIProxy config supporting all providers concurrently
- Move CLIProxy files to ~/.ccs/cliproxy/ subdirectory
- Use flat auth directory structure for OAuth tokens
- Add provider-specific URL routing via /api/provider/{provider}
- Add base settings templates for gemini and codex
- Fix model registration with proper auth file discovery

Enables users to run `ccs gemini` and `ccs codex` concurrently
without config conflicts.
2025-11-28 19:41:28 -05:00
kaitranntt 5f71eba6f6 feat(cliproxy): add CLIProxyAPI integration for OAuth profiles
Complete integration of CLIProxyAPI for zero-config OAuth profiles.

New profiles:
- ccs gemini: Gemini via OAuth
- ccs chatgpt: ChatGPT via OAuth
- ccs qwen: Qwen via OAuth

Implementation:
- Phase 1: Binary infrastructure (download-on-demand)
- Phase 2: Proxy executor (spawn/kill pattern)
- Phase 3: OAuth integration (browser-based auth)
- Phase 4: Profile registration (routing + help text)
- Phase 5: Diagnostics (doctor command + errors)

Files added:
- src/cliproxy/*.ts (binary-manager, platform-detector, executor, auth-handler, config-generator, types, index)

Files modified:
- src/ccs.ts (CLIProxy routing)
- src/auth/profile-detector.ts (cliproxy profile type)
- src/commands/help-command.ts (new profiles in help)
- src/management/doctor.ts (CLIProxy health checks)
- src/utils/error-manager.ts (OAuth/port/download errors)
- CHANGELOG.md (v5.0.0 release notes)

Tests: 42/42 passed
2025-11-28 16:28:15 -05:00
kaitranntt 296d5661d0 docs: mark native shell installers as deprecated across all documentation
Phase 02 of "Deprecate Native Installers" plan:

Documentation updates (10 files, 3 languages):
- README.md: Mark curl/irm installers as deprecated in collapsed section
- docs/en/installation.md: Add deprecation warnings, emphasize npm as primary
- docs/en/troubleshooting.md: Add FAQ for deprecation warning users see
- docs/en/usage.md: Update uninstall to show npm first, legacy second
- docs/version-management.md: Strikethrough deprecated release checklist items
- docs/ja/README.md: Japanese deprecation notice
- docs/vi/README.md: Vietnamese deprecation notice
- docs/vi/installation.vi.md: Vietnamese installation deprecation
- docs/vi/troubleshooting.vi.md: Vietnamese troubleshooting deprecation
- src/commands/help-command.ts: npm as recommended uninstall method

Code quality:
- Fixed emoji violations: replaced ⚠️ with [!] per CLAUDE.md ASCII-only rule
- Consistent messaging across EN/JA/VI translations
- Updated codebase-summary.md with Phase 02 achievements

All documentation now consistently recommends:
  npm install -g @kaitranntt/ccs

Legacy installers (curl/irm) show deprecation warning and auto-redirect
to npm installation when Node.js is available.
2025-11-28 02:39:48 -05:00
kaitranntt 4c27448f11 feat(installers): deprecate native shell installers, auto-redirect to npm
Phase 01 of "Deprecate Native Installers" plan:

- Add deprecation notice at script start with 3s delay
- Auto-attempt npm install when npm available
- Exit successfully on npm install success
- Graceful fallback to legacy install if npm fails or unavailable
- 100% backward compatibility maintained

Scripts now display:
- Prominent deprecation warning recommending npm
- Auto-redirect to npm installation
- Fallback warning when using legacy path

ASCII-only output per CLAUDE.md standards (no emojis).
2025-11-28 02:20:30 -05:00
kaitranntt 3a79c73c44 refactor(ccs): extract handleUpdateCommand to separate module
Extract handleUpdateCommand logic from ccs.ts into new
src/commands/update-command.ts module. Reduces ccs.ts from 343→92
lines in this refactoring, continuing monolithic file breakdown.
Maintains all 39 passing tests and zero critical issues.
2025-11-27 20:13:31 -05:00
kaitranntt 32ce8cc711 refactor: modularize CCS architecture - Phase 02 complete
Split monolithic ccs.ts (1071 lines) into modular command handlers:

Main file reduction:
- ccs.ts: 1071 → 593 lines (44.6% reduction)
- Maintains routing logic + profile detection + GLMT proxy

New utility modules:
- src/utils/shell-executor.ts: Cross-platform shell execution
- src/utils/package-manager-detector.ts: Package manager detection

New command handlers:
- src/commands/version-command.ts: Version display
- src/commands/help-command.ts: Help text and usage
- src/commands/install-command.ts: Install/uninstall stubs
- src/commands/doctor-command.ts: Health checks
- src/commands/sync-command.ts: CCS synchronization
- src/commands/shell-completion-command.ts: Shell completion

Validation:
- 39/39 tests passing (100% success rate)
- TypeScript compilation:  Zero errors
- ESLint:  Zero violations
- Manual testing:  All commands working

Code review: EXCELLENT rating, 0 critical issues, zero regressions

Tier1 plan: 2/2 phases complete - both ESLint strictness and
modular architecture successfully implemented.
2025-11-27 17:54:51 -05:00
kaitranntt 06fa724525 feat: upgrade ESLint strictness - Phase 01 complete
Enhance code quality by upgrading 3 TypeScript ESLint rules from warn → error:
- @typescript-eslint/no-unused-vars: warn → error
- @typescript-eslint/no-explicit-any: warn → error
- @typescript-eslint/no-non-null-assertion: warn → error

Results:
- Zero violations found across 10,487 lines of TypeScript code
- 39/39 tests passing with no regressions
- All validation gates pass (typecheck, lint, format, test)
- Code review: EXCELLENT rating, 0 critical issues

Updated documentation:
- docs/code-standards.md: ESLint Quality Gates section
- docs/project-roadmap.md: Phase 01 completion details
- Plan status updated: Phase 01  COMPLETED

Phase 01 of tier1-eslint-and-ccs-split plan complete.
Ready for Phase 02: CCS monolithic split (1071 → ~200 lines).
2025-11-27 17:23:43 -05:00
kaitranntt 713f9f6a19 refactor(scripts): update bump-version.sh for bootstrap architecture
- Remove lib/ccs and lib/ccs.ps1 version updates (now bootstraps)
- Update comments explaining v4.5.0+ architecture
- Use ASCII markers [OK]/[X]/[!] instead of emojis
- Update next steps to reflect new file list
2025-11-27 10:33:08 -05:00
kaitranntt 046a37b2a9 feat: implement bootstrap conversion and installer updates (Phase 1-3)
Phase 1 - Bootstrap Scripts:
- Convert lib/ccs to 32-line bootstrap (was 1919 lines)
- Convert lib/ccs.ps1 to 39-line bootstrap (was 1826 lines)
- Delegate all functionality to Node.js via npx

Phase 2 - Help Text Updates:
- Add Requirements section to Node.js help (lines 172-175)
- Bootstrap scripts delegate --help to npx

Phase 3 - Installer Updates:
- Add Node.js 14+ detection with clear warning messages
- Remove deprecated shell deps (bootstrap handles all)
- Update completion messages with Requirements/First Run sections
- Update docs with new architecture

Total code reduction: 3745 → 71 lines (98.1%)
2025-11-27 10:24:37 -05:00
kaitranntt d56df0a95e chore: bump version to 4.5.0 2025-11-27 09:34:58 -05:00
kaitranntt 06f81d6c3e feat(dev): enhance development install script with validation options 2025-11-27 09:33:16 -05:00
kaitranntt 7a413a81b7 refactor: enhance TypeScript types and improve delegation system 2025-11-27 09:25:12 -05:00
kaitranntt 0139333146 feat: set up quality gates for CCS TypeScript package
- Migrate package manager from npm to bun
- Add ESLint configuration with TypeScript support
- Add Prettier configuration and .prettierignore
- Format all TypeScript source files
- Update CLAUDE.md with bun instructions
- Verify 39 tests passing
2025-11-26 20:43:21 -05:00
kaitranntt 49150dc24f fix(tests): isolate tests from user ~/.ccs directory
Problem: Test suite was directly modifying user's personal ~/.ccs/
directory, causing configuration interference during development.

Solution:
- Add test-environment.js fixture with CCS_HOME env var support
- Update postinstall.js to respect CCS_HOME for test isolation
- Update config-manager.ts with getCcsHome() helper
- Update postinstall.test.js and cli.test.js to use isolated env
- Remove auto-install of .claude/ symlinks from postinstall
  (users can run "ccs sync" to opt-in)

Benefits:
- Tests run in temp directories, no user config affected
- Users control when .claude/ items are installed via "ccs sync"
- All 39 tests passing with proper isolation
2025-11-26 20:25:35 -05:00
kaitranntt 1c3c4aade0 chore: complete TypeScript migration (Phase 05-06)
Phase 05: Migrate test imports from bin/ to dist/
- Update 19 test files to import from dist/ instead of bin/
- Update CLI path in cli.test.js and special-commands.test.js
- Update cross-platform.test.js to check dist/ directory

Phase 06: Cleanup & validation
- Remove bin/ directory (32 JS files)
- Fix ClaudeSymlinkManager import in doctor.ts
- Update postinstall.js to use dist/ modules
- Regenerate package-lock.json (now points to dist/ccs.js)

All 39 tests passing. TypeScript migration complete.
2025-11-26 20:20:54 -05:00
kaitranntt 26e279decf feat(cli): port complete entry point from JavaScript to TypeScript
- Port bin/ccs.js (1033 LOC) to src/ccs.ts (~1000 LOC)
- Implement all command handlers: version, help, doctor, sync, update, auth
- Add profile routing: settings-based (glm, glmt, kimi) and account-based
- Add GLMT proxy lifecycle: spawn, ready signal, cleanup on exit
- Add delegation routing (-p flag) to DelegationHandler
- Add shell completion installer
- Add public isHealthy() method to Doctor class
- All 39 tests passing
2025-11-26 20:13:39 -05:00
kaitranntt 3cb52e6917 feat(glmt): convert GLMT system to TypeScript
- Add reasoning-enforcer.ts with 4 effort-level prompts
- Add glmt-transformer.ts (~1000 LOC) for Anthropic/OpenAI format conversion
- Add glmt-proxy.ts (~530 LOC) HTTP proxy with SSE streaming
- Extend delta-accumulator.ts with state getters/setters for streaming
- All 39 tests passing
2025-11-26 19:57:58 -05:00
kaitranntt ea6695f4a9 feat(typescript): convert 4 missing utilities to TypeScript
- claude-dir-installer.ts: copy .claude/ from package (~300 LOC)
- claude-symlink-manager.ts: selective symlinks to ~/.claude/ (~310 LOC)
- progress-indicator.ts: CLI spinners/progress display (~120 LOC)
- update-checker.ts: version update notifications (~250 LOC)

All strict TypeScript, no any types, cross-platform compatible.
39/39 tests pass.
2025-11-26 19:37:59 -05:00
kaitranntt 77d026869e fix(tsconfig): remove duplicate compiler options
- Remove duplicate allowSyntheticDefaultImports (lines 16 & 42)
- Remove duplicate skipLibCheck (lines 18 & 46)
- Add TypeScript source files for npm package migration
- Verify build pipeline works (42/42 tests pass)
2025-11-26 19:24:40 -05:00
kaitranntt fd8fec20d7 refactor(powershell): standardize placeholders and improve error handling 2025-11-24 10:45:43 -05:00
kaitranntt 739895a29e feat(config): introduce shared settings.json across profiles 2025-11-23 20:31:39 -05:00
kaitranntt c4e5bcc40b docs: reorganize translated README files into docs/ folder structure 2025-11-22 21:48:18 -05:00
Kai (Tam Nhu) TranandGitHub 0f82b0cb06 fix: clear package manager cache during update to ensure fresh downloads (v4.3.10) (#19)
* fix: clear package manager cache during update to ensure fresh downloads (v4.3.10)

Resolves issue where 'ccs update' would report success but serve cached package versions, requiring manual 'npm cache clean --force'.

Changes:
- Node.js (bin/ccs.js): Added cache clearing for npm, yarn, pnpm before update
- Bash (lib/ccs): Added 'npm cache clean --force' before npm update
- PowerShell (lib/ccs.ps1): Added 'npm cache clean --force' before npm update
- Updated manual fallback commands to include cache clearing
- Non-blocking: continues with update even if cache clearing fails

Version bumped to 4.3.10

* docs: update CHANGELOG for v4.3.10
2025-11-22 20:57:54 -05:00
Kai (Tam Nhu) TranandGitHub e148373c62 fix: resolve missing commands/ccs.md symlink during npm install (v4.3.9) (#18)
* fix: add missing commands/ccs.md symlink during npm install

Previously, the ClaudeSymlinkManager only created symlinks for the
commands/ccs directory and skills/ccs-delegation directory, but missed
the commands/ccs.md file. This resulted in an incomplete symlink structure
where users would see the ccs folder symlinked but not the ccs.md file.

Added commands/ccs.md to the ccsItems array to ensure all CCS components
are properly symlinked during installation.

Fixes: npm install now creates complete symlink structure for all CCS items

* chore: bump version to 4.3.9
2025-11-22 20:18:57 -05:00
Kai (Tam Nhu) TranandGitHub 7ea4448abf fix: missing ~/.ccs/.claude/ directory and ora v9 compatibility (v4.3.8) (#17)
* fix(postinstall): make ora dependency optional to fix missing ~/.ccs/.claude/ directory

The root cause was that `ora` module was not available during `npm install`
when the postinstall script runs, causing both:
- .claude/ directory copy to fail (ClaudeDirInstaller)
- Symlink creation to fail (ClaudeSymlinkManager)

This resulted in the ~/.ccs/.claude/ directory not being created.

Changes:
- Made ora import optional in ClaudeDirInstaller
- Made ora import optional in ClaudeSymlinkManager
- Both classes now gracefully fallback to console.log when ora is unavailable
- Postinstall now successfully creates ~/.ccs/.claude/ and symlinks

Tested: Clean install now properly creates all directories and symlinks

* chore: bump version to 4.3.7

Version 4.3.7 - Postinstall Fix Release

Changes:
- Fixed missing ~/.ccs/.claude/ directory during npm install
- Made ora dependency optional in installer utilities
- Added CHANGELOG entry documenting the fix

Files updated:
- VERSION: 4.3.6 -> 4.3.7
- package.json: version updated
- lib/ccs: version string updated
- lib/ccs.ps1: version string updated
- installers/install.sh: version string updated
- installers/install.ps1: version string updated
- CHANGELOG.md: added 4.3.7 release notes

* fix: handle ora v9 ES module compatibility

ora v9.0.0 is now an ES module, which requires using .default when
importing with CommonJS require(). This was causing "ora is not a
function" errors in doctor.js and installer utilities.

Changes:
- Updated ora import to use oraModule.default || oraModule
- Added fallback spinner implementation for when ora is unavailable
- Ensures compatibility with both ES and CommonJS module systems
- Fixes ccs doctor command and postinstall script

Tested:
- ccs doctor now works correctly with spinners
- postinstall successfully creates ~/.ccs/.claude/ and symlinks
- Fallback console.log works when ora is unavailable

* chore: update package-lock.json

* chore: bump version to 4.3.8

Version 4.3.8 - ora v9 Compatibility Release

Changes:
- Fixed ora v9 ES module compatibility issues
- Updated CHANGELOG with 4.3.8 release notes

Files updated:
- VERSION: 4.3.7 -> 4.3.8
- package.json: version updated
- lib/ccs: version string updated
- lib/ccs.ps1: version string updated
- installers/install.sh: version string updated
- installers/install.ps1: version string updated
- CHANGELOG.md: added 4.3.8 release notes
2025-11-22 20:07:15 -05:00
Kai (Tam Nhu) TranandGitHub e97311cd3b fix: resolve missing ~/.ccs/.claude/ directory during npm install (v4.3.7) (#16)
* fix(postinstall): make ora dependency optional to fix missing ~/.ccs/.claude/ directory

The root cause was that `ora` module was not available during `npm install`
when the postinstall script runs, causing both:
- .claude/ directory copy to fail (ClaudeDirInstaller)
- Symlink creation to fail (ClaudeSymlinkManager)

This resulted in the ~/.ccs/.claude/ directory not being created.

Changes:
- Made ora import optional in ClaudeDirInstaller
- Made ora import optional in ClaudeSymlinkManager
- Both classes now gracefully fallback to console.log when ora is unavailable
- Postinstall now successfully creates ~/.ccs/.claude/ and symlinks

Tested: Clean install now properly creates all directories and symlinks

* chore: bump version to 4.3.7

Version 4.3.7 - Postinstall Fix Release

Changes:
- Fixed missing ~/.ccs/.claude/ directory during npm install
- Made ora dependency optional in installer utilities
- Added CHANGELOG entry documenting the fix

Files updated:
- VERSION: 4.3.6 -> 4.3.7
- package.json: version updated
- lib/ccs: version string updated
- lib/ccs.ps1: version string updated
- installers/install.sh: version string updated
- installers/install.ps1: version string updated
- CHANGELOG.md: added 4.3.7 release notes
2025-11-22 19:43:50 -05:00
kaitranntt 4d07471f44 fix(shared-dirs): add plugins directory to shared structure symlinks
Address PR #15 review comments by ensuring plugins directory is properly
handled in shared directory symlinking for both Bash and PowerShell
implementations. Adds plugins to directory creation and symlink loops.

Fixes:
- https://github.com/kaitranntt/ccs/pull/15#discussion_r2553557063
- https://github.com/kaitranntt/ccs/pull/15#discussion_r2553557078
2025-11-22 19:35:12 -05:00
Kai (Tam Nhu) TranandGitHub e2e432837e feat: add plugin support to shared directories (v4.3.6) (#15)
* feat(shared): add plugin support to shared directories

Add Claude Code plugins to the .ccs/shared/ symlink architecture,
enabling plugin sharing across all CCS profiles (GLM, GLMT, Kimi, etc).

Changes:
- SharedManager: Add 'plugins' to sharedDirs array
- Help text: Update all three implementations (Node.js, bash, PowerShell)
- Postinstall: Create ~/.ccs/shared/plugins/ directory on install

Architecture:
~/.claude/plugins/ <- ~/.ccs/shared/plugins/ <- instance/plugins/

This follows the existing pattern for commands/skills/agents and
maintains cross-platform compatibility with Windows fallback support.

* chore: bump version to 4.3.6

* docs: update CHANGELOG for v4.3.6
2025-11-22 19:27:04 -05:00
kaitranntt ebb33b7843 feat(installer): add deprecated agent cleanup logic 2025-11-22 13:24:13 -05:00
kaitranntt ca8f7f0d61 fix(update): Automatically detect package manager for ccs update 2025-11-22 12:44:29 -05:00
kaitranntt 24a11e1051 refactor(delegation)!: consolidate commands with intelligent profile selection
BREAKING CHANGE: Replace 4 hardcoded commands with 2 intelligent commands:
- Old: /ccs:glm, /ccs:kimi, /ccs:glm:continue, /ccs:kimi:continue
- New: /ccs (auto-selects), /ccs:continue (auto-dects)
- Override with flags: /ccs --glm "task", /ccs --kimi "task"

This change:
- Adds intelligent profile selection based on task analysis
- Supports custom profiles without creating new commands
- Enhances session management with automatic profile detection
- Updates all help text, examples, and documentation
- Fixes CCS Doctor health checks for new command structure
2025-11-21 20:31:44 -05:00
kaitranntt 9ae99460bc docs: update documentation to reflect v4.3.2 architecture and features
- Updated code-standards.md with v4.3.2 subsystem organization, delegation patterns, and symlinking standards
- Enhanced codebase-summary.md to document delegation system, selective .claude/ symlinking, and shell completion
- Revised project-overview-pdr.md with v4.3.2 capabilities, feature requirements, and architectural evolution
- Added comprehensive project-roadmap.md documenting version history and future plans
- Updated system-architecture.md with delegation architecture, symlinking strategy, and diagnostics infrastructure
- Added repomix-output.xml to .gitignore
2025-11-21 19:18:37 -05:00
kaitranntt d82bb8095b chore: bump version to 4.3.2 2025-11-18 20:40:34 -05:00
kaitranntt 53dc2ed8c8 feat(delegation): Enhance CCS delegation with auto-activation and refined workflow
This commit refactors the CCS delegation mechanism to introduce auto-activation
for eligible tasks and clarifies the delegation workflow.

Key changes include:
- Removal of the dedicated `ccs-delegator` agent, as its functionality is
  now integrated and managed by the `ccs-delegation` skill.
- `allowed-tools` declarations have been removed from `ccs:glm`, `ccs:kimi`,
  and their `continue` commands, streamlining tool management under the skill.
- Introduction of `CLAUDE.md.template` for `ccs-delegation` to standardize
  auto-delegation configuration.
- Significant updates to the `ccs-delegation` skill (`SKILL.md`),
  including:
    - Auto-activation based on task patterns (e.g., "fix typos", "add tests").
    - Defined user invocation patterns for explicit delegation (e.g., "use ccs glm").
    - Agent response protocol for validating, enhancing, and executing delegated tasks.
    - Clearer decision framework and examples for delegation eligibility.
- Deletion of `references/README.md` and `references/delegation-guidelines.md`
  as their content is now integrated or no longer relevant.
- Renaming `references/headless-workflow.md` to `docs/headless-workflow.md`
  to better reflect its documentation nature.
- Modification of `references/troubleshooting.md` to align with the new structure.

These changes aim to make the delegation process more autonomous, user-friendly,
and robust by centralizing control within the `ccs-delegation` skill and
improving documentation organization.
2025-11-18 20:38:14 -05:00
Kai (Tam Nhu) TranandGitHub e770200cb4 feat(completion): improve fish shell completion with category prefixes (#14)
* feat(completion): improve fish shell completion with category prefixes

- Remove problematic inline set_color commands that prevented descriptions from displaying
- Add [cmd], [model], and [account] prefixes to visually group completions
- Update file header to document categorization features

This brings fish completion quality closer to zsh by making categories
clear and ensuring descriptions actually display to users.

Fixes issue where fish completions showed no descriptions.

* chore: bump version to 4.3.1
2025-11-18 02:52:48 -05:00
Kai (Tam Nhu) Tranandkaitranntt 67dbd3f259 feat: improve UX for ccs doctor and sync commands (#13)
* feat: enhance UX for 'ccs sync' and 'ccs doctor' commands

- Add ora spinners for real-time progress feedback
- Add cli-table3 for structured health check summary table
- Display detailed component information in doctor report
- Show file/directory counts during sync operations
- Improve visual hierarchy and readability
- Fix Unicode checkmark violation (replaced with [OK])

Breaking changes: None
Dependencies added: ora@^5.4.1, cli-table3@^0.6.5

Version bumped to 4.3.0

* fix: match doctor summary header width to table width

* feat: improve settings validation to check API keys, not just endpoints

- Check if API keys are configured or still placeholders
- Show 'Key configured' vs 'Placeholder key (not configured)'
- Previous message 'Valid (API: api.z.ai)' was misleading
- Now users can clearly see which profiles need API key configuration
- Warnings shown for placeholder keys (yellow [!])

* feat: add category grouping and alignment to doctor checks

- Group checks into logical categories: System, Configuration, Profiles & Delegation, System Health
- Add consistent padding (26 chars) for aligned columns
- Add 2-space indent for better visual hierarchy
- Separate categories with blank lines for better readability
- Much cleaner and easier to scan than before

* fix: perfect alignment for all doctor check output

- Use .padEnd(26) consistently for all component names
- Remove extra space before status icons
- Now all status icons [OK]/[X]/[!]/[i] align perfectly
- All component names pad to exactly 26 characters
2025-11-18 01:19:28 -05:00
Kai (Tam Nhu) Tranandkaitranntt d34dbcac1f feat: add 'ccs update' command with smart update notifications
Add comprehensive update functionality with intelligent notification system.
Supports manual update checking, automatic notifications every 24h, and works
across npm and direct installations with proper error handling.

Closes #12
2025-11-18 01:19:28 -05:00