Commit Graph
4 Commits
Author SHA1 Message Date
kaitranntt 64a8e86db4 fix(ci): add path filtering to deploy-ccs-worker pull request trigger 2025-12-04 15:51:36 -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 edc89c4a12 fix(ci): add wrangler config and upgrade to v4.45.3
- Add wrangler.toml with compatibility_date to fix CI deployment
- Upgrade Wrangler from v3.90.0 to v4.45.3
- Simplify deploy command to use config file
- Add wrangler.toml to workflow trigger paths

Fixes CloudFlare Worker deployment failure due to missing compatibility_date parameter.
2025-11-02 20:33:55 -05:00
kaitrannttandClaude Code e9eb215d1f fix(core): add VERSION file handling and comprehensive test coverage
This commit fixes version management and argument parsing issues across
both Windows and Linux/macOS platforms, achieving 100% test coverage.

Changes:
- Add VERSION file installation to both installers (install.sh, install.ps1)
- Fix version/help command detection when using 'powershell -File' syntax
- Rename PowerShell param from $Profile to $ProfileOrFlag for clarity
- Add $FirstArg detection to check both ProfileOrFlag and RemainingArgs
- Create comprehensive edge case test suites for both platforms:
  * tests/edge-cases.ps1 - 31 tests for Windows (100% pass)
  * tests/edge-cases.sh - 37 tests for Linux/macOS (100% pass)
- Fix multiline regex matching in tests for error messages
- Update test expectations to match platform-specific behavior
- Reorganize project structure:
  * Move installers to installers/ directory
  * Add scripts/ directory for version management
  * Add config/ directory for configuration templates
  * Add docs/ directory for documentation

Test Results:
- Windows (PowerShell): 31/31 tests passing (100%)
- Linux/macOS (Bash): 37/37 tests passing (100%)

Breaking Changes: None
- Installers moved but GitHub URLs updated in README files
- All existing functionality preserved

Co-authored-by: Claude Code <claude@anthropic.com>
2025-11-02 20:27:45 -05:00