mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-17 04:14:32 +00:00
* 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>
71 lines
2.6 KiB
TypeScript
71 lines
2.6 KiB
TypeScript
/**
|
|
* Routes Aggregator - Combines all domain-specific route modules
|
|
*
|
|
* This file serves as the central entry point for all API routes,
|
|
* mounting each domain router at its appropriate path.
|
|
*/
|
|
|
|
import { Router } from 'express';
|
|
|
|
// Import domain routers
|
|
import profileRoutes from './profile-routes';
|
|
import accountRoutes from './account-routes';
|
|
import configRoutes from './config-routes';
|
|
import healthRoutes from './health-routes';
|
|
import providerRoutes from './provider-routes';
|
|
import variantRoutes from './variant-routes';
|
|
import settingsRoutes from './settings-routes';
|
|
import websearchRoutes from './websearch-routes';
|
|
import cliproxyAuthRoutes from './cliproxy-auth-routes';
|
|
import cliproxyStatsRoutes from './cliproxy-stats-routes';
|
|
import cliproxySyncRoutes from './cliproxy-sync-routes';
|
|
import copilotRoutes from './copilot-routes';
|
|
import miscRoutes from './misc-routes';
|
|
import cliproxyServerRoutes from './proxy-routes';
|
|
import authRoutes from './auth-routes';
|
|
import persistRoutes from './persist-routes';
|
|
import catalogRoutes from './catalog-routes';
|
|
|
|
// Create the main API router
|
|
export const apiRoutes = Router();
|
|
|
|
// ==================== Profile & Settings ====================
|
|
// Profile CRUD, settings management, presets, accounts
|
|
apiRoutes.use('/profiles', profileRoutes);
|
|
apiRoutes.use('/settings', settingsRoutes);
|
|
apiRoutes.use('/accounts', accountRoutes);
|
|
|
|
// ==================== Unified Config ====================
|
|
// Config format, migration
|
|
apiRoutes.use('/config', configRoutes);
|
|
|
|
// ==================== Health Checks ====================
|
|
apiRoutes.use('/health', healthRoutes);
|
|
|
|
// ==================== Dashboard Auth ====================
|
|
apiRoutes.use('/auth', authRoutes);
|
|
|
|
// ==================== Persist (Backup Management) ====================
|
|
apiRoutes.use('/persist', persistRoutes);
|
|
|
|
// ==================== CLIProxy ====================
|
|
// Variants, auth, accounts, stats, status, models, error logs
|
|
apiRoutes.use('/cliproxy', variantRoutes);
|
|
apiRoutes.use('/cliproxy/auth', cliproxyAuthRoutes);
|
|
apiRoutes.use('/cliproxy', cliproxyStatsRoutes);
|
|
apiRoutes.use('/cliproxy/sync', cliproxySyncRoutes);
|
|
apiRoutes.use('/cliproxy/catalog', catalogRoutes);
|
|
apiRoutes.use('/cliproxy/openai-compat', providerRoutes);
|
|
|
|
// ==================== WebSearch ====================
|
|
apiRoutes.use('/websearch', websearchRoutes);
|
|
|
|
// ==================== Copilot ====================
|
|
apiRoutes.use('/copilot', copilotRoutes);
|
|
|
|
// ==================== CLIProxy Server Settings ====================
|
|
apiRoutes.use('/cliproxy-server', cliproxyServerRoutes);
|
|
|
|
// ==================== Misc (File API, Global Env) ====================
|
|
apiRoutes.use('/', miscRoutes);
|