Commit Graph

7262 Commits

Author SHA1 Message Date
Pleasurecruise
ae2e5626c6 feat(code-cli): Add config UI for Gemini, Qwen, and Kimi tools
Add ConfigFieldPrimitives component for reusable config field logic.

Implement config field components for Gemini, Qwen, and Kimi CLI tools with support for advanced settings via configBlob.

Update injectCliConfig to apply managed settings to tool config files (JSON for Gemini/Qwen, TOML for Kimi).

Improve OpenCode endpoint resolution to handle mixed providers and model-specific endpoint types.

Add i18n translations for all three tools (en-us, zh-cn, zh-tw).

Update kimi-code npm package name to @moonshot-ai/kimi-code.

Add comprehensive tests for Gemini, Qwen, and Kimi config injection.
2026-07-02 20:04:08 +08:00
Pleasurecruise
dc41356f2b Merge remote-tracking branch 'origin/main' into refactor/code-cli
Signed-off-by: Pleasurecruise <3196812536@qq.com>

# Conflicts:
#	src/renderer/pages/code/__tests__/index.test.ts
#	src/renderer/pages/code/index.ts
2026-07-02 11:58:51 +08:00
Pleasurecruise
e031d6c37d fix: expand Code CLI integration
Adds IPC schemas/handlers for Code CLI actions, moves launch flow to the new request API, and extends support to Gemini CLI, Qwen Code, Kimi Code, Qoder CLI, and GitHub Copilot CLI. Also updates native config injection/cleanup, provider ordering, and the code tools UI to support providerless launches and the new tool metadata.
2026-07-02 11:56:03 +08:00
github-actions[bot]
5bb5dd8168 🤖 Daily Auto I18N Sync: Jul 02, 2026 (#16631)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
2026-07-02 11:23:39 +08:00
Gu JiaMing
7b43a16ceb fix(paintings): enable generated image context menu actions (#16608)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-07-02 11:17:25 +08:00
chenxue
c76b50724b feat(aihubmix): redirect provider links to inferera and follow configured base URL (#16607)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: chenxue <DDU1222@users.noreply.github.com>
2026-07-02 11:16:21 +08:00
Gu JiaMing
07d4c68bf7 fix(translate): continue translation when auto detection is unknown (#16604)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-07-02 11:14:18 +08:00
Gu JiaMing
6d9a41ec82 feat(translate): export translation result to notes (#16576)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-07-02 11:14:04 +08:00
LiuVaayne
0fc5ee4411 fix(qq-channel): reply to group messages with passive msg_id (#16599)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: Vaayne <liu.vaayne@gmail.com>
2026-07-02 11:13:51 +08:00
LiuVaayne
1fc92664c9 fix(channels-settings): use agent workspace for channel binding (#16569)
Signed-off-by: Vaayne <liu.vaayne@gmail.com>
2026-07-02 11:13:33 +08:00
Konv Suu
1ccc2044b2 perf(ip-service): cache IP country detection and invalidate on proxy change (#16051)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
2026-07-02 11:12:08 +08:00
fullex
15fb07a3c0 chore(agents-migration): remove dead v1 agents-db drizzle migrations
The resources/database/drizzle SQL files and meta snapshots are v1-era CherryClaw agents-db migrations with no runtime consumer — the active v2 migrations live in migrations/sqlite-drizzle and are loaded from app.database.migrations. Delete the directory and clean up the now-dangling references: three source comments in AgentsDbMappings.ts that cited the deleted SQL files as the v1 column-type source (the epoch-ms notes are kept inline), and a stale doc row in cherryclaw/scheduler.md pointing to a migration file that no longer exists.
2026-07-01 07:24:34 -07:00
亢奋猫
03ab285431 fix(agent-page): lazy load artifact file tree (#16577)
Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-07-01 19:16:17 +08:00
Pleasurecruise
8d68b0f051 fix: expand code CLI config editors
Adds OpenCode config controls and moves CLI injection logic into the code page area. Claude and Codex editors now expose additional advanced options, and the injection flow now persists the new Claude, Codex, and OpenCode settings into the generated CLI configs.
2026-07-01 15:57:25 +08:00
Pleasurecruise
84840a21f4 Merge remote-tracking branch 'origin/main' into refactor/code-cli
Signed-off-by: Pleasurecruise <3196812536@qq.com>

# Conflicts:
#	src/shared/data/preference/preferenceSchemas.ts
2026-07-01 14:45:52 +08:00
jd
461e45d133 feat(chat): independent classic/modern layout settings for conversations and work (#16434)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-01 11:27:58 +08:00
beyondkmp
4112ff3a2c fix(switch): use valid svg dimensions for thumb icon (#16592)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: beyondkmp <beyondkmp@gmail.com>
2026-06-30 20:14:42 +08:00
Asurada
00298533a4 feat(websearch): add firecrawl web search provider (#16344)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: ousugo <dkzyxh@gmail.com>
2026-06-30 20:14:17 +08:00
wangjuneng
1701b5cfc6 feat(rich-editor): add diagram preview rendering in code blocks (#16309)
Signed-off-by: Jun Wang <wangjuneng@gmail.com>
Signed-off-by: DESKTOP-BLE22GM\Administrator <wangjuneng@gmail.com>
2026-06-30 20:13:23 +08:00
Gu JiaMing
c993719569 fix(page-side-panel): scope portal via usePortalContainer, drop the root marker (#16555)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-06-30 20:06:57 +08:00
亢奋猫
366ecf63da refactor(provider): remove tokenflux providers (#16518)
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-06-30 19:52:35 +08:00
LiuVaayne
7a56306835 refactor(agent-skills): mirror skills centrally, pass SDK name whitelist (#15976)
Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Vaayne <liu.vaayne@gmail.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-30 19:51:07 +08:00
Phantom
4ef2889fd3 refactor(file-ref): split persistent ref ownership (#16532)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: eurfelux <eurfelux@gmail.com>
2026-06-30 18:44:44 +08:00
jd
72e1efa955 feat(composer): add hover remove popover to skill and knowledge tokens (#16596)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-06-30 17:59:30 +08:00
SuYao
dd90997792 fix(migration): always publish mcpServerIdMapping for empty server list (#16602)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-30 17:57:26 +08:00
槑囿脑袋
c7d96462bc feat(knowledge): add agent tool surface for knowledge bases (kb_list/kb_search/kb_read/kb_manage) (#16345)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: eeee0717 <chentao020717Work@outlook.com>
2026-06-30 15:27:54 +08:00
槑囿脑袋
f264138934 fix(knowledge): filter rag file processors by configured keys (#16564)
Signed-off-by: eeee0717_cherry_macmini <chentao020717Work@outlook.com>
2026-06-30 11:51:35 +08:00
Gu JiaMing
c73e2ca8de fix(composer): add tooltips and hover drag handle to queued follow-ups dock (#16558)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-06-30 11:27:30 +08:00
fullex
a77f6f5c9a docs(cache): require functional updaters to be side-effect-free
The setter updater contract previously said "must be pure" only in the sense of "don't mutate prev / return a new value" (the isEqual short-circuit footgun); it did not cover side effects inside the updater.

Document that updaters must also be side-effect-free: don't smuggle a derived value out (e.g. into an enclosing-scope variable) to drive post-write work, and don't rely on how often or when the updater runs. To react to what changed, derive it from the value transition in a useEffect that watches the value.

Deliberately does not promise single synchronous invocation, to keep the setter free to batch/retry/defer later. Updates the CacheSetStateAction type doc, the useCache @remarks (canonical reference for all three hooks), and cache-usage.md.
2026-06-29 07:57:25 -07:00
jd
090f9a43e9 fix(sortable): require primary pointer activation (#16574)
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-06-29 22:51:56 +08:00
Pleasurecruise
500f92d385 fix: move code CLI directory to tool level
Store the working directory on each CLI tool instead of per provider, and update the page, hook, and tests to use the shared tool directory. Also simplify the config editor to only show supported tools, refresh endpoint labeling, hide Cherry AI providers from metadata, and normalize Cherry provider keys to the lowercase prefix used by the generated config files.
2026-06-29 19:22:58 +08:00
SuYao
9b642d6953 fix(gateway): generate Gemini images via the language API (#16341)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 18:26:14 +08:00
jd
21e0e04abc feat(resource-dialogs): stepped create wizard for assistants and agents (#16496)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-06-29 18:25:15 +08:00
fullex
c8de372b7d refactor(cache): adopt functional setter updaters in renderer consumers
Now that the renderer cache hooks resolve functional updaters against the latest stored value, replace the hand-rolled ref + `typeof === 'function'` wrappers (TabsProvider, TranslatePage, GlobalSearchPanel) and the snapshot-based read-modify-write call sites (recent-items in AppShell/HomePage/AgentPage, emoji recents, message selection, recall-test history) with `setX(prev => ...)`. Each updater derives from `prev`, and the callbacks drop the cache value from their dependency arrays.

The mini-app keep-alive sites (hide / cleanup / sync) close the read-modify-write race where an app opened concurrently during a status mutation's await was clobbered by a stale snapshot. Fixes #16460.

Update the two local cache mocks (GlobalSearchPanel / RecallTestPanel tests) to resolve functional updaters like the real hook.
2026-06-29 02:15:40 -07:00
SuYao
f800a6f772 fix(selection): statically render built-in action icons (#16500)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 17:00:27 +08:00
Konv Suu
78d336e964 fix(quick-panel): smooth input popup exit animation (#16531)
Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: Konv Suu <hi@kovsu.com>
2026-06-29 17:00:20 +08:00
SuYao
6f112a23b8 feat(agent-runtime): guide agents to bundled bun/uv and block global installs (#16544)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 16:56:17 +08:00
SuYao
8ab076cb63 fix(citations): defer article parser imports (#16547)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 16:55:49 +08:00
SuYao
f3279576d1 fix(codeblock): lazy load special previews (#16525)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 16:55:31 +08:00
robin
65c54e5ce5 chore(deps): bump @openrouter/ai-sdk-provider to ^2.10.0 (#16467)
Signed-off-by: Robinnnnn <12162433+Robinnnnn@users.noreply.github.com>
2026-06-29 16:51:14 +08:00
fullex
b424475573 feat(cache): add functional updater support to renderer cache hooks
useCache, useSharedCache and usePersistCache setters now accept a React-style functional updater `(prev) => next` in addition to a concrete value. The updater resolves `prev` from the latest stored value at write time rather than the render-time snapshot, making read-modify-write correct across an `await` — the root cause of the keep-alive overwrite race behind #16460.

`prev` is typed shallow-readonly (`ReadonlyValue<T>`), so mutating it in place and returning the same reference — which the CacheService `isEqual` short-circuit would otherwise swallow silently — is a compile error. Concrete-value calls are unchanged, so existing consumers keep compiling.

The renderer useCache mock mirrors the functional branch with the same default fallback; docs and hook tests updated. Consumer call-site adoption lands separately.
2026-06-29 01:34:05 -07:00
jd
99337fe585 fix(agent-session): align auto naming with topics (#16497)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-06-29 15:54:37 +08:00
SuYao
af69f8cc43 fix(paintings): use motion react import (#16545)
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 13:19:09 +08:00
SuYao
611944599f refactor(deps): replace lodash with es-toolkit/compat and drop it (#16528)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 12:28:57 +08:00
jd
fce8c6a9a6 fix(composer): keep focus after opening panel tools (#16551)
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-06-29 12:20:17 +08:00
SuYao
252ab91321 refactor(composer): split chat placement variants (#16549)
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 12:15:21 +08:00
SuYao
c5f152e151 fix(write-tool): make Write tool file path clickable only after write completes (#16519)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 12:15:03 +08:00
SuYao
cb3a448896 fix(image-utils): defer capture dependencies (#16526)
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 12:14:45 +08:00
槑囿脑袋
63d807b506 fix(file-processing): refresh API key list after edits (#16494)
Signed-off-by: eeee0717_cherry_macmini <chentao020717Work@outlook.com>
2026-06-29 12:14:10 +08:00
SuYao
5c848feafa fix(custom-fetch): apply provider custom User-Agent request header (#16527)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-29 12:13:35 +08:00