Commit Graph
100 Commits
Author SHA1 Message Date
Tam Nhu Tran a94de010db fix(codex): prefer cmd wrappers over powershell on windows
- keep Windows Codex detection on the npm cmd shim when available

- add regression tests for cmd-first and ps1-to-cmd fallback selection
2026-04-14 17:35:30 -04:00
Tam Nhu Tran be9a481e75 fix(ui): use i18n singleton in claude extension status card 2026-04-13 23:35:55 -04:00
Tam Nhu Tran f067f39245 fix: apply api-key updates during token regeneration 2026-04-13 22:57:27 -04:00
Tam Nhu Tran 87899a489c fix(ui): finish dashboard i18n follow-up pass 2026-04-13 22:55:13 -04:00
Tam Nhu Tran 4e15ec5387 fix(cliproxy): degrade gracefully on GitHub release 403s
- fall back to stale CLIProxy version caches instead of surfacing 500s

- remove duplicate dashboard update-check fetches and disable retry/focus refetch

- add backend and UI regressions for the degraded-path behavior
2026-04-13 22:19:16 -04:00
Tam Nhu Tran c3401f0a91 feat(ui): complete dashboard i18n coverage across 162 files
Replace all remaining hardcoded English strings with t() calls across
the CCS dashboard UI. Add zh-CN, vi, ja translations for all new keys.

- 162 files updated (components, hooks, pages, lib utilities)
- 7 domains covered: layout/shared, accounts/auth, CLIProxy,
  compatible CLI (Codex/Cursor/Droid/Copilot), logs/monitoring,
  analytics, and lib utilities
- 4 locales: en, zh-CN, vi, ja with natural (not literal) translations
- Fix duplicate customPresetDialog key shadowing in en/zh-CN
- Fix missing ja nav.logs and providerModelSelector keys
- Fix openrouter-banner count type (string → number)
- Fix add-account-dialog double setLocalError call
- Fix codex-model-providers-card missing useTranslation

Closes #983
2026-04-13 20:52:30 -04:00
Tam Nhu Tran 394d7d94fc test(update): isolate current-install command deps
- load a fresh update-command module instance per test via query-string import

- prevent Bun mock.module leakage from command-router tests from masking handleUpdateCommand in CI
2026-04-13 15:09:35 -04:00
Tam Nhu Tran 3103f3f293 test(hooks): harden cross-platform MCP coverage
- replace the Windows-brittle chmod read-error setup with a directory-based failure case

- force the browser installed-copy regression through the non-global WebSocket path
2026-04-13 13:10:05 -04:00
Tam Nhu Tran d30f5803a7 fix(browser): harden browser MCP websocket startup
- fall back across globalThis.WebSocket, undici, and ws for installed runtimes

- normalize socket event handling for both WHATWG and ws implementations

- add an installed-copy regression test for missing ws in Bun global layouts
2026-04-13 12:56:22 -04:00
Tam Nhu Tran 2868dcdaae perf(hooks): shorten feature-branch pre-push gate 2026-04-13 12:18:23 -04:00
Tam Nhu Tran 4525df2c1b Merge remote-tracking branch 'origin/dev' into kai/fix/980-ci-and-prepush 2026-04-13 12:12:18 -04:00
Tam Nhu Tran 5c799e68e9 hotfix: stop auto-enabling stale Chrome DevTools reuse 2026-04-13 12:06:06 -04:00
Tam Nhu Tran 33f57d3cac hotfix: stop auto-enabling stale Chrome DevTools reuse 2026-04-13 12:02:22 -04:00
Tam Nhu Tran 66e29691b0 test(ci): harden cursor models oversized-body fallback 2026-04-13 12:02:18 -04:00
Tam Nhu Tran b148d1ba66 fix(ci): stabilize update-command tests under parallel runners 2026-04-13 11:56:30 -04:00
Tam Nhu Tran 72d8f36b5d test(ci): update ai-review workflow runtime assertions 2026-04-13 11:38:09 -04:00
Tam Nhu Tran 026ff6cedd refactor(ci): make ai-review model/endpoint configurable via repository variables
- replace hardcoded GLM endpoint with vars.AI_REVIEW_BASE_URL
- replace hardcoded model with vars.AI_REVIEW_MODEL
- use secrets.AI_REVIEW_API_KEY for auth token
- add configuration reference in header comment
2026-04-13 11:27:15 -04:00
Tam Nhu Tran 6cfb171514 hotfix: restore bun types for stable release CI 2026-04-13 11:11:53 -04:00
Tam Nhu Tran 1d65ba7eb3 chore: merge latest dev into pr-976 branch 2026-04-13 09:42:36 -04:00
Tam Nhu Tran 31c464a3c5 chore: merge dev into pr-976 branch 2026-04-13 09:40:10 -04:00
Tam Nhu Tran d74b514dc5 test(image-analysis): cover circular dependency regression 2026-04-13 08:45:42 -04:00
Tam Nhu Tran 99a01bbf36 Merge remote-tracking branch 'origin/dev' into kai/fix/pr-974-browser-mcp-ci 2026-04-13 08:44:19 -04:00
Tam Nhu Tran 7b337e2f7d Merge remote-tracking branch 'origin/dev' into kai/fix/pr-974-browser-mcp-ci 2026-04-13 08:41:32 -04:00
Tam Nhu Tran a68bc46caf fix(test): isolate chrome reuse home env expectations 2026-04-13 08:41:19 -04:00
Tam Nhu Tran 7fc39f7c03 fix(cli): match managed prompt files by exact path 2026-04-13 08:39:59 -04:00
Tam Nhu Tran a63417e567 fix(ci): sync bun.lock for browser MCP types 2026-04-13 08:33:29 -04:00
Tam Nhu Tran 18e5cd5d94 feat(ui): persist paused account toggle state in localStorage 2026-04-12 16:59:04 -04:00
Tam Nhu Tran 8d8f4469b6 fix(websearch): reject blank searxng status urls 2026-04-12 14:46:56 -04:00
Tam Nhu Tran 54791b5cca Merge remote-tracking branch 'origin/dev' into kai/fix/958-searxng-pr-review 2026-04-12 06:32:27 -04:00
Tam Nhu Tran 8b553c35c1 fix(websearch): harden searxng url handling 2026-04-12 06:31:20 -04:00
Tam Nhu Tran 2719d7a6f7 fix(cursor): align auto-detect status and CI coverage 2026-04-12 04:42:28 -04:00
Tam Nhu Tran cf5df0630a fix(cursor): resolve PR review findings 2026-04-12 02:14:26 -04:00
Tam Nhu Tran e1049e38d4 feat(cursor): harden live probe and runtime contracts 2026-04-12 01:51:26 -04:00
Tam Nhu Tran 898e7a6321 hotfix: detect bun-owned installs through symlinked ccs path 2026-04-12 01:33:48 -04:00
Tam Nhu Tran 5076b212af fix(ui): clarify Gemini quota tooltip labels 2026-04-12 01:24:40 -04:00
Tam Nhu Tran 5f8e66ec1e hotfix: detect bun-owned installs through symlinked ccs path 2026-04-12 01:22:15 -04:00
Tam Nhu Tran 7776715eba fix(docker): delegate restart/install to supervisorctl in Docker deployments
The dashboard restart button and install service used local-mode process
management (stopProxy + ensureCliproxyService) which conflicts with
supervisord in Docker deployments. Killing the CLIProxy binary caused the
bootstrap wrapper to exit, supervisord to attempt a restart, but
ensureCliproxyService already spawned an orphaned process on :8317
resulting in EADDRINUSE and supervisord entering FATAL state.

Detect supervisord via /var/run/supervisor.sock and delegate to
supervisorctl restart, matching the pattern already used by
ccs docker update.

Closes #964
2026-04-11 17:50:11 -04:00
Tam Nhu Tran ef751723f5 test(ci): stop leaking update-command module mocks 2026-04-10 23:57:58 -04:00
Tam Nhu Tran b8aa59a8f0 test(ci): isolate config env and cli entry fallbacks 2026-04-10 23:26:12 -04:00
Tam Nhu Tran 4b9fa4e457 test(cliproxy): isolate session tracker config env 2026-04-10 23:19:49 -04:00
Tam Nhu Tran 94bcad2d1a fix(update): align no-update dependency injection 2026-04-10 23:06:37 -04:00
Tam Nhu Tran a4496ff1d9 fix(update): harden install verification flow 2026-04-10 22:44:46 -04:00
Tam Nhu Tran 59e04cb56f fix(update): isolate updater test dependencies 2026-04-10 22:27:07 -04:00
Tam Nhu Tran 2aaabb2deb fix(update): target the current CCS installation 2026-04-10 21:39:50 -04:00
Tam Nhu Tran c078a96337 fix(ui): type shared AGY compatibility lookup 2026-04-10 18:08:28 -04:00
Tam Nhu Tran 9458c432d8 chore: merge origin/dev into feature branch 2026-04-10 18:07:28 -04:00
Tam Nhu Tran 25dd9ab9e1 fix(cliproxy): align AGY preset aliases 2026-04-10 18:07:22 -04:00
Tam Nhu Tran 34d70442bf fix(cliproxy): keep new live provider models selectable 2026-04-10 18:07:22 -04:00
Tam Nhu Tran 0e4677f558 fix: sanitize cliproxy provider model pickers 2026-04-10 18:07:22 -04:00
Tam Nhu Tran 01c1193a99 fix(ui): guard optional raw model fields
- trim nullable alias and name fields safely in the raw model formatter

- satisfy strict TypeScript checks for partial raw config records

Refs #941
2026-04-10 17:47:37 -04:00
Tam Nhu Tran 42d5724f34 fix(ui): accept partial raw model records
- allow raw JSON model arrays with partial fields to format safely

- keep the requested=upstream review fixes compatible with raw editor input

Refs #941
2026-04-10 17:46:18 -04:00
Tam Nhu Tran 52ac29e7a8 fix(api): constrain preset target defaults
- limit preset default targets to persisted API profile targets

- add regression coverage for preset target resolution and profile target persistence
2026-04-10 17:44:25 -04:00
Tam Nhu Tran 92a769d773 fix(ui): harden provider model alias editing
- keep raw JSON model mappings aligned with requested=upstream semantics

- block malformed mapping lines instead of coercing them on save

- render saved mappings as requested to upstream and add regression coverage

Refs #941
2026-04-10 17:44:15 -04:00
Tam Nhu Tran e090c8b0d4 fix(image-analysis): preserve default runtime deps 2026-04-10 17:40:27 -04:00
Tam Nhu Tran 414e8c80f5 docs(roadmap): record Hugging Face preset support 2026-04-10 17:29:46 -04:00
Tam Nhu Tran 83255f4771 feat(api): add Hugging Face provider preset
- add the huggingface preset and hf alias to the shared preset catalog

- default the preset to Factory Droid because the documented path is generic chat completions

- cover the CLI and dialog behavior with preset metadata and UI tests
2026-04-10 17:29:25 -04:00
Tam Nhu Tran 49c4338f28 fix(ui): preserve requested provider model aliases
- keep requested=upstream semantics stable in the AI Providers editors

- preview the client-visible ANTHROPIC_MODEL instead of the upstream target

- add UI coverage for alias parsing and formatting helpers

Refs #941
2026-04-10 17:28:18 -04:00
Tam Nhu Tran 2f02ddfb74 fix(image-analysis): tolerate missing auth init dependency 2026-04-10 17:21:26 -04:00
Tam Nhu Tran 92a24786d6 fix(cliproxy): use type-only account provider import 2026-04-10 14:32:45 -04:00
Tam Nhu Tran b56b58c067 fix(cliproxy): preserve entitlement evidence on agy failures 2026-04-10 14:28:32 -04:00
Tam Nhu Tran 506b61eca6 fix(cliproxy): propagate agy entitlement failure metadata 2026-04-10 14:19:02 -04:00
Tam Nhu Tran 7c4545eb1b fix(cliproxy): attach entitlement evidence to agy failures 2026-04-10 13:42:51 -04:00
Tam Nhu Tran 7330fdbf28 fix(cliproxy): prefer live entitlement tier in account badges 2026-04-10 13:24:00 -04:00
Tam Nhu Tran f9c61e0fac docs(cliproxy): clarify gemini and agy tier semantics 2026-04-10 13:18:18 -04:00
Tam Nhu Tran bb331ff5d8 feat(cliproxy): add entitlement evidence for gemini and agy 2026-04-10 13:17:50 -04:00
Tam Nhu Tran 5f9bafe9cd fix(ui): address provider lane review notes 2026-04-10 06:31:58 -04:00
Tam Nhu Tran ad70f93b1b feat(ui): reposition providers around quality and local lanes 2026-04-10 05:50:26 -04:00
Tam Nhu Tran 63b67f1c1c feat(profiles): add local runtime readiness checks 2026-04-10 05:49:38 -04:00
Tam Nhu Tran d87a126938 test(cliproxy): cover managed pinned route hints 2026-04-10 01:16:31 -04:00
Tam Nhu Tran eaddfc467f fix(cliproxy): dedupe variant prefix sync 2026-04-10 01:16:31 -04:00
Tam Nhu Tran 40c4816acf fix(cliproxy): harden pinned routing follow-up 2026-04-10 01:16:31 -04:00
Tam Nhu Tran b6aa6fb0d4 fix(cliproxy): cover managed prefix review follow-up 2026-04-10 01:16:31 -04:00
Tam Nhu Tran 0c10cb6f47 fix(cliproxy): harden routing prefix sync and UI pinning 2026-04-10 01:16:31 -04:00
Tam Nhu Tran b8a8f84153 docs(roadmap): note cliproxy routing prefix clarity 2026-04-10 01:16:31 -04:00
Tam Nhu Tran 4d5e52828b feat(cliproxy): add pinned model routing prefixes 2026-04-10 01:16:31 -04:00
Tam Nhu Tran aedccec041 refactor(ui): align visible provider flow data 2026-04-09 18:31:49 -04:00
Tam Nhu Tran 94eda996e3 fix(ui): clarify filtered flow viz metrics 2026-04-09 17:51:37 -04:00
Tam Nhu Tran 3687de0625 fix(ui): add paused filter locale strings 2026-04-09 17:48:51 -04:00
Tam Nhu Tran 7b2743b845 test(ui): cover paused account flow viz filtering 2026-04-09 17:44:20 -04:00
Tam Nhu Tran a169917692 feat(ui): add paused filter to account flow viz 2026-04-09 17:44:15 -04:00
Tam Nhu Tran 7ac6d0a4d4 fix(review): harden quota retry and tooltip edge cases 2026-04-09 00:14:51 -04:00
Tam Nhu Tran b6fb443f57 fix(cliproxy): refresh non-default gemini quota tokens 2026-04-08 23:55:55 -04:00
Tam Nhu Tran a70eae558e fix(ui): restore searchable-select dropdown scrolling
- replace the popover list scroll area with a native overflow container

- keep keyboard navigation behavior while restoring wheel scroll in long dropdowns
2026-04-08 18:02:05 -04:00
Tam Nhu Tran 87f00c524d fix(ui): gate preset catalog reuse on query readiness
- only reuse provider catalogs after /api/cliproxy/catalog has resolved

- avoid passing synthesized static fallback catalogs into preset application

- cover quick-setup and cliproxy add-account flows with regression tests
2026-04-08 18:01:30 -04:00
Tam Nhu Tran 564ed3def7 fix(ui): reuse cached cliproxy catalogs for presets
- let applyDefaultPreset accept a caller-provided provider catalog

- pass cached catalog data from cliproxy and quick-setup flows

- add regression coverage for skipping the extra catalog fetch
2026-04-08 17:52:45 -04:00
Tam Nhu Tran 002b7feb1e docs(roadmap): record upstream cliproxy picker sync 2026-04-08 17:23:35 -04:00
Tam Nhu Tran 7bbf32ae9a feat(cliproxy): source model pickers from upstream catalogs
- fetch live provider model definitions through /api/cliproxy/catalog

- overlay CCS preset metadata without keeping UI dropdowns as the source of truth

- wire /cliproxy and quick setup to the upstream-backed catalog path
2026-04-08 17:23:35 -04:00
Tam Nhu Tran 1923fce2ed fix(logging): harden log storage and cleanup 2026-04-08 16:34:36 -04:00
Tam Nhu Tran a47cf022c6 test(logging): stabilize log reader cache refresh coverage 2026-04-08 16:06:45 -04:00
Tam Nhu Tran 6e39f338ce fix(logs-ui): stabilize the dashboard log layout 2026-04-08 15:57:15 -04:00
Tam Nhu Tran 42481c0bb9 fix(logging): address review feedback on cleanup and log reader 2026-04-08 15:57:15 -04:00
Tam Nhu Tran 382aa04ca0 feat(logs-ui): redesign the log viewer workspace
- reshape the page into a management-center style control surface

- add activity and CLIProxy error tabs with denser list/detail ergonomics

- switch filters to practical chip groups and update the page tests

Refs #926
2026-04-08 15:57:15 -04:00
Tam Nhu Tran 4c15a072dc fix(ci): track dashboard logs components
- unignore the new ui logs component directory

- add the missing logs viewer components required by ui build

Refs #926
2026-04-08 15:57:15 -04:00
Tam Nhu Tran 6c799b2e58 feat(logging): unify CCS runtime logs and dashboard viewer
- add a shared structured logging service with bounded retention

- expose native /api/logs endpoints and the dashboard /logs route

- wire focused runtime emitters, cleanup support, and feature tests

Refs #926
2026-04-08 15:57:15 -04:00
Tam Nhu Tran 548edda58b docs(logging): document structured logs workspace
- add roadmap note for the new CCS logging surface

- record logging architecture and codebase ownership

- add logging standards for bounded, redacted runtime logs

Refs #926
2026-04-08 15:57:14 -04:00
Tam Nhu Tran 5d1880abf5 docs(image-analysis): update MCP-first behavior docs 2026-04-08 13:36:45 -04:00
Tam Nhu Tran 64ecd8b3dc feat(image-analysis): make MCP-first provisioning self-healing 2026-04-08 13:36:05 -04:00
Tam Nhu Tran 103f0547c9 fix(recovery): harden shared commands startup recovery 2026-04-08 11:00:18 -04:00
Tam Nhu Tran 5bb5faa4b7 fix(cliproxy): tighten sidebar routing presentation 2026-04-07 19:48:07 -04:00
Tam Nhu Tran fabf3d4ad3 fix(cliproxy): streamline sidebar routing control 2026-04-07 18:22:05 -04:00