mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-07-05 21:50:46 +08:00
refactor/code-cli
337 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9b9570116a | refactor(db): replace libsql with better-sqlite3 + sqlite-vec (#16626) | ||
|
|
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> |
||
|
|
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> |
||
|
|
fa5bbb7607 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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 |
||
|
|
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. |
||
|
|
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> |
||
|
|
7b556cf786 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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> |
||
|
|
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> |
||
|
|
6a6b47562b | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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. |
||
|
|
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 |
||
|
|
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. |
||
|
|
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 - |
||
|
|
9f4026f5ec | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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:** - |
||
|
|
1fd54832e1 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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> |
||
|
|
e3ab9704b4 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
bd61bad7ee | chore: release v1.9.1 | ||
|
|
6541948556 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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> |
||
|
|
fc30dc4429 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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>
|
||
|
|
da3ce01df3 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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> |
||
|
|
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> |
||
|
|
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 |
||
|
|
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> |
||
|
|
467ade47a0 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
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> |
||
|
|
6d68ee6e4b | merge main into v2 | ||
|
|
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> |
||
|
|
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 |
||
|
|
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:** - |
||
|
|
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> |
||
|
|
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 |
||
|
|
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 - |
||
|
|
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> |
||
|
|
2104e234af | Merge 'main' into v2 | ||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
f668fce4f2 | merge main into v2 | ||
|
|
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 |
||
|
|
b0659bc149 | chore: release v1.7.19 | ||
|
|
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> |
||
|
|
072dd67a87 | merge main into v2 | ||
|
|
a9ba2d5f54 | chore: release v1.7.17 (#12753) |