Tam Nhu Tran
d2d1d599cd
feat(cliproxy): add target support to subcommands
...
- add --target parsing and validation in create/edit/remove flows
- show target in list/remove/edit UX and usage examples
- document target option in cliproxy help output
2026-02-25 15:52:29 +07:00
Tam Nhu Tran
ca58cb5a08
fix(cliproxy): harden quota guards and review follow-ups
2026-02-22 02:35:07 +07:00
Tam Nhu Tran
8c790f41ff
fix(cliproxy): close remaining quota edge-case gaps
2026-02-22 02:12:40 +07:00
Tam Nhu Tran
d47620592d
Merge remote-tracking branch 'origin/dev' into fix/548-claude-quota-balance
...
# Conflicts:
# src/commands/cliproxy/help-subcommand.ts
# src/commands/cliproxy/index.ts
# src/commands/cliproxy/quota-subcommand.ts
2026-02-22 01:24:44 +07:00
Tam Nhu Tran
2385d9028a
feat(cliproxy): add Claude quota windows and account failover
2026-02-22 01:19:02 +07:00
Tam Nhu Tran
343ec959fc
fix(core): resolve edge cases and hardcoded drift
2026-02-21 10:32:19 +07:00
Tam Nhu Tran
6074fcb0b6
fix(refactor): address PR review follow-up findings
2026-02-21 01:44:44 +07:00
Tam Nhu Tran
8d2ec86155
refactor(core): centralize claude paths and command parsing
2026-02-21 01:31:16 +07:00
Tam Nhu Tran
8d9d4987dc
feat(quota): add GitHub Copilot quota checks for ghcp and copilot
2026-02-20 22:32:27 +07:00
Tam Nhu Tran
4fc19c4390
feat(cliproxy): expose codex weekly reset schedule in quota views
2026-02-15 09:48:39 +07:00
Tam Nhu Tran
9268c05ee5
fix(cliproxy): resolve merge-duplicate lifecycle handlers
2026-02-14 10:31:00 +07:00
Tam Nhu Tran
ffb78bfe73
Merge remote-tracking branch 'origin/dev' into fix/review-cursor-variant-safety
2026-02-14 10:30:00 +07:00
Tam Nhu Tran
f02e7dc5c6
fix(cliproxy): address lifecycle port and thinking regressions
2026-02-14 10:23:39 +07:00
Tam Nhu Tran
8395364970
feat(cliproxy): add explicit start and restart commands
2026-02-14 09:41:40 +07:00
Tam Nhu Tran
3136f24b9b
fix(cliproxy): keep daemon running after parent exit
2026-02-14 09:31:47 +07:00
Tam Nhu Tran
40512fe338
fix(codex): stabilize code review window labeling
2026-02-14 06:28:48 +07:00
Tam Nhu Tran
1d2ee827fe
fix(codex): infer code review cadence from reset window
2026-02-14 06:09:36 +07:00
Tam Nhu Tran
f8af5a8c3c
fix(codex): align quota display to 5h and weekly windows
2026-02-14 05:57:06 +07:00
Tam Nhu Tran
7bb9ceb4af
fix(cliproxy): keep variant updates atomic and persisted
...
- require model when changing single-variant provider to avoid mixed config
- rewrite provider-specific core env when provider changes while preserving custom fields
- preserve custom composite settings path and return persisted composite PUT state
2026-02-13 06:19:12 +07:00
Tam Nhu Tran
399d7e163a
fix(cliproxy): address 3 code review issues in composite variants
...
- P1: Remove premature variant deletion in --force mode
Fix destructive overwrite path - old variant preserved if user
cancels auth or creation fails (createVariant handles overwrite)
- P2: Validate all composite tier providers at runtime
Backend gating now checks all providers in composite, not just
default tier. Prevents kiro/ghcp on non-default tiers bypassing
Plus backend requirement.
- P2: Preserve tier thinking when default tier is off
Early return skipped tier processing when default thinking was
"off". Now uses flag-based approach - only main model skipped,
tier loop continues with per-tier thinking config.
2026-02-12 12:29:43 +07:00
Tam Nhu Tran
27d22e836f
fix(cliproxy): address 4 functional regressions in composite variants
...
- P1: Remote composite env now uses remote endpoint/auth
Add CompositeRemoteConfig parameter to getCompositeEnvVars()
Pass remote config when useRemoteProxy is true
- P2: Tier thinking uses tier-specific provider
Extract tier provider from compositeTiers for supportsThinking()
Fix mixed-provider composite thinking config
- P2: Force variant removal checks result
Fail fast if removeVariant fails in --force mode
- P2: Guard composite validation against missing tiers
Add null check before Object.entries(variant.tiers)
2026-02-12 12:08:20 +07:00
Tam Nhu Tran
43e73f335f
feat(cliproxy): add CLI edit command for composite variants
...
- Add handleEdit() interactive wizard for modifying existing variants
- Add updateCompositeVariant() to variant-service for partial tier updates
- Route 'edit' subcommand in cliproxy index
- Update help text with edit command documentation
- Export updateCompositeVariant from services index
2026-02-12 04:24:09 +07:00
Tam Nhu Tran
4926c200f2
feat(cliproxy): add composite variant CLI wizard
...
- Add --composite flag to 'ccs cliproxy variant create'
- Implement selectTierConfig() interactive prompt per tier
- Add default tier selection after all tiers configured
- Display composite label in auth list and variant remove
- Show per-tier details in remove confirmation
- Update help text with --composite usage
Refs #506
2026-02-12 04:09:19 +07:00
0b394933ae
feat: hybrid CLIProxy catalog sync + agent teams env fix ( #486 )
...
* fix(teams): propagate CLAUDE_CONFIG_DIR to tmux session for agent teammates
When CCS launches Claude with CLAUDE_CONFIG_DIR pointing to the isolated
instance path, agent team teammates spawned via tmux split-window don't
inherit it because tmux creates new panes from its own session environment.
This causes teammates to use ~/.claude/ instead of ~/.ccs/instances/{profile}/,
creating a split-brain in shared state (tasks, teams, mailbox).
Sets key CCS env vars in the tmux session environment via `tmux setenv` so
all new panes inherit the correct config directory.
* refactor(teams): use spawnSync array args instead of execSync string
Avoids shell interpretation of env values by passing args as array
to spawnSync instead of interpolating into a shell command string.
* chore(release): 7.38.0-dev.1 [skip ci]
* feat(cliproxy): add hybrid catalog sync with CLIProxyAPI (#485 )
* chore(release): 7.38.0 [skip ci]
## [7.38.0](https://github.com/kaitranntt/ccs/compare/v7.37.1...v7.38.0 ) (2026-02-07)
### Features
* **release:** v7.38.0 - Extended Context, Qwen Models, Bug Fixes ([#480 ](https://github.com/kaitranntt/ccs/issues/480 )) ([b454834 ](https://github.com/kaitranntt/ccs/commit/b4548341750804339c87c48259dd8741425d2acf )), closes [#472 ](https://github.com/kaitranntt/ccs/issues/472 ) [#474 ](https://github.com/kaitranntt/ccs/issues/474 ) [#103 ](https://github.com/kaitranntt/ccs/issues/103 ) [#478 ](https://github.com/kaitranntt/ccs/issues/478 ) [#482 ](https://github.com/kaitranntt/ccs/issues/482 )
* feat(cliproxy): add hybrid catalog sync with CLIProxyAPI
Add `ccs cliproxy catalog` command family for syncing model catalogs
from CLIProxyAPI's model-definitions endpoint. Cached locally with
24h TTL, merges remote models with static catalog preserving
broken/deprecated flags. Dashboard API endpoint at /api/cliproxy/catalog.
Closes #477
---------
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net >
* chore(reviewer): upgrade review model from opus 4.5 to opus 4.6
- update default model in code-reviewer.ts
- update REVIEW_MODEL, ANTHROPIC_MODEL, ANTHROPIC_DEFAULT_OPUS_MODEL
in ai-review.yml workflow
- aligns reviewer with AGY model catalog default
* chore(release): 7.38.0-dev.2 [skip ci]
* fix(hooks): add image analysis env vars for settings-based profiles (#484 )
* chore(release): 7.38.0 [skip ci]
## [7.38.0](https://github.com/kaitranntt/ccs/compare/v7.37.1...v7.38.0 ) (2026-02-07)
### Features
* **release:** v7.38.0 - Extended Context, Qwen Models, Bug Fixes ([#480 ](https://github.com/kaitranntt/ccs/issues/480 )) ([b454834 ](https://github.com/kaitranntt/ccs/commit/b4548341750804339c87c48259dd8741425d2acf )), closes [#472 ](https://github.com/kaitranntt/ccs/issues/472 ) [#474 ](https://github.com/kaitranntt/ccs/issues/474 ) [#103 ](https://github.com/kaitranntt/ccs/issues/103 ) [#478 ](https://github.com/kaitranntt/ccs/issues/478 ) [#482 ](https://github.com/kaitranntt/ccs/issues/482 )
* fix(hooks): add image analysis env vars for settings-based profiles
Image analysis hook was injected into settings files for API profiles
but the CCS_IMAGE_ANALYSIS_* env vars were never set, causing the hook
to skip. Add getImageAnalysisHookEnv() call to both settings-based and
GLMT proxy execution paths, matching CLIProxy profile behavior.
Closes #440
* fix(hooks): add hook env vars to copilot executor
Copilot profile had same gap as settings-based profiles: hooks installed
but webSearch/imageAnalysis env vars and CCS_PROFILE_TYPE never set.
Add missing env var injection matching other profile flows.
---------
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net >
* chore(release): 7.38.0-dev.3 [skip ci]
---------
Co-authored-by: Carlos Umanzor <cumanzor@gmail.com >
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net >
2026-02-06 23:54:03 -05:00
kaitranntt
b149e252eb
refactor(cliproxy): modularize top 4 giant files
...
Split 4 files exceeding 900 lines into focused modules:
- account-manager.ts (961 → 56 lines): 6 modules in accounts/
- registry, query, bulk-ops, token-file-ops, types, index
- config-generator.ts (981 → 16 lines): 6 modules in config/
- generator, port-manager, env-builder, thinking-config, path-resolver, index
- cliproxy-executor.ts (1,180 → 21 lines): 5 modules in executor/
- index, lifecycle-manager, env-resolver, retry-handler, session-bridge
- cliproxy-command.ts (1,297 → 10 lines): 8 modules in commands/cliproxy/
- index, auth, quota, variant, install, help, proxy-lifecycle subcommands
Total: 4,419 → 103 lines in original files (97.7% reduction)
Backward compatibility maintained via re-export shims.
Edge case fixes: CLI validation, thinking fallback, provider warning.
BREAKING CHANGES: None - all exports preserved via barrel re-exports.
2026-02-05 15:00:02 -05:00