Tam Nhu Tran
fdb043083f
feat(cliproxy): pool routing defaults and safety rails
...
- pool opt-in writes disable-cooling: false, routing.strategy fill-first,
session-affinity on (1h TTL), max-retry-credentials 3; all emissions
pool-gated so non-pool generated config stays content-identical
- cooling re-enable is safe on current CLIProxy binaries: the v5
disable-cooling workaround targeted upstream cooldown bugs fixed by
Apr 2026 (see plan archaeology report)
- informed-consent prompt at the 1->2 account-add transition enumerates
every provider with multiple accounts (instance-global effect) and is
gated per provider on spike-verified limit signals
- disablePoolRouting restores the non-pool config including
disable-cooling: true and prints single-account rollback guidance
- cross-lane guard warns when a pool account email is also active in a
native Claude profile (concurrency is the documented ban vector)
- routing strategy and affinity subcommands warn when pool routing
manages those keys
Part of #1464 account pools (phase 3).
2026-06-11 00:12:14 -04:00
Tam Nhu Tran
1c72b4b8d5
refactor(cliproxy): flatten module structure and colocate tests ( #1135 )
...
- Split types.ts (331 LOC) into 4 concern-based files under types/:
platform-types, binary-types, provider-types, config-types
- Preserve backward compat via barrel re-export (types.ts → types/index)
- Reorganize 53 root-level files into 8 subdirectories:
accounts/, ai-providers/, auth/, binary/, config/, executor/,
management/, proxy/, quota/, routing/, services/, sync/
- Reduce src/cliproxy/ root from 65 to 8 files (target: ≤10)
- Colocate 87 unit tests from tests/unit/cliproxy/ into
src/cliproxy/*/__tests__/ (13 colocated test directories)
- Update import paths across 40+ consumer files
- Add TDD backward-compat test for types split
Refs #1135
2026-04-29 17:06:39 -04:00
Tam Nhu Tran
4309db89c3
feat(cliproxy): add local session affinity controls
2026-04-28 12:17:26 -04:00
Tam Nhu Tran
3d22bb07f0
fix(cliproxy): route plus backend to maintained fork
2026-04-23 21:25:29 -04:00
Tam Nhu Tran
3e7ce1743b
hotfix: preserve plus fallback state and guard variant updates
2026-04-22 08:52:17 -04:00
Sergey Galuza
ea2b16bb66
docs(cliproxy): add catalog --json to --help output
...
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:47:10 +02:00
Tam Nhu Tran
b6aa6fb0d4
fix(cliproxy): cover managed prefix review follow-up
2026-04-10 01:16:31 -04:00
Tam Nhu Tran
6393249111
feat(cliproxy): add routing guidance and strategy controls
2026-04-07 18:17:06 -04:00
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
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
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
8395364970
feat(cliproxy): add explicit start and restart commands
2026-02-14 09:41:40 +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