Commit Graph
475 Commits
Author SHA1 Message Date
Tam Nhu Tran cc55b9d794 Merge remote-tracking branch 'origin/dev' into kai/chore/ccs-backlog-project-automation-refresh 2026-03-28 10:17:56 -04:00
Tam Nhu Tran e6617726cb fix: harden CCS backlog sync pagination and recovery 2026-03-28 09:51:53 -04:00
Tam Nhu Tran 13254f28a6 test(docker): add regression test for bundled asset availability
Verify all four integrated Docker assets (compose file, Dockerfile,
supervisord config, entrypoint script) resolve and exist on disk.
Prevents silent exclusion from future packaging changes.
2026-03-28 09:47:37 -04:00
Kai (Tam Nhu) TranandGitHub 508c96e289 Merge pull request #820 from kaitranntt/kai/feat/812-docker-command
feat: add ccs docker deployment commands
2026-03-27 15:23:12 -04:00
Tam Nhu Tran 5b9954cfad test(docker): cover docker subcommand rendering paths
- add handler-level coverage for up, down, logs, config, update, and status

- exercise success, validation, follow-mode, and boxed error output paths
2026-03-27 15:05:17 -04:00
Tam Nhu Tran 5ad4303345 fix(docker): bound blocking command execution
- add default local and remote sync-command timeouts with clearer timeout diagnostics

- remove extra synchronous fs and process.exit patterns from docker assets/bootstrap helpers

- register the docker help handler in CLAUDE.md for the repo help-location reference
2026-03-27 15:05:17 -04:00
Tam Nhu Tran 23f767b0c5 feat(docker): add integrated deployment commands
- add ccs docker subcommands for up, down, status, update, logs, and config
- bundle integrated docker assets and remote ssh deployment support
- add executor regression tests and root help/router coverage

Refs #812
2026-03-27 15:05:17 -04:00
Tam Nhu Tran 1fd7f81221 test(websearch): assert parser-layer null body errors 2026-03-27 14:58:54 -04:00
Tam Nhu Tran dff40b5e24 fix(websearch): align provider validation metadata 2026-03-27 14:49:00 -04:00
Tam Nhu Tran 4ccc3edcbb fix(websearch): restrict dashboard secrets routes 2026-03-27 14:14:23 -04:00
Tam Nhu Tran 20c48c6105 feat(websearch): manage provider API keys in dashboard
- add masked dashboard-managed API key state for Exa, Tavily, and Brave
- persist WebSearch keys through global_env while keeping WebSearch as the UX surface
- treat dashboard-managed keys as ready in status checks and cover the flow with route/UI tests
2026-03-27 13:25:26 -04:00
Tam Nhu Tran 41a31c8a4f fix(ci): resolve flaky api-command module resolution and migrate to self-hosted runner
Root cause: Bun's test runner fails to resolve exports from directory
index.ts files during parallel test execution. The api-command/index.ts
imports 8 subcommand modules — if any fail to load during concurrent
test runs, the entire module fails with "Export not found."

Fix: extract createApiCommandHandler into handler.ts (lightweight, only
imports named-command-router). Test imports from handler.ts directly,
bypassing the heavy index.ts that loads all subcommand modules.

Also:
- Remove stale api-command.ts barrel file
- Use explicit /index import paths in source
- Migrate CI validate to self-hosted runner with clean artifact step
- Disable Bun cache (no-cache: true) on self-hosted runner
2026-03-26 18:12:32 -04:00
Kai (Tam Nhu) TranandGitHub a5c765b221 Merge pull request #805 from kaitranntt/kai/fix/804-live-monitor-auth-index
fix(cliproxy): restore live monitor provider attribution
2026-03-26 17:37:01 -04:00
Tam Nhu Tran 63c8ec5d7c fix(cliproxy): preserve auth-file source fallback 2026-03-26 17:18:48 -04:00
Tam Nhu Tran 368a625d92 fix(cliproxy): restore live monitor provider attribution 2026-03-26 17:18:47 -04:00
Tam Nhu Tran 19f6b3c4e6 fix(cliproxy): surface quota metadata in CLI 2026-03-26 17:13:11 -04:00
Tam Nhu Tran 31b7d45b58 fix(cliproxy): harden gemini quota error fallbacks 2026-03-26 17:13:11 -04:00
Tam Nhu Tran 99f78f156a fix(cliproxy): surface gemini quota failure details
- preserve structured HTTP/error metadata for Gemini quota failures

- keep upstream verification detail and actionable hints for dashboard users

- add regression coverage for 401, 403, and 429 Gemini quota responses
2026-03-26 17:13:11 -04:00
Kai (Tam Nhu) TranandGitHub d08b4a2293 Merge pull request #802 from kaitranntt/kai/fix/789-opus-long-context
fix: preserve Claude long-context intent across CLI and dashboard
2026-03-26 17:09:32 -04:00
Tam Nhu Tran be4ba13e96 fix(tests): stabilize command help CI validation 2026-03-26 16:56:34 -04:00
Tam Nhu Tran 75ccbb3ad1 fix(cliproxy): scope account stats by provider 2026-03-26 16:36:46 -04:00
Tam Nhu Tran 5e11bba514 test(cliproxy): cover Claude long-context parity flows
- add regression coverage for runtime, api create flags, and help text

- add provider-editor tests for multi-key [1m] state and preset preservation

Refs #789
2026-03-26 16:36:14 -04:00
Tam Nhu Tran 63f48622e5 fix(cliproxy): log clean registry recovery and harden email fallback 2026-03-26 13:40:37 -04:00
Tam Nhu Tran 313e244302 fix(cliproxy): harden corrupted registry recovery 2026-03-26 10:58:42 -04:00
Tam Nhu Tran d53873bddd fix(cliproxy): recover corrupted account registries from token files 2026-03-26 10:36:51 -04:00
Tam Nhu Tran ec1417ab7c fix(channels): reject oversized official channel tokens
Add a 4096-character cap before persisting official channel tokens, map that validation failure to HTTP 400 in the dashboard route, and cover both paths with regression tests.
2026-03-25 22:38:15 -04:00
Tam Nhu Tran 3af554275e test: isolate shared-state test suites for CI stability
- add dependency injection to export-command, binary-manager,
  codex-plan-compatibility, config-command, and usage-syncer
- override process.exit in api-export test to prevent silent
  termination in Bun's parallel test runner
- harden test-environment bootstrap with process.env isolation
- fix auth middleware to avoid config upgrade during checks
2026-03-25 16:41:41 -04:00
Tam Nhu Tran 3ea9d2fc34 fix(settings): stabilize websearch and quota checks 2026-03-25 16:31:55 -04:00
Tam Nhu Tran a97fc42b10 feat(channels): auto-enable official Claude channels 2026-03-25 16:31:55 -04:00
Tam Nhu Tran 6f1f032c63 feat(channels): support telegram and imessage
- replace the Discord-only config with multi-channel official channels selection

- add Telegram token handling and iMessage platform-aware runtime gating

- expand CLI, dashboard, and tests for Telegram, Discord, and iMessage

Refs #783
2026-03-25 16:31:55 -04:00
Tam Nhu Tran 4bce1559dd feat(channels): auto-enable official discord plugin
- add runtime injection for official Discord Channels on eligible native Claude sessions

- add CLI and dashboard configuration plus secure token handling

- add tests for launch planning, token sync, and config routing

Refs #783
2026-03-25 16:31:55 -04:00
Tam Nhu Tran 6ccf53ec7d fix(config): preserve hidden auth secrets and block scalars 2026-03-24 15:25:49 -04:00
Tam Nhu Tran e983bed1da fix(config): close dashboard secret redaction gaps 2026-03-24 15:15:29 -04:00
Tam Nhu Tran 37251cd1f8 fix(config): harden dashboard config and rollback paths 2026-03-24 14:38:40 -04:00
Tam Nhu Tran c923f51cf5 fix(shared-manager): guard inverse shared symlink loops 2026-03-24 14:38:27 -04:00
Tam Nhu Tran 05dea22238 fix(shared-manager): allow external claude symlink chains 2026-03-24 13:34:34 -04:00
Tam Nhu Tran 09eb01f16e fix(auth): verify polled oauth account persistence 2026-03-24 09:15:05 -04:00
Tam Nhu Tran 6c7d215ecc feat(websearch): add real provider chain 2026-03-23 15:26:05 -04:00
Tam Nhu Tran 1f667b5953 fix: harden droid runtime alias resolution 2026-03-23 14:15:30 -04:00
Tam Nhu Tran 160be319d0 feat: add explicit droid runtime alias surface 2026-03-23 13:44:32 -04:00
Tam Nhu Tran 4df08f6d99 feat: make cliproxy provider nicknames optional by default 2026-03-23 11:02:08 -04:00
Tam Nhu Tran 834704938d test(cliproxy): cover optional nickname auth flows
- add registry coverage for generated ids, reauth, and ambiguous prefixes

- add CLI and dashboard validation tests for optional nickname handling

- add manual callback coverage for persisted social OAuth nicknames
2026-03-23 11:02:08 -04:00
Tam Nhu Tran 04fd8ff019 fix: restore parallel-safe validate pipeline 2026-03-20 09:51:41 -04:00
Tam Nhu Tran 0d90f04f3e fix: stabilize validate pipeline and cliproxy route tests 2026-03-20 09:29:51 -04:00
Tam Nhu Tran 287691fa04 feat(profiles): add cliproxy api profile bridge
- add backend and CLI flows for creating routed API profiles from CLIProxy providers

- add dashboard bridge CTAs, metadata, and guided create dialog mode

- cover bridge routes and dialog behavior with focused tests

Refs #649
2026-03-19 10:24:28 -04:00
Tam Nhu Tran 9fac214051 fix(codex): recover unsupported live model switches 2026-03-18 11:56:39 -04:00
Tam Nhu Tran fab05011f1 test(management): cover plugin layout sync lock 2026-03-18 08:22:03 -04:00
Tam Nhu Tran 36e8ed5d87 fix(management): serialize lifecycle maintenance paths
- serialize deleteInstance with the same profile and plugin-layout locks as ensure

- lock non-account marketplace normalization paths and ignore .locks as an instance source
2026-03-18 08:04:48 -04:00
Tam Nhu Tran fc02c4b968 fix(management): harden marketplace state transitions
- detach verified shared symlinks when a profile is reopened as bare

- prune stale marketplace entries whose payload directories no longer exist

- add regressions for bare/non-bare transitions and stale registry recovery
2026-03-18 07:55:09 -04:00
Tam Nhu Tran 68a5d17327 fix(management): serialize marketplace registry reconciliation
- keep bare and non-bare marketplace normalization inside the plugin-layout lock
- warn when malformed registry sources are skipped during reconciliation
- add regression coverage for cross-instance refresh metadata and legacy layout upgrade
2026-03-18 07:34:05 -04:00