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
Yehor Baklanov
45c231a717
feat(cli): add --append-system-prompt-file support
2026-04-13 06:37:19 +00:00
Wooseong Kim
a76265a7c0
fix(image-analysis): wrap defaultDeps in arrow functions to fix circular dep capture
...
Direct function references in defaultDeps (checkRemoteProxy, fetchRemoteAuthStatus,
getAuthStatus, getProxyTarget, initializeAccounts) are captured at module load time.
Due to circular dependencies in the module graph, auth-handler.js may not have
finished initializing when this module is first evaluated, causing these references
to be captured as undefined.
Wrapping each reference in an arrow function defers evaluation to call time,
by which point all modules are fully initialized.
isCliproxyRunning was already wrapped correctly; this patch applies the same
pattern consistently to all deps.
Fixes #973
2026-04-13 15:05:22 +09:00
walker1211
2527889d1d
test(ui): 修复彩色输出下的脆弱断言
2026-04-13 11:19:16 +08:00
walker1211
7754c6c0ff
test(browser): 修复 default profile browser launch 竞态测试
2026-04-13 11:19:16 +08:00
walker
26059c78dc
build(types): 补充 Bun 类型声明配置
2026-04-13 11:19:16 +08:00
walker and Claude Opus 4.6
74f028168d
fix(browser): 加固 browser_click 激活语义并修复相关验证阻塞
...
- 将 browser_click 调整为 mousedown/mouseup 后走 native click
- 在取消激活和中途 detached 场景下避免强制触发 native activation
- 补齐 browser_click 的回归测试与取消激活场景覆盖
- 修复 cliproxy 本地代理、Droid 环境隔离、图像分析 hook 与 proxy 集成测试的验证阻塞
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-13 11:19:16 +08:00
walker and Claude Opus 4.6
eb8149e8fa
feat(browser): 接入 CCS browser MCP 与最小交互闭环
...
新增 browser MCP 安装、Chrome 复用与运行时接线,
实现 navigate、click、type、take_screenshot 四个 phase-1 工具并补齐相关单测。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-13 11:19:16 +08:00
github-actions[bot]
efecd7c7d9
chore(release): 7.68.1-dev.6 [skip ci]
2026-04-12 21:03:50 +00:00
Tam Nhu Tran
18e5cd5d94
feat(ui): persist paused account toggle state in localStorage
2026-04-12 16:59:04 -04:00
github-actions[bot]
52d51b1402
chore(release): 7.68.1-dev.5 [skip ci]
2026-04-12 20:44:31 +00:00
Kai (Tam Nhu) Tran and GitHub
a18146b83e
Merge pull request #971 from kaitranntt/kai/feat/966-cursor-integration-usable
...
feat: make Cursor integration usable and supportable
2026-04-12 16:42:32 -04:00
github-actions[bot]
4b526e1c01
chore(release): 7.68.1-dev.4 [skip ci]
2026-04-12 20:03:53 +00:00
Kai (Tam Nhu) Tran and GitHub
affe07e1ea
Merge pull request #962 from sgaluza/feat/cliproxy-catalog-json
...
feat(cliproxy): add --json flag to catalog command
2026-04-12 16:02:03 -04:00
github-actions[bot]
66467f9409
chore(release): 7.68.1-dev.3 [skip ci]
2026-04-12 19:30:42 +00:00
Kai (Tam Nhu) Tran and GitHub
9b3d464bfb
Merge pull request #958 from buiducnhat/main
...
feat(websearch): add SearXNG provider support and configuration
2026-04-12 15:28:39 -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
github-actions[bot]
2eaf760d20
chore(release): 7.68.1-dev.2 [skip ci]
2026-04-12 05:47:44 +00:00
Kai (Tam Nhu) Tran and GitHub
d04c9abf09
Merge pull request #970 from kaitranntt/kai/feat/gemini-quota-tooltip-ux
...
fix(ui): clarify Gemini quota tooltip labels
2026-04-12 01:45:48 -04:00
github-actions[bot]
b2f584114a
chore(release): 7.68.1-dev.1 [skip ci]
2026-04-12 05:37:37 +00:00
github-actions[bot]
07120c9990
chore(sync): merge main into dev after release [skip ci]
...
# Conflicts:
# package.json
2026-04-12 05:35:40 +00:00
semantic-release-bot
d725a3c061
chore(release): 7.68.1 [skip ci]
...
## [7.68.1](https://github.com/kaitranntt/ccs/compare/v7.68.0...v7.68.1 ) (2026-04-12)
### Hotfixes
* detect bun-owned installs through symlinked ccs path ([5f8e66e ](https://github.com/kaitranntt/ccs/commit/5f8e66ec1e1ef9cceb135c560f9bd44c9269dd6b ))
2026-04-12 05:34:46 +00:00
Tam Nhu Tran
898e7a6321
hotfix: detect bun-owned installs through symlinked ccs path
2026-04-12 01:33:48 -04:00
Kai (Tam Nhu) Tran and GitHub
46f9567df5
Merge pull request #968 from kaitranntt/kai/hotfix-update-bun-install-detection
...
hotfix: detect bun-owned installs through symlinked ccs path
2026-04-12 01:32:39 -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
github-actions[bot]
ca8401e5fc
chore(release): 7.68.0-dev.1 [skip ci]
2026-04-11 22:13:58 +00:00
Kai (Tam Nhu) Tran and GitHub
7e52635706
Merge pull request #965 from kaitranntt/kai/fix/964-docker-restart-supervisord
...
fix(docker): delegate restart/install to supervisorctl in Docker deployments
2026-04-11 18:11:59 -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
Sergey Galuza
ef564cafdf
ci: retrigger validation
2026-04-11 21:08:08 +02: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
Sergey Galuza
7bf5b4b95e
fix(cliproxy): guard against undefined catalog and add issueUrl field
...
- Add null check for catalog entries from Partial<Record> type
- Include issueUrl in JSON output for broken model tracking
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:12:46 +02:00
Sergey Galuza
22acd96ba4
feat(cliproxy): add thinking config to catalog --json and test false values
...
- Include thinking support configuration (type, min, max, levels) in
JSON output for reasoning-capable models
- Add test verifying explicit false booleans are preserved (not omitted)
- Add test verifying thinking config appears for thinking models
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:12:46 +02:00
Sergey Galuza
9ac1ac9804
fix(cliproxy): preserve explicit false values in catalog --json
...
Use !== undefined checks instead of truthy checks so that explicitly
set false booleans (e.g. extendedContext: false) appear in JSON output,
allowing consumers to distinguish "not set" from "explicitly disabled".
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:12:46 +02:00
Sergey Galuza
fbfb130f4d
feat(cliproxy): include model metadata in catalog --json output
...
- Expose tier, description, deprecated, broken, extendedContext,
nativeImageInput fields (omitted when undefined)
- Simplify tests to use static imports instead of dynamic cache-busting
- Add integration tests verifying --json routing through handleCliproxyCommand
- Test --json priority over refresh/reset subcommands
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:12:46 +02:00
Sergey Galuza
509d2e4dd8
test(cliproxy): add catalog --json tests and clarify flag priority
...
- Add unit tests verifying JSON output structure, field filtering,
and minified format
- Document that --json takes priority over subcommands (refresh/reset)
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:12:46 +02:00
Sergey Galuza
ac92688cc5
docs(cliproxy): clarify catalog --json output format in JSDoc
...
Use TypeScript-style index signature notation instead of ambiguous
placeholder name in format description.
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:12:46 +02:00
Sergey Galuza
dceb6f6d37
feat(cliproxy): add --json flag to catalog command
...
Add machine-readable JSON output for `ccs cliproxy catalog --json`
to enable programmatic access to available models per provider.
Output format: { "provider": [{ "id": "...", "name": "..." }, ...] }
Closes CCS-1
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 20:12:46 +02:00
Sergey Galuza
79251d7af8
test(ci): add env isolation comment to persist-command-handler
...
Align with claudecode-env-stripping.test.ts style — explain why
CLAUDE_CONFIG_DIR is cleared in beforeEach for consistency across
test files.
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 17:29:15 +02:00
Sergey Galuza
1a7fc4a3f2
test(ci): improve test isolation readability per review feedback
...
- Extract NEUTRAL_PROFILE_TYPE constant with JSDoc explaining why
CCS_PROFILE_TYPE must be neutralised in subprocess env blocks
- Replace 6 bare '' occurrences with the named constant (DRY)
- Group save/delete operations in beforeEach with section comments
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 17:18:51 +02:00
buiducnhat
36d828f99c
feat(websearch): add url property to WebSearchProviderConfig interface
2026-04-11 19:35:41 +07:00
buiducnhat
eec8c8b4a3
feat(websearch): add SearXNG provider support and configuration
...
- Updated websearch.md to include SearXNG in the configuration guide.
- Implemented SearXNG JSON API integration in websearch-transformer.cjs.
- Enhanced unified-config-loader.ts to support SearXNG settings.
- Defined SearXNG configuration types in unified-config-types.ts.
- Updated hook-env.ts to manage SearXNG environment variables.
- Modified status.ts to include SearXNG in web search provider checks.
- Added SearXNG routes and validation in websearch-routes.ts.
- Implemented SearXNG provider tests in websearch-transformer.test.ts.
- Updated readiness tests to account for SearXNG in status.test.ts.
- Enhanced websearch routes tests to validate SearXNG settings.
- Added SearXNG configuration fields in the UI settings.
2026-04-11 16:43:59 +07:00
Sergey Galuza
2cc92e8bb8
test(ci): isolate CCS-managed env vars from host session
...
When tests run inside a CCS-managed Claude session, host env vars
(CLAUDE_CONFIG_DIR, CCS_PROFILE_TYPE) leak into subprocess spawns
and fixture setup, causing 9 test failures:
- persist-command-handler: reads real symlinked settings.json instead
of temp fixture because CLAUDE_CONFIG_DIR overrides scoped CCS_HOME
- websearch-transformer: hook silently exits via shouldSkipHook()
because CCS_PROFILE_TYPE=account triggers native_account_profile skip
- claudecode-env-stripping: normalizeSharedPluginMetadataPaths receives
leaked CLAUDE_CONFIG_DIR instead of undefined for default profiles
Fix: clear CCS-managed env vars in beforeEach and neutralize
CCS_PROFILE_TYPE in subprocess env blocks.
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 07:16:50 +02:00
semantic-release-bot
8e413e49f6
chore(release): 7.68.0 [skip ci]
...
## [7.68.0](https://github.com/kaitranntt/ccs/compare/v7.67.0...v7.68.0 ) (2026-04-11)
### Features
* **api:** add Hugging Face provider preset ([83255f4 ](https://github.com/kaitranntt/ccs/commit/83255f477197c9f74b472b36d9a0086030c10713 ))
* **cliproxy:** add entitlement evidence for gemini and agy ([bb331ff ](https://github.com/kaitranntt/ccs/commit/bb331ff5d8a9ff8bc387599a491335ffe89e7a1c ))
* **cliproxy:** add pinned model routing prefixes ([4d5e528 ](https://github.com/kaitranntt/ccs/commit/4d5e52828b9d20759bf20e7b4353192fbecfc868 ))
* **profiles:** add local runtime readiness checks ([63b67f1 ](https://github.com/kaitranntt/ccs/commit/63b67f1c1c270f3e4e6c1a676e1c9256f2577d99 ))
* **ui:** add paused filter to account flow viz ([a169917 ](https://github.com/kaitranntt/ccs/commit/a169917692016e1a01560c13c95a554da430cd38 ))
* **ui:** reposition providers around quality and local lanes ([ad70f93 ](https://github.com/kaitranntt/ccs/commit/ad70f93b1b95edb8d6f029a7613a44f3d2db83ab ))
### Bug Fixes
* **api:** constrain preset target defaults ([52ac29e ](https://github.com/kaitranntt/ccs/commit/52ac29e7a8a6f7450eb3c1daa357d84d0b03031f ))
* **cliproxy:** align AGY preset aliases ([25dd9ab ](https://github.com/kaitranntt/ccs/commit/25dd9ab9e14d7c4131c0cace99222346bfb006bc ))
* **cliproxy:** attach entitlement evidence to agy failures ([7c4545e ](https://github.com/kaitranntt/ccs/commit/7c4545eb1b35914a20762e14fdbd7832828b1324 ))
* **cliproxy:** cover managed prefix review follow-up ([b6aa6fb ](https://github.com/kaitranntt/ccs/commit/b6aa6fb0d4471b68fb795ef4ba2449f2a9f72788 ))
* **cliproxy:** dedupe variant prefix sync ([eaddfc4 ](https://github.com/kaitranntt/ccs/commit/eaddfc467fa4380d5c642ad7063442b6edc22efc ))
* **cliproxy:** harden pinned routing follow-up ([40c4816 ](https://github.com/kaitranntt/ccs/commit/40c4816acf36b3b79f13bf32862f7c88ed7debf4 ))
* **cliproxy:** harden routing prefix sync and UI pinning ([0c10cb6 ](https://github.com/kaitranntt/ccs/commit/0c10cb6f47d23db33cbce17456d46aee1843b9ae ))
* **cliproxy:** keep new live provider models selectable ([34d7044 ](https://github.com/kaitranntt/ccs/commit/34d70442bf132c6772dc528875377e4d16a221ec ))
* **cliproxy:** prefer live entitlement tier in account badges ([7330fdb ](https://github.com/kaitranntt/ccs/commit/7330fdbf2830911bcac09826cabf5929cc741be8 ))
* **cliproxy:** preserve entitlement evidence on agy failures ([b56b58c ](https://github.com/kaitranntt/ccs/commit/b56b58c0679d888baa7daa7526f8c06f2a49e16c ))
* **cliproxy:** propagate agy entitlement failure metadata ([506b61e ](https://github.com/kaitranntt/ccs/commit/506b61eca61381b8717d16b97be94b193e9fcbbf ))
* **cliproxy:** refresh non-default gemini quota tokens ([b6fb443 ](https://github.com/kaitranntt/ccs/commit/b6fb443f572cc5c1bb4e3763abd1aa6fa3ba14e5 ))
* **cliproxy:** use type-only account provider import ([92a2478 ](https://github.com/kaitranntt/ccs/commit/92a24786d674ca647caa44db9ee2ce638b843b55 ))
* **image-analysis:** preserve default runtime deps ([e090c8b ](https://github.com/kaitranntt/ccs/commit/e090c8b0d4e65eda3c9b4dcdd4ef0521c96a68b9 ))
* **image-analysis:** tolerate missing auth init dependency ([2f02ddf ](https://github.com/kaitranntt/ccs/commit/2f02ddfb74062aefa4d006ca16bec9a94a2272c7 ))
* **review:** harden quota retry and tooltip edge cases ([7ac6d0a ](https://github.com/kaitranntt/ccs/commit/7ac6d0a4d4a08113b48c008c1850dc6b089b66d1 ))
* sanitize cliproxy provider model pickers ([0e4677f ](https://github.com/kaitranntt/ccs/commit/0e4677f558a2231b7eef7eb3de5c7f0336bbb041 ))
* **ui:** accept partial raw model records ([42d5724 ](https://github.com/kaitranntt/ccs/commit/42d5724f34c03c48e1d5d963a85f7cf0a164e9b0 )), closes [#941 ](https://github.com/kaitranntt/ccs/issues/941 )
* **ui:** add paused filter locale strings ([3687de0 ](https://github.com/kaitranntt/ccs/commit/3687de062581b9968b3858b8c51a6cdbb23edcd3 ))
* **ui:** address provider lane review notes ([5f9bafe ](https://github.com/kaitranntt/ccs/commit/5f9bafe9cde488aed26e3c03be8ff84852723e74 ))
* **ui:** clarify filtered flow viz metrics ([94eda99 ](https://github.com/kaitranntt/ccs/commit/94eda996e3c0cee8cca50b5cc2c49f7284c7524e ))
* **ui:** guard optional raw model fields ([01c1193 ](https://github.com/kaitranntt/ccs/commit/01c1193a994cc6efc80135590d5bacaf3b78deed )), closes [#941 ](https://github.com/kaitranntt/ccs/issues/941 )
* **ui:** harden provider model alias editing ([92a769d ](https://github.com/kaitranntt/ccs/commit/92a769d773a8ec63fd02744aff60d3691df7cf94 )), closes [#941 ](https://github.com/kaitranntt/ccs/issues/941 )
* **ui:** preserve requested provider model aliases ([49c4338 ](https://github.com/kaitranntt/ccs/commit/49c4338f28f5b22ea8834d103582eccd2ad54c62 )), closes [#941 ](https://github.com/kaitranntt/ccs/issues/941 )
* **ui:** type shared AGY compatibility lookup ([c078a96 ](https://github.com/kaitranntt/ccs/commit/c078a9633736faa2b5e45d6a7345d3d2883c6a7b ))
* **update:** align no-update dependency injection ([94bcad2 ](https://github.com/kaitranntt/ccs/commit/94bcad2d1a7c843be5a75aba1140d997f7fcc0bd ))
* **update:** harden install verification flow ([a4496ff ](https://github.com/kaitranntt/ccs/commit/a4496ff1d944fbe989d1ae18f7f78eb470846731 ))
* **update:** isolate updater test dependencies ([59e04cb ](https://github.com/kaitranntt/ccs/commit/59e04cb56f4d8c8cde6733bc15d3b8d9be94ab9f ))
* **update:** target the current CCS installation ([2aaabb2 ](https://github.com/kaitranntt/ccs/commit/2aaabb2deb03253493a19191690c001113a44040 ))
### Documentation
* **cliproxy:** clarify gemini and agy tier semantics ([f9c61e0 ](https://github.com/kaitranntt/ccs/commit/f9c61e0faceae2532798bcfe7ff87d458024c6a3 ))
* **roadmap:** note cliproxy routing prefix clarity ([b8a8f84 ](https://github.com/kaitranntt/ccs/commit/b8a8f841536f89386e3452261037f0fdcc389059 ))
* **roadmap:** record Hugging Face preset support ([414e8c8 ](https://github.com/kaitranntt/ccs/commit/414e8c80f5ed5f4ed91766de85603abaa195bcbf ))
### Code Refactoring
* **ui:** align visible provider flow data ([aedccec ](https://github.com/kaitranntt/ccs/commit/aedccec0414fdffac049e4db8130e4f40b2cd744 ))
### Tests
* **ci:** isolate config env and cli entry fallbacks ([b8aa59a ](https://github.com/kaitranntt/ccs/commit/b8aa59a8f0d56e3a2589bf7714d54392a0325dd8 ))
* **ci:** stop leaking update-command module mocks ([ef75172 ](https://github.com/kaitranntt/ccs/commit/ef751723f5088ff39184e322cb69aa8186cf2053 ))
* **cliproxy:** cover managed pinned route hints ([d87a126 ](https://github.com/kaitranntt/ccs/commit/d87a126938d9d71b3bb0de163e4265111fa09944 ))
* **cliproxy:** isolate session tracker config env ([4b9fa4e ](https://github.com/kaitranntt/ccs/commit/4b9fa4e45787950c73d6b9792d8e1bf2c25a7f5b ))
* **ui:** cover paused account flow viz filtering ([7b2743b ](https://github.com/kaitranntt/ccs/commit/7b2743b845a822356f18de854ea201c72eb1f542 ))
2026-04-11 04:07:00 +00:00