Commit Graph

337 Commits

Author SHA1 Message Date
fullex
9b9570116a refactor(db): replace libsql with better-sqlite3 + sqlite-vec (#16626) 2026-07-02 13:21:13 +08:00
亢奋猫
6799541fb7 feat(data-api): add devtools panel (#16414)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-06-26 18:50:26 +08:00
SuYao
5706307451 refactor(ai-service): consolidate AI runtime to main process (#14911)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-06-05 00:06:51 +08:00
fullex
fa5bbb7607 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-05-28 19:38:52 -07:00
fullex
cc51ba36ad chore(app-identity): lowercase bundle id to com.cherryai.cherrystudio
Normalise the bundle id casing from com.cherryai.CherryStudio to
com.cherryai.cherrystudio so it follows the dominant lowercase
convention used by modern AI tools (Anthropic Claude, OpenAI Codex,
Raycast, Docker) and the reverse-DNS norm. macOS LaunchServices is
case-insensitive, so this is a no-op on existing installs - bundle-id
bound state stays as it was after 4439d3b28, and no new breaking-changes
entry is needed.

Touches the same five definition points as the original rebrand
(electron-builder appId, notarize appBundleId, AppUserModelID, selection
self-detection, preview workflow replaceAll/appId) plus the
breaking-changes doc body. The doc's historical commit-subject reference
for 4439d3b28 deliberately retains its original PascalCase to remain a
faithful quote of that commit's subject.
2026-05-27 21:43:06 -07:00
fullex
4439d3b283 chore(app-identity): rebrand bundle id to com.cherryai.CherryStudio
Rename the app bundle id from com.kangfenmao.CherryStudio to
com.cherryai.CherryStudio at every definition point: electron-builder
appId (packaging source of truth), macOS notarization appBundleId,
Windows AppUserModelID, and the selection self-detection allowlist.

Daily preview builds now use com.cherryai.CherryStudio.preview (a distinct
channel id rather than a case-only variant that macOS would treat as the
same app); the workflow replaceAll search strings are updated to the new
id so the preview identity patch keeps matching.

Incidental cleanups bundled in:
- Drop the unused MAIN_VITE_BUNDLE_ID env override; env.d.ts now declares
  the actually-used MAIN_VITE_CHERRYAI_CLIENT_SECRET instead of leaning on
  vite/client's any index signature.
- Remove the stale @kangfenmao/keyv-storage from pnpm.onlyBuiltDependencies.
- SearchService: use @main/core/platform isDev over electron-toolkit is.dev.
2026-05-27 08:31:22 -07:00
亢奋猫
e80b4a4c0b chore: release v1.9.7 (#15362)
### What this PR does

Before this PR:
Version 1.9.6 was the latest release.

After this PR:
Prepares release v1.9.7 with updated version and bilingual release notes
covering 18 commits since v1.9.6.

Fixes #

### Why we need it and why it was done in this way

This is a patch release that includes important bug fixes and new model
support. The changes focus on:

**New Features:**
- Support for grok-build-0.1 capabilities (reasoning, tool use, vision)
- StepFun provider now supports Claude Code / Anthropic-compatible mode
- DeepSeek V4 Flash and MiMo V2.5+ now properly support 1M context
window in Agent mode

**Bug Fixes:**
- Fix ExaMCP web search not returning result content correctly
- Fix code syntax highlighting issues in light theme
- Fix OpenCode launch failures after CLI updates
- Fix Agent mode not forwarding custom provider headers to Claude Code
- Fix Grok 4.3 reasoning effort support in xAI responses
- Improve OpenClaw migration message clarity
- Fix Gemini 3.x models using wrong UI and deprecated parameters
- Fix Qwen max series models incorrectly showing vision capability
- Fix AIHubMix reasoning effort configuration

The following tradeoffs were made:
None — this is a standard patch release with cherry-picked fixes.

The following alternatives were considered:
None — this follows the established release workflow.

Links to places where the discussion took place: N/A

### Breaking changes

None.

### Special notes for the reviewer

This is a release preparation PR. The release notes have been generated
from the 18 commits included in this release, focusing on user-facing
changes as required by the release guidelines.

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

```release-note
Cherry Studio 1.9.7 - Model Support & Bug Fixes

 New Features
- [Models] Added support for grok-build-0.1 capabilities (reasoning, tool use, vision)
- [Providers] StepFun now supports Claude Code / Anthropic-compatible mode with auto-filled endpoint
- [Agents] DeepSeek V4 Flash and MiMo V2.5+ now properly support 1M context window in Claude Code

🐛 Bug Fixes
- [Web Search] Fixed ExaMCP web search not returning result content correctly
- [Code Viewer] Fixed code syntax highlighting issues where tokens could disappear in light theme
- [OpenCode] Fixed launch failures after CLI updates by using package-local executable
- [Agents] Fixed Agent mode not forwarding custom provider headers to Claude Code
- [Models] Fixed Grok 4.3 reasoning effort support in xAI responses
- [OpenClaw] Improved migration message clarity when external PATH installation is detected
- [Models] Fixed Gemini 3.x models using wrong UI and sending deprecated sampling parameters
- [Models] Fixed Qwen max series models incorrectly showing vision capability
- [Providers] Fixed AIHubMix reasoning effort configuration not working properly
```

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-27 22:03:55 +08:00
fullex
7b556cf786 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-05-15 05:51:51 -07:00
亢奋猫
a574aa5e3f chore: release v1.9.6 (#15116)
<!-- Template from
https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?-->
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. Consider creating this PR as draft:
https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md
-->

<!--

🚨 Branch Strategy Change (Effective April 3, 2026) 🚨

The `main` branch is now under CODE FREEZE.

- main branch: Only accepts critical bug fixes via `hotfix/*` branches.
Fix PRs must be minimal in scope and must not include any refactoring
code.
- v2 branch: All new features, refactoring, and optimizations should be
submitted to the `v2` branch.

If you are submitting a bug fix to main, please ensure your PR is from a
`hotfix/*` branch.

-->

### What this PR does

Before this PR: Version was 1.9.5

After this PR: Version bumped to 1.9.6 with updated bilingual release
notes

<!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)`
format, will close the issue(s) when PR gets merged)*: -->

Fixes #

### Why we need it and why it was done in this way

This is an automated release preparation for version 1.9.6, containing
bug fixes collected since v1.9.5.

The following tradeoffs were made: None

The following alternatives were considered: None

Links to places where the discussion took place: N/A

### Breaking changes

None

### Special notes for your reviewer

**Review Checklist:**
- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

**Release Summary (English):**
- [AI] Fixed crash when chat model's stored provider no longer exists
- [AI] Fixed streaming requests aborted after 30 minutes during active
data transfer (affected models with extended thinking)
- [Agents] Fixed agent session creation failures when provider settings
change
- [Agents] Fixed deepseek-r1 models incorrectly showing function_calling
label causing errors in Agent mode
- [Agents] Use task name instead of agent name for cron task sessions
- [MCP] Fixed approval card not auto-expanding to show Run/Cancel
buttons
- [MCP] Clean up OAuth tokens when deleting servers
- [Code Tools] Fixed Codex CLI launch failure when using OpenAI or other
reserved providers
- [Claude Code] Fixed launch failures caused by auth conflicts with
provider environment variables
- [Image] Fixed gpt-image-2 multi-turn editing crash
- [Knowledge] Fixed HTTP/HTTPS/FTP URLs being stripped from Markdown
documents
- [OpenMinerU] Fixed preprocessing ENOENT errors due to ZIP structure
change
- [Qiniu] Fixed PDF upload regression for GPT-5.4 models

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [ ] PR: The PR description is expressive enough and will help future
contributors
- [ ] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [ ] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [ ] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [ ] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
3. Only include user-facing changes (new features, bug fixes visible to
users, UI changes, behavior changes). For CI, maintenance, internal
refactoring, build tooling, or other non-user-facing work, write "NONE".
-->

```release-note
Cherry Studio 1.9.6 - Bug Fixes

🐛 Bug Fixes
- [AI] Fixed crash when chat model's stored provider no longer exists
- [AI] Fixed streaming requests aborted after 30 minutes during active data transfer (affected models with extended thinking)
- [Agents] Fixed agent session creation failures when provider settings change
- [Agents] Fixed deepseek-r1 models incorrectly showing function_calling label causing errors in Agent mode
- [Agents] Use task name instead of agent name for cron task sessions
- [MCP] Fixed approval card not auto-expanding to show Run/Cancel buttons
- [MCP] Clean up OAuth tokens when deleting servers
- [Code Tools] Fixed Codex CLI launch failure when using OpenAI or other reserved providers
- [Claude Code] Fixed launch failures caused by auth conflicts with provider environment variables
- [Image] Fixed gpt-image-2 multi-turn editing crash
- [Knowledge] Fixed HTTP/HTTPS/FTP URLs being stripped from Markdown documents
- [OpenMinerU] Fixed preprocessing ENOENT errors due to ZIP structure change
- [Qiniu] Fixed PDF upload regression for GPT-5.4 models
```

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-15 19:45:51 +08:00
亢奋猫
fa2ac478d3 chore: release v1.9.5 (#14963)
### What this PR does

Before this PR:
- Version was 1.9.4
- Release notes were outdated

After this PR:
- Version bumped to 1.9.5
- Bilingual release notes updated with all changes since 1.9.4

This release includes 23 commits addressing bug fixes, improvements, and
one new feature across multiple components including search, backup,
models, agents, and more.

### Breaking changes

None. This is a patch release with backward-compatible bug fixes and
improvements.

### Special notes for your reviewer

- Review generated release notes in `electron-builder.yml`
- Verify version bump in `package.json`
- CI passes
- Merge to trigger release build

### Release note

```release-note
Cherry Studio 1.9.5 - Bug Fixes & Improvements

🐛 Bug Fixes
- [Search] Fixed built-in web search truncating assistant responses when web search was the only active tool
- [Messages] Fixed outer scrolling issue in horizontal multi-model layout
- [Backup] Fixed app hanging during restore when selection helper was enabled
- [Backup] Fixed silent data loss when restoring v6 .zip backups on macOS/Linux
- [Models] Fixed CherryIN OpenAI-protocol models not appearing in Agent model picker
- [Models] Fixed DeepSeek V4 model slugs not being detected for reasoning effort
- [Models] Fixed Tongyi model icon matching
- [Models] Fixed Claude Opus 4.7 support
- [Image] Fixed generated image re-editing in NewApiPage
- [Code Tools] Disabled opencode built-in auto-update check
- [API Server] Fixed trailing /v1 stripping from Anthropic SDK baseURL
- [Gateway] Fixed Vercel AI Gateway model list fetch

💄 Improvements
- [Agents] Show all sessions and agents in sidebar instead of capping at 20
- [Agents] Removed stale mcp__browser__* references from agent prompt
- [Models] Updated DeepSeek provider defaults to use V4 model IDs
- [Models] Added support for hosted Gemma 4 thinking mode
- [Feishu] Use emoji reaction as typing indicator
- [i18n] Fixed default assistant and topic names not updating on language switch
- [Vertex] Improved model list fetch and service account setup
- [Reasoning] Added enable_thinking param for SiliconFlow DeepSeek/Zhipu models
- [Claw] Added timeout_minutes parameter to cron tool

 New Features
- [Painting] Added gpt-image-2 support to AiHubMix provider
```

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-11 13:21:35 +08:00
fullex
6a6b47562b Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-04-29 20:32:41 -07:00
fullex
82b8417764 build(win): rename executable to CherryStudio.exe
Set win.executableName to CherryStudio so the installed binary matches
the no-space convention already used on Linux. productName remains
"Cherry Studio", so all user-visible branding (shortcut title, install
directory, uninstall list entry, window title) keeps the spaced form.

Update the userDataLocation test fixture and the i18n filter-list
example to reference the new file name.
2026-04-29 18:51:43 -07:00
亢奋猫
c813320bfc chore: release v1.9.4 (#14681)
### What this PR does

This is the release PR for Cherry Studio v1.9.4, a patch release that
includes bug fixes and new model support.

**Changes included in this release:**
- 12 commits since v1.9.3
- Version bump to 1.9.4
- Updated release notes in electron-builder.yml

### Release Notes

**English:**
Cherry Studio 1.9.4 - Bug Fixes & Model Support

🐛 Bug Fixes
- [OpenCode] NEWAPI provider models now appear in the dropdown and route
correctly
- [Image Generation] Fixed gpt-image-2/gpt-image-1.5 editing and
generation across multiple providers
- [Models] Fixed Kimi K2.6 requests being rejected due to unsupported
temperature settings
- [Gateway] Fixed Vercel AI Gateway model list fetch failing due to
missing authentication
- [Copilot] Fixed GitHub Copilot model synchronization

 New Features
- [Models] Added MiMo V2.5 model support with reasoning and calling
capabilities
- [Models] Added DeepSeek V4+ model support with reasoning effort
control (high/max)
- [Models] Mistral Small 4 now supports vision and adjustable reasoning
effort

💄 Improvements
- [Agents] Removed auto-injected @cherry/browser MCP (re-enable manually
if needed)

### Commits Included

b834886d ci(v2-preview): add daily preview build
8b9f8f7b fix(code-tools): support new-api providers and endpoint type
routing for OpenCode (#14511)
9a213eaa fix(gateway): pass user apiKey to createGateway when fetching
models (#14605)
26d877e0 hotfix(image-generation): fix gpt-image-2 / gpt-image-1.5
failures and stuck pending placeholder (#14578)
8ed7c075 hotfix(agents): drop @cherry/browser MCP auto-injection
(#14571)
1ae68c91 hotfix(models): disable temperature and top_p for Kimi K2.6
(#14580)
63be624f fix(models): add vision and reasoning_effort support for
mistral-small-2603 (#14541)
4e1e4548 hotfix(deepseek): forward reasoning effort for DeepSeek V4+ via
Claude endpoint (#14572)
5a1b20fe hotfix(models): add MiMo V2.5 model support (#14557)
774aa674 hotfix(copilot): github copilot model fetch (#14566)
e17d5737 hotfix(models): add DeepSeek V4+ model support with reasoning
effort (#14551)
19f2ed67 fix: remove push trigger for versioned tags in release workflow

### Review Checklist

- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json` (1.9.3 → 1.9.4)
- [ ] CI passes
- [ ] Merge to trigger release build

### Breaking Changes

None. The removal of auto-injected @cherry/browser MCP requires users
who depended on it to manually re-enable a browsing MCP.

### Checklist

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my code before requesting review from
others

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-28 13:02:35 +08:00
fullex
9dd9b04b91 chore(electron-builder): update resource paths for provider registry data
- Added new resource path for provider registry data in electron-builder.yml.
- Updated path in pathRegistry.ts to reflect the new resource structure.
2026-04-27 03:36:50 -07:00
亢奋猫
e72b77a09b chore: release v1.9.3 (#14523)
### What this PR does

This PR prepares the release of Cherry Studio v1.9.3.

**Release Summary:**

Cherry Studio 1.9.3 is a bug fix release that addresses 17 issues across
various components:

- [Web Search] Fix built-in web search repeatedly running and consuming
excessive tokens
- [Backup] Fix Windows backup failures caused by symlinks in the Data
directory
- [UI] Fix horizontal multi-model message scrolling issue on card edges
- [Models] Add support for OpenAI's gpt-image-2 model
- [MCP] Fix MCP SSE/streamableHttp servers timing out during
initialization
- [AI Core] Fix native tool-call conversations stopping after first
execution
- [Bedrock] Fix AWS Bedrock requests failing when API Host is blank
- [Agents] Fix agent skills page scroll position reset when toggling
skills
- [Feishu] Restore image message support from Feishu/Lark bot users
- [Proxy Providers] Fix structured output error with Claude models
through AiHubMix/NewAPI
- [API Server] Fix API server failing for providers with comma-separated
API keys
- [Agents] Fix Soul Mode dropping user-provided session instructions
- [File Upload] Support case-insensitive file extensions for
drag-and-drop uploads
- [Deep Links] Fix "Open in VS Code/Cursor/Zed" buttons being blocked
- [Proxy Providers] Fix custom parameters not being passed for
CherryIN/NewAPI
- [Claude Code] Fix Claude Code failing to launch on all platforms
- [Quick Panel] Fix model deselection bug when pasting messages with "@"

**Changes in this release:**

1. Updated version to 1.9.3 in `package.json`
2. Updated release notes in `electron-builder.yml`

### Included Commits

- 0636b601f fix: limit builtin web search usage (#14466)
- 930fdf75b fix: handle symlinks during backup copy (#14471)
- 09da6a336 fix: prevent outer scrolling in horizontal multi-model
messages (#13964)
- c0b3c880e hotfix(ai-sdk/openai): patch @ai-sdk/openai to support
gpt-image-2 (#14488)
- 5cc1b9c41 fix(mcp): delegate connect timeout to SDK to restore slow
SSE servers (#14348)
- 5d98273d8 fix(ai-core): keep native tool loops going (#14481)
- c4b3a93ab fix: prevent empty baseURL/region string in Bedrock provider
config (#14425)
- 47fb14c65 fix(useInstalledSkills): keep agent skills list stable while
toggling (#14472)
- fbf73962c fix(feishu): handle image messages from IM channel (#14421)
- 01caaf06f hotfix: disable native structured output for AiHubMix/NewAPI
Anthropic models (#14376)
- 3f463e178 fix(api-server): rotate comma-separated provider API keys
(#14346)
- ec4e787d1 fix(agents): preserve session instructions in Soul Mode
(#14424)
- ccb047c3c hotfix: Support case-insensitive file extensions for
drag-and-drop (#14416)
- 84240baa4 fix(security): allow vscode/cursor/zed deep-links in
openExternal (#14437)
- c2b330258 hotfix: Custom params dropped by CherryIN/NewAPI — respect
model.endpoint_type (#14409)
- 4c0ce8f79 fix: use cli-wrapper.cjs to launch claude-code instead of
native binary (#14430)
- cd6d84c84 fix(quick-panel): reset stale state on panel close to
prevent model deselection (#14378)

### Review Checklist

- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:13:49 +08:00
fullex
9f4026f5ec Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-04-20 01:39:00 -07:00
亢奋猫
260c5458f2 chore: release v1.9.2 (#14406)
### What this PR does

Before this PR:
- Version 1.9.1 was the latest release
- Several user-facing bugs and feature requests needed to be addressed

After this PR:
- Bumps version to 1.9.2
- Updates release notes with bilingual (English/Chinese) changelog

### Summary of Changes

This release includes 20 commits since v1.9.1, featuring:

**New Features:**
- Vietnamese language support (Tiếng Việt)
- Agents can now author and register new skills directly from chat
- Skills/memory tools now available to all agents

**Bug Fixes:**
- Agent settings now sync immediately to active sessions
- Fixed telemetry being sent despite data collection disabled
- Fixed CJK text search failures and added phrase search
- Fixed Obsidian export silently failing
- Fixed Ollama model loading and knowledge base issues
- Fixed custom parameters not passing to Gemini API via NewAPI/AiHubMix
- Various other fixes for Dify, Cherry Assistant, and OpenClaw

**Included Commits:**
- 2120fddf4 fix: update node-abi for Electron 41 packaging
- 7c2ada6d6 fix(analytics): respect data collection setting for all
tracking events
- da2302237 fix: Fix Ollama model list loading when metadata contains
null families values
- 76ec2f1c0 fix(export): add obsidian:// to allowed protocol whitelist
- d89ce0871 fix(search): support phrase search and fix CJK matching in
history search
- fbda0d213 hotfix: Custom params not passed to Gemini API when using
NewAPI/AiHubMix
- 7afabbdf2 fix(agents): set Cherry Assistant default avatar to 🍒
- b85c28d50 fix(knowledge): support Ollama knowledge embeddings
- 41554411d fix: sync builtin agent prompt updates to sessions
- 6b5cb0b76 feat(i18n): add Vietnamese (vi-VN) language support
- bf3235be8 fix(selection): upgrade electron to 41.2.1
- 0477bd0ad fix(skills): per-agent skill enablement with workspace
symlinks
- 68d32c7f7 fix: limit topic naming retries and timeout
- ae8f0888b fix(agents): add more skills button to agent skills settings
missing
- e2366b351 fix: update dify knowledge retrieval payload
- 0d7e13bd4 fix(skills): support agent-authored skills via skills tool
init/register
- 51eed6e74 fix(agents): sync agent settings changes to active session
- e54cfe97e fix(agents): set NODE_PATH so spawned Claude Code process
can resolve @img/sharp
- d75883d63 fix(openclaw): persist language selection in overview page

### Review Checklist

- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json` (1.9.1 → 1.9.2)
- [ ] CI passes
- [ ] Merge to trigger release build

### Release note

See the bilingual release notes in `electron-builder.yml` for full
details.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-20 13:55:26 +08:00
fullex
1fd54832e1 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-04-11 18:37:58 -07:00
beyondkmp
e54cfe97ea fix(agents): set NODE_PATH so spawned Claude Code process can resolve @img/sharp (#14183)
### What this PR does

Before this PR:
The forked Claude Agent SDK child process (`cli.js`) runs from
`asar.unpacked` but cannot resolve native modules like `@img/sharp` that
also live in `asar.unpacked`, because Node's module resolution doesn't
search that directory by default.

After this PR:
Injects `NODE_PATH` pointing to the `asar.unpacked/node_modules`
directory into the child process environment, so Node's module
resolution finds `@img/sharp` and other native modules correctly.

### Why we need it and why it was done in this way

The child process is forked via `node:child_process.fork()` with
`ELECTRON_RUN_AS_NODE=1`. Its module resolution starts from the SDK's
location inside `asar.unpacked` but doesn't automatically search sibling
`node_modules` at the unpacked root. Setting `NODE_PATH` is the standard
Node.js mechanism to add extra module search paths without patching
module internals.

The following alternatives were considered:
- Patching `Module._resolveFilename` via a `--require` bootstrap — more
invasive, harder to maintain.
- Symlinking sharp into the SDK's own `node_modules` in `before-pack.js`
— fragile across platforms.

### Breaking changes

None.

### Checklist

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: Write code that humans can understand and Keep it simple
- [x] Self-review: I have reviewed my own code before requesting review
from others

### Release note

```release-note
NONE
```

---------

Signed-off-by: beyondkmp <beyondkmp@gmail.com>
Signed-off-by: suyao <sy20010504@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: suyao <sy20010504@gmail.com>
2026-04-12 00:39:56 +08:00
fullex
e3ab9704b4 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-04-11 04:40:00 -07:00
kangfenmao
bd61bad7ee chore: release v1.9.1 2026-04-11 15:32:27 +08:00
fullex
6541948556 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-04-09 23:23:32 -07:00
亢奋猫
af2a16a01a chore: release v1.9.0 (#14142)
### What this PR does

This is a release PR for version 1.9.0. It updates the version number
and release notes.

Before this PR:
- Version was set to 1.9.0-rc.0 (release candidate)
- Release notes contained RC-specific content

After this PR:
- Version is now 1.9.0 (stable release)
- Release notes updated with all bug fixes and improvements since RC

### Why we need it and why it was done in this way

This marks the official 1.9.0 stable release after the RC testing
period. The release includes all bug fixes committed after 1.9.0-rc.0.

### Breaking changes

None. This is a version bump from RC to stable.

### Special notes for your reviewer

**Included commits (since v1.9.0-rc.0):**
- fix(models): add Ollama gemma4 format support for capability detection
(#14036)
- hotfix(mcp): preserve multi-element hub tool results (#14116)
- fix: optimize agent bootstrap startup time (~1.6s → ~270ms) (#14098)
- hotfix(channels): toggle single channel no longer reconnects all
channels (#14112)
- fix: prevent data loss when selecting model via keyboard shortcut
(#14130)
- fix: restore rich editor search state and scrolling (#14117)
- fix(ci): restore missing Linux build dependencies in nightly workflow
(#14105)
- hotfix(build): include resources directory files excluded by glob
pattern (#14121)
- fix(agents): remove conflicting language instruction from Cherry
Assistant (#14076)
- hotfix(think): MiMo thinking toggle (#14109)
- hotfix(renderer): rendering issue of the unescaped '|' in <sup> within
Markdown tables. (#14092)

### Checklist

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

```release-note
See release notes in electron-builder.yml for full details.

Key fixes since RC:
- [Models] Add Ollama gemma4 format support for Gemma 4 model capability detection
- [MCP] Fix Hub-mode MCP tool calls silently truncating list-style responses
- [Chat] Fix data loss when selecting model via keyboard shortcut
- [Notes] Fix note editor search state and scrolling
- [Build] Fix built-in skill files (.md) missing from packaged app
- [Agents] Fix Cherry Assistant ignoring user's language
- [Models] Fix Xiaomi MiMo thinking/non-thinking toggle behavior
```

Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-09 21:51:43 +08:00
fullex
fc30dc4429 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-04-09 04:37:58 -07:00
亢奋猫
b2d86507d8 hotfix(build): include resources directory files excluded by glob pattern (#14121)
### What this PR does

Before this PR:

Built-in skill `.md` files under `resources/skills/` were excluded from
the packaged app because the glob pattern `!**/*.{...md...}` in
`electron-builder.yml` matched them.

After this PR:

An explicit include rule `resources/**/*` is added so all resource files
(including `.md` skill definitions) are correctly packaged into the app.

### Why we need it and why it was done in this way

The `files` section in `electron-builder.yml` uses broad exclusion globs
to reduce bundle size (e.g., `!**/*.{...md...}`). This unintentionally
excludes `.md` files inside `resources/skills/`, which are required at
runtime for the built-in skills system.

Adding `resources/**/*` as an explicit include after the exclusion rules
overrides the glob for that directory, ensuring all resource files are
packaged. The `asarUnpack` section already lists `resources/**` so the
files will be correctly unpacked for runtime access.

The following tradeoffs were made:

None — this is a minimal one-line fix.

The following alternatives were considered:

Narrowing the `!**/*.md` exclusion to `!node_modules/**/*.md` was
considered but would be more fragile and could miss future resource
files.

### Breaking changes

None.

### Special notes for your reviewer

The `asarUnpack` section already includes `resources/**`, so no
additional unpack configuration is needed.

### Checklist

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

```release-note
Fix built-in skill files (.md) missing from packaged app due to electron-builder glob exclusion
```

Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-04-08 17:13:24 +08:00
fullex
da3ce01df3 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-04-03 03:27:57 -07:00
亢奋猫
2e7b605b5b chore: release v1.9.0-rc.0 (#13987)
### What this PR does

This is a release PR for Cherry Studio v1.9.0-rc.0.

**Changes included:**
- Bumped version from 1.8.4 to 1.9.0-rc.0
- Updated bilingual release notes in `electron-builder.yml`

**Release Notes Summary:**

 New Features
- CherryClaw autonomous agent type with personality-driven scheduling,
Telegram integration, and sandbox mode
- Terminal-style syntax highlighting for shell tool outputs
- Flomo MCP integration for note capture
- rtk token optimization (60-90% reduction) for agent shell commands
- Improved agent tool rendering with syntax-highlighted diffs and file
icons
- AI-powered error diagnosis with classification and guided resolution
- Topics list now respects pinTopicsToTop setting
- Added endpoint option for aionly provider

🐛 Bug Fixes
- new-api provider now uses configured host for Anthropic format
requests
- Claude Code sessions now respect proxy settings for child processes
- Code tool validates working directory before launch
- Fixed epub embedding failure
- Fixed KaTeX backslash corruption in Notes editor
- Fixed thinking time display race condition
- Fixed Poe provider model loading
- Fixed kimi-cli crash when uv binary not found
- Fixed invalid env variable names for providers with dots in name
- Fixed NVIDIA provider reasoning parameters for
Qwen/DeepSeek/Kimi/Zhipu
- Fixed Google Gemini web search for API-fetched models
- Fixed Qwen3.5 model detection for 3.9 series
- Fixed backup file size regression

💄 Improvements
- Fixed macOS traffic light alignment

 Performance
- Optimized backup compression level for faster backups

### Checklist

- [x] Review generated release notes in `electron-builder.yml`
- [x] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

### Included Commits

52 commits since v1.8.4, including:
- feat(agents): add CherryClaw autonomous agent type (#13359)
- feat: add AI-powered error diagnosis and guided resolution (#13894)
- feat: integrate rtk for reducing LLM token consumption (#13615)
- feat(mcp): add flomo built-in server (#13928)
- fix: resolve CherryIN supported_endpoint_types not being detected
- fix: use configured host for new-api anthropic format requests
(#13724)
- fix(agents): route Claude Code child process through proxies (#13895)
- fix: migrate epub to v2 async api (#13939)
- fix(notes): prevent KaTeX backslash corruption (#13910)
- fix(ThinkingBlock): prevent race condition in thinking time display
(#13934)
- fix(models): strip `models/` prefix from Google API model IDs (#13861)
- perf(backup): adjust compression level for speed optimization (#13882)
- And 40 more bug fixes and improvements

---------

Co-authored-by: SuYao <sy20010504@gmail.com>
2026-04-03 18:17:52 +08:00
beyondkmp
ea828787db fix(agents): route Claude Code child process through configured proxies (#13895)
### What this PR does

fix #13833

Before this PR:

Spawned Claude Code child processes did not reliably use the app's
configured proxy settings. HTTP proxy mode could work, but SOCKS proxy
mode could hang before the SDK returned any initial stream events.

After this PR:

Spawned Claude Code child processes inherit a dedicated Node-only proxy
bootstrap that applies the app's configured proxy settings for
fetch/undici, http/https, and axios. SOCKS proxy mode now avoids
exporting incompatible HTTP proxy env vars and emits clearer diagnostics
when proxy injection is active.

Fixes # None

### Why we need it and why it was done in this way

Claude Code runs as a standalone spawned `cli.js` process, so
main-process proxy patching and Electron session proxy configuration do
not automatically apply to it. This change builds a separate proxy
bootstrap, injects it only when proxy settings are configured, and keeps
the child-process proxy behavior aligned with the app's proxy settings
without changing the Claude SDK package itself.

The following tradeoffs were made:

- Added a separate build artifact for the Claude Code child-process
proxy bootstrap.
- Added child-process-specific proxy diagnostics to improve debugging
when proxy routing fails.
- Split SOCKS proxy environment handling from HTTP proxy handling to
avoid incompatible env combinations.

The following alternatives were considered:

- Relying only on inherited shell proxy environment variables.
- Relying on Electron session proxy configuration from the main process.
- Patching the Claude SDK package directly instead of injecting a local
bootstrap.

Links to places where the discussion took place: None

### Breaking changes

None.

If this PR introduces breaking changes, please describe the changes and
the impact on users.

No breaking changes.

### Special notes for your reviewer

- `out/proxy/index.js` is built as a standalone child-process bootstrap
and unpacked for packaged app usage.
- SOCKS proxy mode now exports `ALL_PROXY` / `SOCKS_PROXY` for the
Claude child process instead of forcing `HTTP_PROXY` / `HTTPS_PROXY` to
a SOCKS URL.
- Added tests covering HTTP vs SOCKS child-process proxy environment
generation.

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
3. Only include user-facing changes (new features, bug fixes visible to
users, UI changes, behavior changes). For CI, maintenance, internal
refactoring, build tooling, or other non-user-facing work, write "NONE".
-->

```release-note
Fixed Claude Code agent sessions so spawned child processes respect configured HTTP and SOCKS proxy settings.
```

---------

Signed-off-by: beyondkmp <beyondkmp@gmail.com>
Signed-off-by: Payne Fu <payne@Paynes-MacBook-Air.local>
Co-authored-by: Payne Fu <payne@Paynes-MacBook-Air.local>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: suyao <sy20010504@gmail.com>
Co-authored-by: 亢奋猫 <kangfenmao@qq.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
2026-04-03 14:18:02 +08:00
suyao
4dc1aac287 Merge remote-tracking branch 'origin/main' into DeJeune/merge-main-to-v2
Signed-off-by: suyao <sy20010504@gmail.com>

# Conflicts:
#	packages/aiCore/src/core/plugins/built-in/webSearchPlugin/helper.ts
#	pnpm-lock.yaml
#	src/main/ipc.ts
#	src/main/services/CodeCliService.ts
#	src/main/services/ProxyManager.ts
#	src/main/services/WebviewService.ts
#	src/main/services/WindowService.ts
#	src/main/services/__tests__/ProxyManager.test.ts
#	src/main/services/agents/services/claudecode/index.ts
#	src/preload/index.ts
#	src/renderer/src/aiCore/index_new.ts
#	src/renderer/src/aiCore/legacy/clients/BaseApiClient.ts
#	src/renderer/src/aiCore/legacy/clients/__tests__/index.clientCompatibilityTypes.test.ts
#	src/renderer/src/aiCore/legacy/clients/ovms/OVMSClient.ts
#	src/renderer/src/aiCore/legacy/clients/types.ts
#	src/renderer/src/aiCore/legacy/clients/zhipu/ZhipuAPIClient.ts
#	src/renderer/src/aiCore/legacy/middleware/feat/ImageGenerationMiddleware.ts
#	src/renderer/src/aiCore/plugins/PluginBuilder.ts
#	src/renderer/src/pages/code/CodeCliPage.tsx
#	src/renderer/src/pages/home/Messages/Blocks/ErrorBlock.tsx
#	src/renderer/src/pages/paintings/ZhipuPage.tsx
#	src/renderer/src/pages/settings/ProviderSettings/ModelList/ModelListItem.tsx
#	src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx
#	src/renderer/src/services/AssistantService.ts
#	src/renderer/src/services/__tests__/ApiService.test.ts
#	tsconfig.web.json
2026-04-02 18:03:03 +08:00
beyondkmp
285ff0f3a3 fix(agents): route Claude Code child process through configured proxies (#13895)
### What this PR does

fix #13833

Before this PR:

Spawned Claude Code child processes did not reliably use the app's
configured proxy settings. HTTP proxy mode could work, but SOCKS proxy
mode could hang before the SDK returned any initial stream events.

After this PR:

Spawned Claude Code child processes inherit a dedicated Node-only proxy
bootstrap that applies the app's configured proxy settings for
fetch/undici, http/https, and axios. SOCKS proxy mode now avoids
exporting incompatible HTTP proxy env vars and emits clearer diagnostics
when proxy injection is active.

Fixes # None

### Why we need it and why it was done in this way

Claude Code runs as a standalone spawned `cli.js` process, so
main-process proxy patching and Electron session proxy configuration do
not automatically apply to it. This change builds a separate proxy
bootstrap, injects it only when proxy settings are configured, and keeps
the child-process proxy behavior aligned with the app's proxy settings
without changing the Claude SDK package itself.

The following tradeoffs were made:

- Added a separate build artifact for the Claude Code child-process
proxy bootstrap.
- Added child-process-specific proxy diagnostics to improve debugging
when proxy routing fails.
- Split SOCKS proxy environment handling from HTTP proxy handling to
avoid incompatible env combinations.

The following alternatives were considered:

- Relying only on inherited shell proxy environment variables.
- Relying on Electron session proxy configuration from the main process.
- Patching the Claude SDK package directly instead of injecting a local
bootstrap.

Links to places where the discussion took place: None

### Breaking changes

None.

If this PR introduces breaking changes, please describe the changes and
the impact on users.

No breaking changes.

### Special notes for your reviewer

- `out/proxy/index.js` is built as a standalone child-process bootstrap
and unpacked for packaged app usage.
- SOCKS proxy mode now exports `ALL_PROXY` / `SOCKS_PROXY` for the
Claude child process instead of forcing `HTTP_PROXY` / `HTTPS_PROXY` to
a SOCKS URL.
- Added tests covering HTTP vs SOCKS child-process proxy environment
generation.

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
3. Only include user-facing changes (new features, bug fixes visible to
users, UI changes, behavior changes). For CI, maintenance, internal
refactoring, build tooling, or other non-user-facing work, write "NONE".
-->

```release-note
Fixed Claude Code agent sessions so spawned child processes respect configured HTTP and SOCKS proxy settings.
```

---------

Signed-off-by: beyondkmp <beyondkmp@gmail.com>
Signed-off-by: Payne Fu <payne@Paynes-MacBook-Air.local>
Co-authored-by: Payne Fu <payne@Paynes-MacBook-Air.local>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: suyao <sy20010504@gmail.com>
Co-authored-by: 亢奋猫 <kangfenmao@qq.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
2026-04-02 17:04:00 +08:00
fullex
467ade47a0 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2026-03-26 07:03:09 -07:00
亢奋猫
965ba03a2a chore: release v1.8.4 (#13824)
<!-- Template from
https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?-->
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. Consider creating this PR as draft:
https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md
-->

<!--

⚠️ Important: Redux/IndexedDB Data-Changing Feature PRs Temporarily On
Hold ⚠️

Please note: For our current development cycle, we are not accepting
feature Pull Requests that introduce changes to Redux data models or
IndexedDB schemas.

While we value your contributions, PRs of this nature will be blocked
without merge. We welcome all other contributions (bug fixes, perf
enhancements, docs, etc.). Thank you!

Once version 2.0.0 is released, we will resume reviewing feature PRs.

-->

### What this PR does

Before this PR:
- Version was at 1.8.3

After this PR:
- Bumps version to 1.8.4
- Updates release notes with bilingual (English/Chinese) content

### Release Notes

Cherry Studio 1.8.4 - Bug Fixes and New Features

**English:**
- [API] Add knowledge base REST API endpoints
- [SelectionAssistant] Add Linux support for text selection toolbar
- [Files] Fix PDF upload failing with "invalid part type: file" error
for OpenAI-compatible providers (Moonshot, DeepSeek, Groq, etc.)

**Chinese:**
- [API] 添加知识库 REST API 端点
- [选择助手] 为文本选择工具栏添加 Linux 支持
- [文件] 修复 OpenAI 兼容提供商(Moonshot、DeepSeek、Groq 等)的 PDF 上传失败问题("invalid
part type: file" 错误)

### Included Commits

1. fix(aiCore): remove openai-compatible providers from PDF native
support list (#13809)
2. feat(api): add knowledge base REST API endpoints (#13762)
3. feat(SelectionAssistant): Linux support (#13720)
4. fix(aiCore): add missing @openrouter/ai-sdk-provider dependency
(#13787)

(Skipped internal CI/CD changes)

### Review Checklist

- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

```release-note
Cherry Studio 1.8.4 - Bug Fixes and New Features

 New Features
- [API] Add knowledge base REST API endpoints
- [SelectionAssistant] Add Linux support for text selection toolbar

🐛 Bug Fixes
- [Files] Fix PDF upload failing with "invalid part type: file" error for OpenAI-compatible providers (Moonshot, DeepSeek, Groq, etc.)
```

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-26 20:28:12 +08:00
fullex
6d68ee6e4b merge main into v2 2026-03-26 00:44:55 -07:00
亢奋猫
fd32e3c515 chore: release v1.8.3 (#13788)
### What this PR does

Before this PR:
- Release v1.8.2 was the latest version
- Several bugs and user-facing issues needed to be addressed

After this PR:
- Version bumped to 1.8.3
- Release notes updated with bilingual changelog
- Release branch created for CI/CD release workflow

Fixes #N/A (release PR)

### Why we need it and why it was done in this way

This is a release PR that triggers the automated release workflow when
merged to main. The workflow builds binaries for macOS, Windows, and
Linux and creates a draft GitHub release.

The following tradeoffs were made:
- Includes only user-facing changes in release notes (internal
refactoring excluded)

The following alternatives were considered:
- N/A

### Breaking changes

None. This is a patch release with backward-compatible bug fixes and
feature additions.

### Special notes for your reviewer

This PR includes the following changes since v1.8.2:

**New Features (5):**
- [Onboarding] Add guided setup flow for new users with CherryIN OAuth
login
- [Code Tools] Add LMStudio and Ollama support for Claude Code
- [Models] Show model IDs for duplicate names in model pickers
- [Agents] Add OpenRouter support for Agent mode
- [Agents] Upgrade Agent SDK with ToolSearch

**Bug Fixes (13):**
- [Code Tools] Fix Windows error with tool update messages
- [Models] Fix OpenClaw config overwriting user settings
- [Paintings] Fix base64 image handling causing HTTP 413 errors
- [Files] Fix CherryAI provider PDF conversion
- [Files] Fix PDF text extraction in production builds
- [Agents] Fix agent chat scroll position memory
- [Startup] Fix app crash from missing canvas binaries
- [Models] Fix Groq multi-turn conversation errors
- [Memory] Fix assistant memory search
- [Citations] Fix Gemini citation over-matching
- [Agents] Fix reasoning effort button display
- [Models] Fix Claude 4.6 max_tokens calculation
- [MCP] Fix MCP tools only working on first prompt

### Checklist

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: Write code that humans can understand and Keep it simple
- [x] Refactor: You have left the code cleaner than you found it (Boy
Scout Rule)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A user-guide update was considered and is present
(link) or not required
- [x] Self-review: I have reviewed my own code before requesting review
from others

### Release note

```release-note
Cherry Studio 1.8.3 - New Features and Bug Fixes

 New Features
- [Onboarding] Add guided setup flow for new users with CherryIN OAuth login and automatic model configuration
- [Code Tools] Add LMStudio and Ollama support for Claude Code
- [Models] Show model IDs for duplicate names in model pickers
- [Agents] Add OpenRouter support for Agent mode (Claude Code SDK)
- [Agents] Upgrade Agent SDK with ToolSearch for efficient MCP tool discovery

🐛 Bug Fixes
- [Code Tools] Fix Windows error where tool update messages were misinterpreted as commands
- [Models] Fix OpenClaw config overwriting user settings on every restart
- [Paintings] Fix base64 image handling causing HTTP 413 errors in follow-up messages
- [Files] Fix CherryAI provider not converting PDF files to text
- [Files] Fix PDF text extraction failing in production builds
- [Agents] Fix agent chat page not remembering scroll position when switching sessions
- [Startup] Fix app crash caused by missing canvas platform binaries
- [Models] Fix Groq multi-turn conversation errors
- [Memory] Fix assistant memory search returning no results
- [Citations] Fix Gemini citation over-matching with short text segments
- [Agents] Fix reasoning effort button not showing for reasoning models
- [Models] Fix max_tokens calculation for Claude 4.6 models with adaptive thinking
- [MCP] Fix MCP tools only working on the first prompt

💄 Improvements
- [Models] Use the same model popup for Chat and Agent with consistent features
- [Agents] Add revealing animation for agent session renaming
```

**Review Checklist:**
- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-25 20:18:52 +08:00
fullex
a26ac9a580 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2
Signed-off-by: fullex <0xfullex@gmail.com>

# Conflicts:
#	package.json
#	pnpm-lock.yaml
#	src/main/apiServer/utils/index.ts
#	src/main/index.ts
#	src/main/services/AnalyticsService.ts
#	src/main/services/AppUpdater.ts
#	src/main/services/__tests__/BackupManager.test.ts
#	src/main/utils/__tests__/process.test.ts
#	src/renderer/src/components/Popups/BackupPopup.tsx
#	src/renderer/src/components/Popups/SelectModelPopup/agent-model-popup.tsx
#	src/renderer/src/components/Popups/SelectModelPopup/base-popup.tsx
#	src/renderer/src/pages/agents/AgentChat.tsx
#	src/renderer/src/pages/code/CodeToolsPage.tsx
#	src/renderer/src/pages/home/components/SelectModelButton.tsx
#	src/renderer/src/pages/settings/AssistantSettings/AssistantModelSettings.tsx
#	src/renderer/src/pages/settings/DataSettings/DataSettings.tsx
#	src/renderer/src/store/settings.ts
#	src/renderer/src/store/thunk/__tests__/streamCallback.integration.test.ts
2026-03-22 22:25:42 -07:00
亢奋猫
dbc755c0df chore: release v1.8.2 (#13639)
<!-- Template from
https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?-->
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. Consider creating this PR as draft:
https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md
-->

<!--

⚠️ Important: Redux/IndexedDB Data-Changing Feature PRs Temporarily On
Hold ⚠️

Please note: For our current development cycle, we are not accepting
feature Pull Requests that introduce changes to Redux data models or
IndexedDB schemas.

While we value your contributions, PRs of this nature will be blocked
without merge. We welcome all other contributions (bug fixes, perf
enhancements, docs, etc.). Thank you!

Once version 2.0.0 is released, we will resume reviewing feature PRs.

-->

### What this PR does

Release Cherry Studio v1.8.2

Before this PR:
- Version 1.8.1 is the latest release

After this PR:
- Version 1.8.2 with bug fixes and model updates

<!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)`
format, will close the issue(s) when PR gets merged)*: -->

Fixes #

### Why we need it and why it was done in this way

This is a patch release that includes:
- Bug fixes for knowledge base, message search, and backup restoration
- New model support for Xiaomi MiMo-V2-Pro and MiMo-V2-Omni
- MiniMax default model upgrade to M2.7

The following tradeoffs were made:
- N/A — this is a scheduled patch release

The following alternatives were considered:
- N/A — standard release workflow

Links to places where the discussion took place: <!-- optional: slack,
other GH issue, mailinglist, ... -->

### Breaking changes

<!-- optional -->

None. This is a patch release with no breaking changes.

### Special notes for your reviewer

<!-- optional -->

**Release Review Checklist:**

- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json` (1.8.1 → 1.8.2)
- [ ] CI passes
- [ ] Merge to trigger release build

**Included Commits:**

- 8124236 fix(config): update app upgrade segments and include new
gateway version
- 62c1eb2 fix: correct parameter order in knowledgeSearchTool call
(#13635)
- bb3dec9 fix(MessageHeader): crash when clicking topic in message
search (#13627)
- 24645d3 fix(tests): resolve Windows test failures and upgrade prek
(#13619)
- 0b08fd9 refactor: remove manual install update logic and related API
calls
- f517a07 fix(BackupManager): update data destination path for backup
restoration
- f658484 refactor(ConfigManager): remove legacy config migration logic
- c1c1b34 chore: Add CI check scripts to package.json (#13564)
- 78decc4 feat(model): add support for MiMo-V2-Pro and MiMo-V2-Omni
(#13613)
- d081b05 fix: Format provider API hosts in API server (#13198)
- e4112ba feat: upgrade MiniMax default model to M2.7 (#13593)

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [ ] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [ ] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [ ] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [ ] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
3. Only include user-facing changes (new features, bug fixes visible to
users, UI changes, behavior changes). For CI, maintenance, internal
refactoring, build tooling, or other non-user-facing work, write "NONE".
-->

```release-note
Cherry Studio 1.8.2 - Bug Fixes and Model Updates

🐛 Bug Fixes
- [Knowledge Base] Fix knowledge base content not being delivered to the model when selected in conversation
- [Search] Fix crash when clicking topic title in message search results
- [Backup] Fix backup restoration path issue

 New Features
- [Models] Add support for Xiaomi MiMo-V2-Pro and MiMo-V2-Omni models with reasoning control and tool use capabilities

💄 Improvements
- [Models] Upgrade MiniMax default model to M2.7 with enhanced reasoning and coding capabilities
```

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-19 19:17:38 +08:00
亢奋猫
4e0f2e6dbb chore: release v1.8.1 (#13605)
<!-- Template from
https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?-->
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. Consider creating this PR as draft:
https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md
-->

<!--

⚠️ Important: Redux/IndexedDB Data-Changing Feature PRs Temporarily On
Hold ⚠️

Please note: For our current development cycle, we are not accepting
feature Pull Requests that introduce changes to Redux data models or
IndexedDB schemas.

While we value your contributions, PRs of this nature will be blocked
without merge. We welcome all other contributions (bug fixes, perf
enhancements, docs, etc.). Thank you!

Once version 2.0.0 is released, we will resume reviewing feature PRs.

-->

### What this PR does

Before this PR:
Version 1.8.0 is the current release

After this PR:
Release v1.8.1 with bug fixes and improvements

<!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)`
format, will close the issue(s) when PR gets merged)*: -->

Fixes #

### Why we need it and why it was done in this way

Automated release for version 1.8.1

The following tradeoffs were made:
N/A

The following alternatives were considered:
N/A

Links to places where the discussion took place: N/A

### Breaking changes

None

### Special notes for your reviewer

This is an automated release PR. Merging this PR will trigger the
release build workflow.

### Checklist

This checklist is not enforcing, but it is a reminder of items that
could be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [ ] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
3. Only include user-facing changes (new features, bug fixes visible to
users, UI changes, behavior changes). For CI, maintenance, internal
refactoring, build tooling, or other non-user-facing work, write "NONE".
-->

```release-note
Cherry Studio 1.8.1 - Quick Fixes

🐛 Bug Fixes
- [Agents] Fix thinking mode 400 error on non-Anthropic providers
- [macOS] Add manual download option for users who cannot auto-update due to code signing change
- [Windows] Fix Windows Terminal launch failing on non-English systems
- [Windows] Fix CLI tools (qwen-code, Copilot CLI) failing to start on Windows
- [Azure] Fix dated API versions routing to wrong transport
- [Editor] Fix Zed editor unable to open directories from agent workspace

 New Features
- [Agents] Clickable file paths in tool outputs — click to open files, with dropdown to reveal in Finder or open in external editors

💄 Improvements
- [Backup] Enhanced backup system with new format (v6), improved security, and config.json now included in backups
```

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-18 21:22:14 +08:00
fullex
cc697894fc Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2
Signed-off-by: fullex <0xfullex@gmail.com>

# Conflicts:
#	.agents/skills/.gitignore
#	.agents/skills/public-skills.txt
#	.claude/skills/.gitignore
#	.github/CODEOWNERS
#	.oxlintrc.json
#	CLAUDE.md
#	biome.jsonc
#	package.json
#	src/main/services/AnalyticsService.ts
#	src/main/services/AppUpdater.ts
#	src/main/services/agents/services/SessionService.ts
#	src/renderer/src/Router.tsx
#	src/renderer/src/aiCore/legacy/clients/BaseApiClient.ts
#	src/renderer/src/components/Icons/SVGIcon.tsx
#	src/renderer/src/components/Popups/UpdateDialogPopup.tsx
#	src/renderer/src/components/app/Sidebar.tsx
#	src/renderer/src/config/minapps.ts
#	src/renderer/src/config/providers.ts
#	src/renderer/src/config/sidebar.ts
#	src/renderer/src/hooks/agents/useActiveAgent.ts
#	src/renderer/src/hooks/agents/useAgentSessionInitializer.ts
#	src/renderer/src/hooks/agents/useAgents.ts
#	src/renderer/src/hooks/agents/useCreateDefaultSession.ts
#	src/renderer/src/hooks/useApiServer.ts
#	src/renderer/src/hooks/useAppUpdate.ts
#	src/renderer/src/pages/agents/AgentSettingsTab.tsx
#	src/renderer/src/pages/agents/components/AgentSessionInputbar.tsx
#	src/renderer/src/pages/agents/components/Sessions.tsx
#	src/renderer/src/pages/home/Chat.tsx
#	src/renderer/src/pages/home/HomePage.tsx
#	src/renderer/src/pages/home/Inputbar/tools/components/WebSearchQuickPanelManager.tsx
#	src/renderer/src/pages/home/Messages/MessageHeader.tsx
#	src/renderer/src/pages/home/Navbar.tsx
#	src/renderer/src/pages/home/Tabs/AssistantsTab.tsx
#	src/renderer/src/pages/home/Tabs/SessionsTab.tsx
#	src/renderer/src/pages/home/Tabs/TopicsTab.tsx
#	src/renderer/src/pages/home/Tabs/components/AssistantItem.tsx
#	src/renderer/src/pages/home/Tabs/components/AssistantTagGroups.tsx
#	src/renderer/src/pages/home/Tabs/components/Topics.tsx
#	src/renderer/src/pages/home/Tabs/components/UnifiedAddButton.tsx
#	src/renderer/src/pages/home/Tabs/components/UnifiedList.tsx
#	src/renderer/src/pages/home/Tabs/hooks/useActiveAgent.ts
#	src/renderer/src/pages/home/Tabs/index.tsx
#	src/renderer/src/pages/home/components/ChatNavBar/ChatNavbarContent/index.tsx
#	src/renderer/src/pages/home/components/ChatNavBar/Tools/SettingsButton.tsx
#	src/renderer/src/pages/home/components/ChatNavBar/Tools/SettingsTab/AssistantSettingsTab.tsx
#	src/renderer/src/pages/settings/AboutSettings.tsx
#	src/renderer/src/pages/settings/AgentSettings/components/ModelSetting.tsx
#	src/renderer/src/pages/settings/AssistantSettings/AssistantModelSettings.tsx
#	src/renderer/src/pages/settings/WebSearchSettings/BasicSettings.tsx
#	src/renderer/src/pages/settings/WebSearchSettings/WebSearchProviderSetting.tsx
#	src/renderer/src/pages/settings/WebSearchSettings/index.tsx
#	src/renderer/src/services/messageStreaming/callbacks/baseCallbacks.ts
#	src/renderer/src/store/runtime.ts
#	src/renderer/src/store/thunk/__tests__/streamCallback.integration.test.ts
#	src/renderer/src/types/index.ts
#	tsconfig.node.json
#	tsconfig.web.json
2026-03-17 06:17:41 -07:00
亢奋猫
a2ac99c8da chore: release v1.8.0 (#13500)
### What this PR does

Release Cherry Studio v1.8.0 with new features, bug fixes, and
improvements.

### Release Notes

Cherry Studio 1.8.0 - Agents & Performance

 New Features
- [Agents] Added drag-and-drop manual sorting for agent and session
lists
- [Models] Added MiniMax M2.5 highspeed model support

🐛 Bug Fixes
- [Agents] Fixed deleting last accessible directory bug - delete button
now disabled when only one remains
- [UI] Fixed web search providers not showing for local models (e.g.,
Ollama) in chat toolbar
- [Models] Fixed reasoning effort and summary mode not applying for some
OpenAI-compatible providers
- [Gateway] Fixed gateway status detection for
crashed/externally-stopped gateways
- [Gateway] Improved gateway startup error messages with detailed
diagnostics
- [Poe] Fixed web_search parameter not being passed correctly when
built-in search is enabled

💄 Improvements
- [Agents] Added configurable maximum tool calls setting (1-100) in
assistant settings
- [UI] Added Windows Mica effect for better visual integration
- [Performance] Increased default request timeout from 10 to 30 minutes
for slow local models

### Included Commits

- 888ce83fc feat(streaming): replace fixed timeout with resettable idle
timeout
- 31cd13ae8 fix(agents): improve navbar layout for agent status screens
- 590815bbd fix(openclaw): improve gateway startup diagnostics and fix
UI polling loop
- 878861db8 fix(scripts): add fallback to GitCode mirror when GitHub
download fails
- 6eb461dd1 feat(skills): add vercel-react-best-practices skill
- 74c892fe1 fix(agents): prevent deleting the last accessible directory
- fe0678a20 chore: migrate .claude/skills to directory symlinks
- 19bd2cdd9 feat(ui): enable windows mica effect
- 8b98b8f9c fix(agents): use correct SWRInfinite cache key and add
optimistic update for session editing
- c6ce1deec fix(ui): show web search providers for all models
- e860dd448 feat(agents): add manual drag-and-drop sorting for agent and
session lists
- f0f04eeda docs: update agents.db path in CLAUDE.md after #13392
- 46ad0fa5d feat: add MiniMax-M2.5-highspeed model
- 774cb7a73 fix(openclaw): fix gateway status detection and improve
error reporting
- f3244c3e9 fix(aiCore): bypass AI SDK model ID allowlist for reasoning
detection
- d676b3b39 chore: add Zed editor settings example, clean up configs,
and improve dev guides
- aeae3be69 fix: increase default request timeout from 10 to 30 minutes
- 9c3c99036 feat: separate Agent into independent module with dedicated
page and route
- ea694c630 feat(assistant): add configurable max tool calls setting
- 97011c8bb feat(openclaw): binary download install, auto update check,
and gateway refactor
- 4aef24915 fix: correctly pass poe web_search via extra_body when
built-in search is enabled

### Review Checklist

- [ ] Review generated release notes in electron-builder.yml
- [ ] Verify version bump in package.json
- [ ] CI passes
- [ ] Merge to trigger release build

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: SuYao <sy20010504@gmail.com>
2026-03-16 15:17:38 +08:00
亢奋猫
8dd42eb8ba chore: release v1.7.25 (#13438)
### What this PR does

Before this PR:
- Version is 1.7.24

After this PR:
- Version is 1.7.25
- Release notes updated in `electron-builder.yml`

### Why we need it and why it was done in this way

Standard release workflow: collect commits since v1.7.24, generate
bilingual release notes, bump version.

The following tradeoffs were made:
N/A

The following alternatives were considered:
N/A

### Breaking changes

**Action Required**: The built-in filesystem MCP server now requires
manual approval for write/edit/delete operations by default.

### Special notes for your reviewer

**Included commits since v1.7.24:**

 New Features:
- feat(websearch): add Querit search provider (#13050)
- feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax
Global, Z.ai providers (#13099)
- feat(provider): add agent support filter for provider list (#11932)
- feat(agent): add custom environment variables to agent configuration
(#13357)
- feat: add GPT-5.4 support (#13293)
- feat(gemini): add thought signature persistence (#13100)

🐛 Bug Fixes:
- fix: secure built-in filesystem MCP root handling (#13294)
- fix: check underlying tool permissions for hub invoke/exec (#13282)
- fix: remove approval countdown timers and add system notifications
(#13281)
- fix: agent tool status not stopping on abort (#13111)
- fix: resolve spawn ENOENT on Windows for Code Tools (#13405)
- fix: Use default assistant for topic auto-renaming (#13387)
- fix(backup): defer auto backup during streaming response (#13307)
- fix(ui): fix Move To submenu overflow (#13399)
- fix: render xml fenced svg blocks as svg previews (#13431)
- fix: correct Gemini reasoning params (#13388)
- fix: improve Qwen 3.5 reasoning model detection (#13235)
- fix: upgrade xAI web search to Responses API (#12812)
- fix(api-server): relax chat completion validation (#13279)
- fix: install or uninstall button state issues (#13114)
- fix: improve update dialog behavior (#13363)
- fix: auto-convert reasoning_effort to reasoningEffort (#12831)

### Checklist

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: Write code that humans can understand and Keep it simple
- [x] Refactor: You have left the code cleaner than you found it (Boy
Scout Rule)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A user-guide update was considered and is present
(link) or not required.
- [x] Self-review: I have reviewed my own code before requesting review
from others

### Release note

```release-note
See release notes in electron-builder.yml
```

---------

Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-03-13 16:48:15 +08:00
fullex
2104e234af Merge 'main' into v2 2026-03-12 02:20:13 -07:00
亢奋猫
2272f9c255 chore: release v1.7.24 (#13231)
<!-- Template from
https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?-->
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. Consider creating this PR as draft:
https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md
-->

<!--

⚠️ Important: Redux/IndexedDB Data-Changing Feature PRs Temporarily On
Hold ⚠️

Please note: For our current development cycle, we are not accepting
feature Pull Requests that introduce changes to Redux data models or
IndexedDB schemas.

While we value your contributions, PRs of this nature will be blocked
without merge. We welcome all other contributions (bug fixes, perf
enhancements, docs, etc.). Thank you!

Once version 2.0.0 is released, we will resume reviewing feature PRs.

-->

### What this PR does

Before this PR:
The latest release was v1.7.23

After this PR:
This PR prepares release v1.7.24, which includes:
- New features: Agent workspace auto-creation, thinking/reasoning effort
control for agent sessions
- Bug fixes: Prompt caching crash, Gemini 3 reasoning_effort parameter,
CodeMirror highlight crash, MCP tool parsing and auto-approval, plugin
size display, UI fixes
- Improvements: Infinite scroll for sessions list, plugin detail modal
UI, tool streaming performance

<!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)`
format, will close the issue(s) when PR gets merged)*: -->

Fixes #

### Why we need it and why it was done in this way

This is a regular patch release following the semantic versioning
process. The version bump from 1.7.23 to 1.7.24 includes bug fixes and
new features based on commits merged since the last release.

The following tradeoffs were made:
N/A

The following alternatives were considered:
N/A

Links to places where the discussion took places: N/A

### Breaking changes

None

### Special notes for your reviewer

This PR triggers the CI/CD pipeline to build release artifacts for
macOS, Windows, and Linux. Once merged, a draft GitHub Release will be
automatically created.

**Release Summary (English):**
- Agent creation no longer requires selecting a workspace folder
- Added thinking/reasoning effort control for Claude Code agent sessions
- Fixed prompt caching crash for OpenRouter and non-Anthropic providers
- Fixed Gemini 3 models not sending reasoning_effort parameter
- Fixed CodeMirror highlight crash
- Fixed MCP tool parameter parsing and auto-approval
- Implemented infinite scroll for sessions list
- Improved plugin detail modal UI
- Fixed renderer crash when streaming large file writes

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
3. Only include user-facing changes (new features, bug fixes visible to
users, UI changes, behavior changes). For CI, maintenance, internal
refactoring, build tooling, or other non-user-facing work, write "NONE".
-->

```release-note
Cherry Studio 1.7.24 - Features & Improvements

 New Features
- [Agent] Agent creation no longer requires selecting a workspace folder - a default workspace is automatically created
- [Agent] Added thinking/reasoning effort control (low/medium/high/max/adaptive) for Claude Code agent sessions

🐛 Bug Fixes
- [Tools] Fix prompt caching crash when using OpenRouter or other non-Anthropic providers
- [Models] Fix Gemini 3 models not sending reasoning_effort parameter when deep thinking mode is enabled
- [Editor] Fix CodeMirror highlight crash caused by version conflict
- [MCP] Fix MCP tool parameter parsing and nested schema display
- [MCP] Fix MCP tools not being auto-approved when configured through agent allowed_tools
- [UI] Fix duplicate error blocks in aborting
- [Plugins] Fix plugin size displaying as 0 in the plugin detail modal
- [UI] Fix PinnedTodoPanel ignoring narrow mode width setting

💄 Improvements
- [Sessions] Implement infinite scroll for sessions list
- [Plugins] Improve plugin detail modal UI with better layout and styling
- [Performance] Fix renderer crash when agent streams large file writes by optimizing tool input delta handling
```

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-05 16:00:13 +08:00
亢奋猫
8e37615cc3 chore: release v1.7.23 (#13180)
### What this PR does

This is a release PR for **Cherry Studio v1.7.23**.

**Changes included:**
- Bump version from 1.7.22 to 1.7.23
- Update release notes with user-facing bug fixes

### Release Notes

<!--LANG:en-->
Cherry Studio 1.7.23 - Bug Fixes

🐛 Bug Fixes
- [Selection] Fix app crash on Windows when closing action window
- [MiniApp] Fix settings state synchronization and region filter
consistency
- [Plugin Browser] Make detail modal text selectable and improve search
experience
- [Tools] Fix approval card not showing for builtin and provider tools

### Included Commits

- fix(Selection): prevent Windows crash when closing transparent action
window (#13177)
- fix(renderer): synchronize miniapp settings state and respect region
filter (#13166)
- fix: improve plugin browser UX with three small fixes (#13153)
- fix: show approval card for builtin and provider tools (#13154)
- fix: support esc to close modal (#13159)
- fix: open external editor in new window instead of reusing existing
one (#13160)
- fix: render directory Select options with optionRender (#13152)
- refactor: replace static pnpm patch with postinstall script for
claude-agent-sdk (#13139)
- feat: add dev-only message data inspection button (#13142)
- docs: add review workflow to CLAUDE.md (#13145)
- chore(deps): upgrade @uiw/codemirror packages to 4.25.7 (#13149)
- fix(ci): skip CI on PR body/title edits, only re-run on base branch
changes (#13150)

### Review Checklist

- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

### Release note

```release-note
Cherry Studio 1.7.23 - Bug Fixes

🐛 Bug Fixes
- [Selection] Fix app crash on Windows when closing action window
- [MiniApp] Fix settings state synchronization and region filter consistency
- [Plugin Browser] Make detail modal text selectable and improve search experience
- [Tools] Fix approval card not showing for builtin and provider tools
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: suyao <sy20010504@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:05:31 +08:00
亢奋猫
2da1fe167c chore: release v1.7.22 (#13128)
### What this PR does

Before this PR:

This is a release PR for version 1.7.22.

After this PR:

- Version bumped from 1.7.21 to 1.7.22
- Release notes updated in `electron-builder.yml`

### Included Changes

**🐛 Bug Fixes**
- [Models] Fix qwen3.5-flash thinking budget configuration by correcting
regex typo
- [Ollama] Fix reasoning order in stream responses
- [Notes] Fix export failure when restoring from cloud backup without
opening Notes page first
- [Chat] Abort translation API call when closing message translation
- [Chat] Disable translate button when message sending is disabled
- [Agent] Clear attached files after sending message in agent session
input bar
- [Export] Filter hidden elements when exporting messages as images
- [Settings] Remove extra divider in settings page

**🔒 Security**
- [MCP] Upgrade @modelcontextprotocol/sdk to 1.27.1 to fix security
vulnerability (GHSA-8r9q-7v3j-jr4g)

Fixes #

### Why we need it and why it was done in this way

This is an automated release PR that collects user-facing bug fixes and
a security update since v1.7.21.

The following tradeoffs were made:

N/A - Release PR

The following alternatives were considered:

N/A

Links to places where the discussion took place: N/A

### Breaking changes

None.

### Special notes for your reviewer

Please verify:
- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

### Checklist

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. Check this only
when the PR introduces or changes a user-facing feature or behavior.
- [x] Self-review: I have reviewed my own code (e.g., via
[`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
or GitHub UI) before requesting review from others

### Release note

```release-note
Cherry Studio 1.7.22 - Bug Fixes & Improvements

Bug Fixes:
- [Models] Fix qwen3.5-flash thinking budget configuration by correcting regex typo
- [Ollama] Fix reasoning order in stream responses
- [Notes] Fix export failure when restoring from cloud backup without opening Notes page first
- [Chat] Abort translation API call when closing message translation
- [Chat] Disable translate button when message sending is disabled
- [Agent] Clear attached files after sending message in agent session input bar
- [Export] Filter hidden elements when exporting messages as images
- [Settings] Remove extra divider in settings page

Security:
- [MCP] Upgrade @modelcontextprotocol/sdk to 1.27.1 to fix security vulnerability (GHSA-8r9q-7v3j-jr4g)
```

---------

Co-authored-by: suyao <sy20010504@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 23:20:54 +08:00
fullex
f668fce4f2 merge main into v2 2026-02-28 10:11:18 +08:00
亢奋猫
30a3c3507b chore: release v1.7.20 (#13038)
### What this PR does

Before this PR:
Version was at 1.7.19

After this PR:
- Bumps version to 1.7.20
- Updates bilingual release notes in `electron-builder.yml`

<!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)`
format, will close the issue(s) when PR gets merged)*: -->

Fixes #

### Why we need it and why it was done in this way

This is a release PR for version 1.7.20. The release notes include:

**New Features:**
- Support for Claude Sonnet 4.6 with reasoning effort
- Support for Gemini 3.1 Pro models
- Support for Qwen 3.5 series
- Support for Moonshot Kimi K2.5 series
- Support for Zhipu GLM-5 model
- Support for Doubao Seed 2.0 models
- Mini apps region/language tags
- Keyboard shortcut for model selection (Cmd+Shift+M)
- Keyword-based topic search
- Agent skills for GitHub issues and skills management

**Bug Fixes:**
- PluginCard i18n not updating on language switch
- OpenClaw installation failure on Windows with spaces in path
- Custom parameters not applied to question rephraser

**Improvements:**
- PR workflow optimization with on-demand skill loading

The following tradeoffs were made:
N/A - Standard release workflow

The following alternatives were considered:
N/A

Links to places where the discussion took place: N/A

### Breaking changes

None. This is a patch release.

### Special notes for your reviewer

This PR triggers the automated release workflow which builds on macOS,
Windows, and Linux.

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [x] PR: The PR description is expressive enough and will help future
contributors
- [x] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [x] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780951082451/ch08.html)
- [x] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [x] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. You want a
user-guide update if it's a user facing feature.

### Review Checklist

- [ ] Review generated release notes in `electron-builder.yml`
- [ ] Verify version bump in `package.json`
- [ ] CI passes
- [ ] Merge to trigger release build

### Included Commits

d8e28616a feat(maintenance): add post-checkout hook to auto-run pnpm
install on dependency changes (#13033)
847ecfe94 ci: skip tests when PR has no code changes (#13034)
72eb065f6 feat(gemini): Add support for Gemini 3.1 Pro models (#13015)
7e7277153 feat(minapps): add proper region/language tags for all mini
apps (#12636)
a030bd989 fix: correct claude_args format for prepare-release workflow
(#13012)
90d76fc3d feat: Added keyboard shortcut for model selection (#12922)
7cca23571 feat: Add Claude Sonnet 4.6 model support to Anthropic
provider (#13016)
1460209aa fix: Move labelMap inside PluginCard component (#13020)
b8e12a245 feat: Add agent skills (create-skill, gh-create-issue) and
improve existing skill workflow (#13004)
a3df57d43 feat(selection-assistant): update Quote behavior to use XML
`<quote>` tags (#13001)
0989f9b82 feat(ci): add prepare-release skill for automated release
workflow (#12958)
9c44d4562 fix(openclaw): resolve installation failure on Windows with
spaces in path (#12977)
38c29c194e fix: apply custom params to rephraser (#12969)
cc3d44024 feat(qwen): add Qwen 3.5 series models support (#12953)
8fd071802 feat(moonshot): add Kimi K2.5 series model support (#12946)
a6cfe6ba0 feat(zhipu): add GLM-5 model support (#12942)
4bc38daae 🤖 Daily Auto I18N Sync: Feb 17, 2026 (#12948)
142e0c1cf feat: add keyword-based topic search with whole-word matching
and result sorting (#12933)
e61e1bb67 feat: Optimize PR workflow with on-demand skill loading and
project-level skills management (#12943)
e31029b0e9 feat: support doubao seed 2.0 models (#12929)

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
-->

```release-note
See release notes in electron-builder.yml
```

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 16:12:56 +08:00
kangfenmao
b0659bc149 chore: release v1.7.19 2026-02-14 13:20:53 +08:00
SuYao
894664f8ed chore: release v1.7.18 (#12873)
<!-- Template from
https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?-->
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. Consider creating this PR as draft:
https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md
-->

<!--

⚠️ Important: Redux/IndexedDB Data-Changing Feature PRs Temporarily On
Hold ⚠️

Please note: For our current development cycle, we are not accepting
feature Pull Requests that introduce changes to Redux data models or
IndexedDB schemas.

While we value your contributions, PRs of this nature will be blocked
without merge. We welcome all other contributions (bug fixes, perf
enhancements, docs, etc.). Thank you!

Once version 2.0.0 is released, we will resume reviewing feature PRs.

-->

### What this PR does

Before this PR:

After this PR:

<!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)`
format, will close the issue(s) when PR gets merged)*: -->

Fixes #

### Why we need it and why it was done in this way

The following tradeoffs were made:

The following alternatives were considered:

Links to places where the discussion took place: <!-- optional: slack,
other GH issue, mailinglist, ... -->

### Breaking changes

<!-- optional -->

If this PR introduces breaking changes, please describe the changes and
the impact on users.

### Special notes for your reviewer

<!-- optional -->

### Checklist

This checklist is not enforcing, but it's a reminder of items that could
be relevant to every PR.
Approvers are expected to review this list.

- [ ] PR: The PR description is expressive enough and will help future
contributors
- [ ] Code: [Write code that humans can
understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
- [ ] Refactor: You have [left the code cleaner than you found it (Boy
Scout
Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
- [ ] Upgrade: Impact of this change on upgrade flows was considered and
addressed if required
- [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
was considered and is present (link) or not required. You want a
user-guide update if it's a user facing feature.

### Release note

<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR
requires additional action from users switching to the new release,
include the string "action required".
2. If no release note is required, just write "NONE".
-->

```release-note

```

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 11:31:32 +08:00
fullex
072dd67a87 merge main into v2 2026-02-09 13:02:41 +08:00
亢奋猫
a9ba2d5f54 chore: release v1.7.17 (#12753) 2026-02-06 16:22:08 +08:00