What changed in cherry-studio from 1 to 2
12 releases numbered after v1.9.13 up to and including v2.0.12, stable releases only. v1.9.13 and v2.0.12 are the newest stable releases of 1 and 2 we track; this page follows them as new ones ship.
- 1 removes or deprecates something
269 changes across 12 releases
- Settings gains a sidebar search to find any setting row across all sections including title, description, aliases, and Chinese pinyin, with scroll, highlight, and full keyboard navigation
- Settings search now covers all sections with static settings rows, including MCP tabs
- Translate model now has its own temperature, top-p, and reasoning effort settings, editable from the translation settings panel and translate page toolbar
- In agent session messages and rendered artifact Markdown previews, workspace links open files in the artifact pane and directories in the system file manager, with relative links resolving from the agent workspace root
- Sign in to Cherry Cloud for entitlement-aware Agent models, automatic local Gateway startup, quota-aware model selection, and durable Product Session handling
- Configure the compression trigger threshold per assistant or globally in Settings
- Improved installation and navigation for Mini Apps with drag-and-drop packages, stable tabs and icons, and transparent Translate and Painting views
- Press Ctrl+A (Cmd+A on macOS) in the file list to select all files in the current view
- Added an inline delete button to remove a message's translation in one click
- Hide the chat assistant from the sidebar via Appearance Settings, and launch directly to the first visible sidebar app
- Added a global search action to the Agent conversation toolbar
- Add Hy4 Preview, Ling 3.0 Flash, and Qwen3.8 Flash model support
- Anthropic-compatible providers can now keep prompt caches for 1 hour from API Settings
- Added initial Turkish localization support across Cherry Studio
- Shows the available disk space when a backup or restore fails because the disk is full
- Show run status on task cards for scheduled tasks
- Enable remote catalog hot-update without an app release in provider registry
- Publish August 2026 privacy policy update
- Restore Ctrl+L clear messages shortcut
- Add model settings navigation in assistant settings
- Pin assistants and agents to the sidebar
- add skill global enablement controls
- add floating task progress capsule to agents
- add interactive screen capture with annotation and OCR
- add TypeScript-guided code mode tools to pi-runtime
- add layout-preserving PDF translation via BabelDOC
- record translations in history and file manager for pdf-translation
- surface MCP prompts and resources in the composer and to the model
- add durable cross-session delivery to agent-session
- allow private-network fetch targets behind a preference in remote-fetch
- Add sidebar help and diagnostic upload to help-feedback
- Add auto permission mode for pi agents and flatten the runtime picker
- Integrate DeepSeek Harness in code-mate
- Add built-in support agent
- Add app update notification preference
- Install a skill from a GitHub SKILL.md URL
- Add back-to-top button and line-break mode to notes
- Add delete impact preview to agent workspace
- Add tab navigation shortcuts
- Restore MCP-over-HTTP endpoints (/v1/mcps) in API gateway
- Add opt-in MCP sessions with server-to-client push and progress in API gateway
- Handle GROUP_MESSAGE_CREATE event with per-channel mention-only toggle for QQ channel
- Add smooth wheel control for reasoning effort in composer
- Show assistant context usage in chat composer
- Add Firecrawl as a URL fetch provider for web search
- Write a new note straight into the knowledge base
- Support scoped AGENTS.md instructions in agent runtime
- Add Pi coding agent to Code Tools
- Save edited user messages without resending in chat composer
- Add Windows Terminal (wt.exe) support for external apps
- Persist empty branch nodes in chat branch
- Built-in web search for DeepSeek, OpenRouter, and Dashscope with distinguishable resolved model names
- Add selective cache and legacy data cleanup
- Add Claude (Anthropic) conversation import support
- Support detailed models through unified gateway in CLI config
- Allow rerunning v1 migration in data migration
- Enable drag reorder for assistant groups
- Add 'embedding' endpoint type for NEWAPI model configuration
- Keep the create row visible while searching in conversation picker
- Support built-in web search for DeepSeek
- Show settings as a focused tab in tab bar
- Draw a Chrome-style divider between adjacent tabs in tab bar
- Read binary office documents through anydoc in knowledge readers
- Support for both OpenAI and Anthropic endpoints
- Built-in core Agent runtime, reducing dependency installation and environment setup
- Agents can read and maintain knowledge bases
- Multi-window and split-view layouts for multitasking
- One-click previews of agent results
- One-click model service configuration for Claude Code, Codex, and more in Code Mate
- Markdown previews outside chat now use the same rich renderer as chat messages
- Message token details now show time to first token without requiring the expanded runtime breakdown
- Sent image attachments now appear as compact filename chips with real image thumbnails, including after reopening a conversation
- Single-direction text translation now requires only a target language and starts without source-language detection
- Confirm screenshot capture on double-click inside the selection rectangle
- WebDAV backups now verify the server's TLS certificate by default with option to enable Allow Self-Signed Certificates
- Web search now prefers model-native search by default, with automatic fallback to configured services
- Improved PDF previews with selectable text, direct page jumps, and document outlines
- Parallelize independent config pipelines for improved performance
- Parallelize device metadata reads for backup performance
- Stabilize system prompt prefix in agent
- Pace markdown renders and move one-shot highlights to the worker
- Unify declarative tool approval policy in agent runtime
- Lazy-load disabled message outline in chat for performance
- Reduce cold idle memory with lazy loading
- Isolate log tab updates in MCP settings
- Consolidate first-paint lazy loading in renderer
- Serve the trace viewer incrementally and bound its retention
- Virtualize large span trees in trace viewer
- Route only PDFs through document processors in knowledge readers
- Eliminate tab-switch IPC and re-render churn under Activity keep-alive in chat tabs
- Skip redundant re-show work in message tools, artifact pane, and trace page
- Make ProxyService own worker routing policy
- Reduce renderer loading work in agent session
- Upgraded interactions and visual design for chats, roles, projects, and tasks
- Code tools upgraded to Code Mate
- Image generation now dynamically shows available parameters for each model
- Data foundation upgraded for responsiveness with extensive history
- Cherry Cloud models now honor server-declared capabilities and support configured OpenAI Chat Completions routes
- Cherry Cloud models remain compatible with older model-list responses
- Preserve partial chat responses and show a clear, retryable error when a provider stream ends without a finish reason
- Fix middle-click autoscroll scrolling in the chat message list to no longer vibrate or jump
- Model health check results no longer linger after leaving the provider page
- Allow grep searches in Filesystem MCP to use regular expression syntax supported by ripgrep
- Empty knowledge bases now appear in the knowledge list
- Prevent fraction denominators from being clipped when exporting conversations as images
- Prevent the OpenClaw gateway from failing to start when Cherry Studio uses a socks5 proxy
- Web fetch no longer sends localhost, LAN, or locally-unresolvable URLs to Jina Reader when the built-in fetch fails
- Pinned topics and agent sessions now keep their text aligned with unpinned items in owner-grouped lists
- Pinned agent sessions now remain in their agent group and appear before unpinned sessions
- Knowledge base and web search citations referenced again in a later turn now render as numbered citations and export correctly
- Fixed markdown export with images: oversized embeds are skipped, folder-mode images are copied directly, and broken links are removed
- Fixed the app freezing for seconds when removing all models of a provider on a large chat history
- Repair literal autolinks that swallow emphasis markers in chat markdown
- Resolve spell check real-time highlighting and multi-language issues
- Polish subagent flow and running status
- Register the portable Windows launcher at login
- Refine skill icon styling
- Anchor relative dates to runtime in web search
- Prevent nested inputs from starting keyboard drag in sortable
- Preserve rapid message navigation targets in chat
- Clean up orphaned tab pool state in mini-app
- Expose cached tokens in chat completions API
- Track app launch once per startup in analytics
- Route MiniMax M3 agents through Anthropic Messages
- Block image reads for text-only models in claude-code
- Tolerate missing annotations in OpenAI Responses replies
- Pad composer inset inside code surfaces in artifact pane
- Support valid GitHub SKILL.md links in skills
- Send enable_thinking for Qwen on openai-compatible providers
- Prevent pinning transient mini-apps in tabs
- Resolve citations for third-party MCP tool outputs in pi-agent
- Skip Anthropic tools without an input_schema in api-gateway
- Only block skills on provable dependency gaps and split SkillService
- Keep Agent SDK system messages out of the assistant turn in api-gateway
- Highlight the first frame without debounce delay in code viewer
- Drop unanswered approvals from replayed history in ai-messages
- Cancel stale requests on conversation switch in message-locate
- Recover deleted active topics in topic-navigation
- Improve option legibility in permission mode
- Ignore stale provider selections in code-mate
- bind send_message anchors by their target subagent id in dsh-runtime
- honor Cherry proxy environment in pi-runtime
- terminate parse worker on terminal states in xlsx-preview
- add horizontal padding and enable wrapping for text previews
- keep macOS title-bar left inset when detached window is fullscreen
- skip think:true for Ollama when SDK default triggers auto reasoning
- dispatch image + DashScope routing by preset, not raw provider id
- parallelize and deduplicate asset loading in shiki
- skip irrecoverable Dexie records in data-migration
- skip unavailable virtual drive workspaces in agent-migration
- clear stale Agent attachment refs on retry in migration
- upgrade ONNX Runtime worker lifecycle in local-inference
- quit when closing without tray in main-window
- keep the styles entry in the bundle so formula copy works in ui-markdown
- filter DSH-incompatible providers from Code Mate UI
- block unreadable images for non-vision models in attachment-routing
- preserve default thinking mode in ollama
- use lightweight probe for Ollama health check
- inherit Zhipu model provider keys in web-search
- prevent duplicate export on double click in obsidian-export
- use current Zhipu provider key in web-search
- restore Nano Banana 2 parameters in gemini-image
- tombstone removed servers to stop ghost stdio clients in mcp-runtime
- Prevent cross-size model matches in provider registry
- Keep code fences when saving a conversation to a knowledge base
- Skip in-flight items in bulk reindex for knowledge data source
- Recreate session when deleting an agent's only non-active session
- Remember the usage page's view selections
- Restore 0.01 similarity-threshold precision in knowledge RAG
- Stabilize group row height in virtual list for provider model list
- Name skills by directory in the injected prompt for agent composer
- Clear remembered session id on delete-recovery to stop white-screen crash
- Disable reasoning for language detection in translate
- Preserve template carousel across tabs in paintings
- Re-attach tab to a rebuilt main window in sub-window
- Cap MiniMax-M3 output tokens in provider registry
- Stop blocking images sent to non-vision models in chat attachments
- Preserve soft line breaks in chat messages
- Preserve disabled-send feedback in deferred composer fallback
- Resolve prefixed size-colliding model ids to their own override
- Synchronize pin changes across windows
- Make cross-assistant topic moves atomic
- Bound background memory usage from tab retention
- Delete conversations past SQLite's cascade depth limit
- Bound inactive conversation history cache
- Avoid duplicate refresh in workspace selector
- Avoid duplicate tree refetch in topic branch
- Virtualize message previews in global search
- Query OVMS for its servable status on /v1/config
- Prefer chat endpoints for mixed model health checks
- Accept parameterized base64 data URLs in file handling
- Place newly created agents first in agent list
- Register qwen-image-3.0 image models for DashScope
- Preserve currency and derive tier input totals in model pricing
- Skip invalid legacy model IDs in provider model migration
- Validate machine translations before writing them
- Preserve chat composer width across topic switches
- Sync tray-dependent preferences in settings
- Propagate stream abort signal into in-flight MCP tool calls
- Normalize legacy v1 MCP tool names before model replay
- Block unreadable images for text-only models in chat attachments
- Find deeply nested workspace file mentions in agent
- Keep window shortcuts local in shortcut service
- Preserve auto-backup intervals across restarts
- Persist assistant group collapse in resource list
- Wrap long unbroken lines in wrapped mode instead of clipping in code viewer
- Honor auto-collapse setting when disabled for thinking blocks
- Add sidebar management menu entry
- Strip citation markers from IM replies in agent channels
- Limit automatic naming to initial turn in agent session
- Make the configured system prompt authoritative in agent
- Preserve managed files for session history in agent attachments
- Respect Linux default terminal in code CLI
- Keep input compact in maximized panels in composer
- Ship GLIBC-compatible better-sqlite3 for Linux packaging
- Always echo reasoning_content on assistant turns for OpenAI-compatible
- Dismiss loading overlay on dom-ready in mini app
- Skip EBUSY locked files during automatic backup
- Recover duplicate tool use ID failures in agent runtime
- Reap SDK CLI subprocesses on shutdown in claude-code
- Raise the default tool-call round cap
- Close the snapshot-to-stream delivery gap in directory-tree
- Allow direct upgrades to v2.0.x in v2 migration
- Open image tokens in shared preview in composer
- Start WeChat QR login in agent channels
- Preserve form edits and improve tool details in MCP settings
- Serve every endpoint from one host with per-route versions in new API
- Skip symlinks during migration in agent migration
- Survive mirror failures and keep embedding inference offline in local model
- Respect Traditional Chinese locale in selection assistant
- Localize workspace tree errors in agent files
- Use preset append mode for agent prompts in claude-code
- Serve DeepSeek V4 models over the Anthropic endpoint
- Recover stale dashboards across windows in openclaw
- Prevent reference context leaks in collapsed previews
- Normalize no-prefill agent requests in API gateway
- Persist provider filter in provider settings
- Hide prompt variable hint in agent dialog
- Use free Qwen instead of the default assistant model in AI diagnosis
- Allow WebP avatar uploads in profile
- Isolate nested scroll regions from chat viewport
- Hide disabled MCP tools from agents in claude-code
- Preserve TeX when copying formulas in selection menu
- Add bidirectional controls to horizontal scroll container
- Show model identity on single replies in chat
- Avoid redundant first-page requests in resource pagination
- Normalize internal Agent continuations in API gateway
- Bypass proxy for loopback gateways in agent runtime
- Align export and save actions in export menu
- Strip schema dialect metadata in gemini tools
- Add model type scroll controls in provider settings
- Tolerate unusable legacy API keys in provider migration
- Restore default reasoning effort in composer
- Restore normal agent capabilities in cherry assistant
- Preserve conversation tab identity in tab navigation
- Restore assistant identity for migrated messages in chat
- Preserve lazy-loaded data between openings in model selector
- Support Claude tools in Responses API in API gateway
- Guard query type in WebSearchTool and normalizeWebSearchKeywords, fix translation button contrast
- Prevent crash by adding error handling to V2 migration pipeline
- Stop repeated saves after failures in resource catalog
- Prevent filtered model selection crash in model selector
- Migrate tokenflux painting history in painting migrator
- Route OpenCode Go models by their served protocol in provider registry
- Improved scrolling performance in very long conversations
- Large-folder imports no longer block the interface
- Retire the per-agent max_turns cap in agent configuration
Original release notes, newest first
The list above is our reading of these notes; the originals from cherry-studio are here, one fold per release.
v2.0.12
Downloads / 下载 (v2.0.12)
| Platform | Architecture | Global | China Edition |
|---|---|---|---|
| Windows | x64 | Installer · Portable | Installer · Portable |
| Windows | arm64 | Installer · Portable | Installer · Portable |
| macOS | x64 | DMG · ZIP | DMG · ZIP |
| macOS | arm64 | DMG · ZIP | DMG · ZIP |
| Linux | x64 | AppImage · DEB · RPM | AppImage · DEB · RPM |
| Linux | arm64 | AppImage · DEB · RPM | AppImage · DEB · RPM |
Release Notes / 发布说明
Cherry Studio 2.0.12 - Features, Fixes, and Improvements
✨ New Features
- [Settings] Settings gains a sidebar search: find any setting row across all sections (title/description/aliases, Chinese pinyin included), jump to it with scroll + highlight, full keyboard navigation.
- [Settings] Settings search now covers all sections with static settings rows, including MCP tabs.
- [Translation] The translate model now has its own temperature, top-p and reasoning effort settings, editable from the translation settings panel and the translate page toolbar.
- [Markdown] Markdown previews outside chat now use the same rich renderer as chat messages. In agent session messages and rendered artifact Markdown previews, workspace links open files in the artifact pane and directories in the system file manager; relative links resolve from the agent workspace root.
🐛 Bug Fixes
- [Cherry Cloud] Cherry Cloud models now honor server-declared capabilities, support configured OpenAI Chat Completions routes, and remain compatible with older model-list responses. Message token details now also show time to first token without requiring the expanded runtime breakdown.
- [Chat] Preserve partial chat responses and show a clear, retryable error when a provider stream ends without a finish reason.
- [Chat] Fix middle-click (autoscroll) scrolling in the chat message list so it no longer vibrates or jumps.
- [Chat] Sent image attachments now appear as compact filename chips with real image thumbnails, including after reopening a conversation.
- [Model Health] Model health check results no longer linger after leaving the provider page.
- [Filesystem MCP] Allow grep searches to use regular expression syntax supported by ripgrep.
- [Knowledge Base] Empty knowledge bases now appear in the knowledge list.
- [Chat Export] Prevent fraction denominators from being clipped when exporting conversations as images.
- [OpenClaw] Prevent the OpenClaw gateway from failing to start when Cherry Studio uses a socks5 proxy.
- [Web Search] Web fetch no longer sends localhost, LAN, or locally-unresolvable URLs to Jina Reader when the built-in fetch fails, regardless of the “Allow fetching local network addresses” setting.
- [Topics] Pinned topics and agent sessions now keep their text aligned with unpinned items in owner-grouped lists.
- [Agent] The task progress capsule now always tracks the main agent's task plan; todo lists written by spawned subagents no longer replace it.
- [Agent] Fixed the permission-mode popup showing two highlighted rows at once, and tooltips no longer pop up on their own when the panel opens.
- [PDF Preview] Preserve colors in colored PDF documents.
- [Models] Fix reasoning mode not being available for Xunfei MaaS (讯飞星辰) custom models — their model IDs are now recognized and expose the reasoning toggle/effort controls.
- [UI] Improved Skills detail scrolling and Sidebar avatar and title-bar alignment.
💄 Improvements
- [Input Fields] Number fields across settings, model options, MCP servers, assistants and painting parameters no longer show the browser's native spinner buttons, and no longer change value when the mouse wheel scrolls over a focused field. They step with the arrow keys, announce their allowed range to screen readers, and the API gateway port now tells you when a value is out of range instead of quietly applying a different one.
⚡ Performance
- [Paintings] Improved painting history refresh performance by reusing unchanged hydrated records.
Cherry Studio 2.0.12 - 新功能、修复与改进
✨ 新功能
- [设置] 设置侧边栏新增搜索功能:可搜索所有设置项(标题/描述/别名,支持中文拼音),点击跳转并高亮显示,支持完整的键盘导航。
- [设置] 设置搜索现覆盖所有包含静态设置行的部分,包括 MCP 标签页。
- [翻译] 翻译模型现在可以单独设置温度、Top-P 和推理强度,在翻译设置面板和翻译页工具栏均可调整。
- [Markdown] 聊天外的 Markdown 预览现在使用与聊天消息相同的富渲染器。在智能体会话和渲染的产物 Markdown 预览中,工作区链接在产物面板中打开文件,目录在系统文件管理器中打开;相对链接从智能体工作区根目录解析。
🐛 问题修复
- [樱桃云] 樱桃云模型现在遵循服务器声明的功能,支持配置的 OpenAI Chat Completions 路由,并与旧版模型列表响应保持兼容。消息令牌详情现在也显示首个令牌时间,无需展开运行时明细。
- [对话] 当服务商流在没有结束原因的情况下终止时,保留部分对话响应并显示清晰的可重试错误。
- [对话] 修复聊天消息列表中的中键自动滚动不再抖动或跳跃。
- [对话] 发送的图片附件现在显示为紧凑的文件名芯片,带有真实的图片缩略图,包括重新打开对话后。
- [模型健康] 离开服务商页面后,模型健康检查结果不再残留。
- [文件系统 MCP] 允许 grep 搜索使用 ripgrep 支持的正则表达式语法。
- [知识库] 空知识库现在显示在知识库列表中。
- [对话导出] 防止导出对话图片时分数分母被裁剪。
- [OpenClaw] 防止 Cherry Studio 使用 socks5 代理时 OpenClaw 网关启动失败。
- [联网搜索] 当内置获取失败时,Web 获取不再将 localhost、局域网或本地无法解析的 URL 发送到 Jina Reader,无论”允许获取本地网络地址”设置如何。
- [话题] 固定的话题和智能体会话现在在按所有者分组的列表中与未固定项目保持文本对齐。
- [智能体] 任务进度胶囊现在始终跟踪主智能体的任务计划;子智能体编写的待办列表不再替换它。
- [智能体] 修复权限模式弹出窗口同时显示两个高亮行的问题,工具提示不再在面板打开时自动弹出。
- [PDF 预览] 在彩色 PDF 文档中保留颜色。
- [模型] 修复讯飞星辰自定义模型无法使用推理模式的问题 —— 其模型 ID 现在被识别并显示推理开关/强度控制。
- [界面] 改进技能详情滚动和侧边栏头像及标题栏对齐。
💄 改进
- [输入字段] 设置、模型选项、MCP 服务器、助手和绘画参数中的数字字段不再显示浏览器的原生微调按钮,鼠标滚轮滚动聚焦字段时不再改变值。它们使用方向键步进,向屏幕阅读器宣布允许的范围,API 网关端口现在会告诉您值何时超出范围,而不是悄悄应用不同的值。
⚡ 性能优化
- [绘画] 通过重用未更改的水合记录改进绘画历史刷新性能。
What's Changed
- fix(chat-messages): stop reading-mode freeze from fighting middle-click autoscroll by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19225
- fix(pdf-preview): preserve PDF document colors by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19918
- chore(release): sync v2.0.11 metadata by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19925
- fix(provider-registry): detect Xunfei MaaS reasoning models by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/17811
- chore(selection): upgrade selection-hook to 2.1.1 by @0xfullex in https://github.com/CherryHQ/cherry-studio/pull/19928
- fix(quick-panel): open single-select submenus on the current selection by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19697
- fix(agents): keep the progress capsule on the main agent's plan by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19684
- feat(settings): sidebar search for settings rows (core engine + 5 sections) by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/19345
- feat(settings): index remaining settings sections for search by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/19346
- feat(settings): carry focus intent in the URL by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/19752
- fix(message-rendering): render sent image attachments by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19900
- perf(paintings): cache unchanged history hydration by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18720
- fix: refine skill details and navigation chrome by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19932
- fix(resource-list): keep pinned item text aligned by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19934
- feat(markdown): unify previews on a shared host-injected renderer by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17135
- fix(web-search): keep private targets out of the Jina fetch fallback by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19920
- refactor(ui): consolidate numeric entry into an InputNumber primitive by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/19129
- fix(openclaw): strip proxy env from gateway spawn by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18911
- perf(chat): load citations panel on first open by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19869
- fix(chat): classify streams missing finish reason by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19870
- fix(i18n): add missing Turkish finish-reason error string by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19937
- fix(chat-export): preserve formula bounds in exported images by @hburaktasyurek in https://github.com/CherryHQ/cherry-studio/pull/19895
- fix: allow documentCount 0 for empty knowledge bases by @gokay-ai in https://github.com/CherryHQ/cherry-studio/pull/19874
- perf(model-health): isolate row status updates by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19876
- perf(mini-app): isolate card subscriptions by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19884
- feat(translate): add temperature, top-p and reasoning effort by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/19700
- docs(gh-pr-review): distinguish open product decisions by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19657
- fix(local-model): sweep stale downloads and settle installers on shutdown by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19911
- fix(preference): repair invalid JSON during startup by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19641
- fix(file): compare inodes as bigint in isSameFile by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19961
- fix(filesystem-mcp): defer regex validation to fallback by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19960
- fix(model-health): clear cached check results on unmount by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19959
- revert(preference): drop invalid-JSON startup repair seeder by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19969
- fix(cherry-cloud): support model capabilities and OpenAI chat by @zhibisora in https://github.com/CherryHQ/cherry-studio/pull/19941
New Contributors
- @gokay-ai made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19874
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.11...v2.0.12
v2.0.11
Downloads / 下载 (v2.0.11)
| Platform | Architecture | Global | China Edition |
|---|---|---|---|
| Windows | x64 | Installer · Portable | Installer · Portable |
| Windows | arm64 | Installer · Portable | Installer · Portable |
| macOS | x64 | DMG · ZIP | DMG · ZIP |
| macOS | arm64 | DMG · ZIP | DMG · ZIP |
| Linux | x64 | AppImage · DEB · RPM | AppImage · DEB · RPM |
| Linux | arm64 | AppImage · DEB · RPM | AppImage · DEB · RPM |
Release Notes / 发布说明
Cherry Studio 2.0.11 - Features, Fixes, and Improvements
✨ New Features
- [Cherry Cloud] Sign in to Cherry Cloud for entitlement-aware Agent models, automatic local Gateway startup, quota-aware model selection, and durable Product Session handling.
- [Context Management] Configure the compression trigger threshold per assistant or globally in Settings.
- [Mini Apps] Improved installation and navigation with drag-and-drop packages, stable tabs and icons, and transparent Translate and Painting views.
- [Translate] Single-direction text translation now requires only a target language and starts without source-language detection.
- [Files] Press Ctrl+A (Cmd+A on macOS) in the file list to select all files in the current view.
- [Translate] Added an inline delete button to remove a message's translation in one click.
- [Sidebar] Hide the chat assistant from the sidebar via Appearance Settings, and launch directly to the first visible sidebar app.
- [Agent] Added a global search action to the Agent conversation toolbar.
- [Models] Add Hy4 Preview, Ling 3.0 Flash, and Qwen3.8 Flash support.
- [Anthropic Cache] Anthropic-compatible providers can now keep prompt caches for 1 hour from API Settings.
- [i18n] Added initial Turkish localization support across Cherry Studio.
- [Screenshot] Confirm the capture on double-click inside the selection rectangle.
🐛 Bug Fixes
- [Agent Sessions] Pinned agent sessions now remain in their agent group and appear before unpinned sessions.
- [Citations] Knowledge base and web search citations referenced again in a later turn now render as numbered citations and export correctly.
- [WebDAV] WebDAV backups now verify the server's TLS certificate by default. Enable “Allow Self-Signed Certificates” if your server uses a self-signed certificate.
- [Web Search] Web search now prefers model-native search by default, with automatic fallback to configured services.
- [Export] Fixed markdown export with images: oversized embeds are skipped, folder-mode images are copied directly, and broken links are removed.
- [Backup] Shows the available disk space when a backup or restore fails because the disk is full.
- [Chat] Fixed the app freezing for seconds when removing all models of a provider on a large chat history.
- [PDF] Improved PDF previews with selectable text, direct page jumps, and document outlines.
- [Thinking] Fixed thinking time restarting from 0 when switching tabs during streaming.
- [Migration] Fixed v1-to-v2 migration so multi-model conversations preserve the response selected as context.
- [Topics] Fixed a race where deleting the active conversation could leave the UI stuck on the deleted conversation.
- [Topics] Keep pinned conversations inside their assistant group when conversations are grouped by assistant.
- [Composer] Fixed the agent input box sometimes showing a raw knowledge-base prompt sentence after switching sessions.
- [Composer] Long pasted text is pasted as plain text by default again; the “paste long text as file” toggle is back in Input Settings.
- [Provider] Fixed custom request headers not being deletable in the provider request-configuration drawer.
- [Provider] Fixed image generation icon not displaying for OpenRouter models with versioned GPT image IDs.
- [Provider] Restored the Off reasoning option for optional OpenRouter reasoning models.
- [Provider] Corrected reasoning-effort options for Qwen3.8 Flash and Max on DashScope Responses endpoint.
- [Provider] Point the TokenHub “Get API key” link to the API Key management page.
- [Models] Preserve Fireworks Kimi Fast and Turbo variants.
- [Models] Fixed Kimi K2.5 and newer requests failing when assistant sampling settings were enabled.
- [Chat] Fixed the inconsistent edit action on assistant messages so all assistant replies with text are uniformly editable.
- [Chat] Fixed a race where switching the model from the conversation header could leave the next message routed to the previously selected model.
- [Chat] Improved automatic conversation titles by requesting them in the selected language using an explicit language name.
- [Chat] Citation markers that cannot be matched to a source are no longer shown as raw
[cite:...]text in answers. - [Chat] Fixed scheduled task cards showing “Running” forever for runs that were cancelled before the app quit.
- [Chat] Fixed the agent heartbeat toggle being ignored for agents migrated from v1.
- [Chat] Fixed the right-side list opening at the same width as the left list and remembering its own width.
- [Chat] Improved focus responsiveness in large Assistant and Agent resource selectors.
- [Chat] Keep thinking elapsed stable across tab switches.
- [Markdown] Fixed rendering of standalone LaTeX environments such as
equationandaligned. - [Markdown] Fixed table columns keeping a stale fixed width after inserting or resizing columns in the notes editor.
- [Mini Apps] Passing null options to chat or file export no longer rejects with an unexpected error.
- [Mini Apps] Use a fixed 25px size for Mini App tab icons.
- [Mini Apps] Managed DeepSeek Harness sessions no longer open the system browser when they start or restart.
- [Mini Apps] Links inside unauthorized HTML artifact previews can no longer navigate the preview frame.
- [MCP Browser] Restored MCP browser window controls and tab-bar actions on Windows.
- [Knowledge] Reindex now re-acquires files from the real source.
- [Files] Pasting multiple files into the composer no longer drops the remaining files when one fails to read.
- [Painting] Fixed painting migrator leaving dangling model references that disabled the send button.
- [Sidebar] New installs now open Agent first and place it before Chat; existing users keep their saved order.
⚡ Performance
- [Export] Exporting or analyzing a long topic with many web/knowledge searches no longer slows down quadratically.
- [File Preview] Improved file preview startup time by loading supported preview modules while file metadata is checked.
Cherry Studio 2.0.11 - 新功能、修复与改进
✨ 新功能
- [樱桃云] 登录樱桃云获取权益感知的智能体模型、自动本地网关启动、配额感知的模型选择和持久的产品会话处理。
- [上下文管理] 在设置中为每个助手或全局配置压缩触发阈值。
- [小程序] 改进安装和导航,支持拖放包、稳定的标签和图标,以及透明的翻译和绘画视图。
- [翻译] 单向文本翻译现在只需要目标语言,无需源语言检测即可开始。
- [文件] 在文件列表中按 Ctrl+A(macOS 上为 Cmd+A)全选当前视图中的所有文件。
- [翻译] 添加内联删除按钮,一键删除消息的翻译。
- [侧边栏] 通过外观设置隐藏聊天助手,启动时直接打开第一个可见的侧边栏应用。
- [智能体] 在智能体会话工具栏添加全局搜索操作。
- [模型] 新增 Hy4 Preview、Ling 3.0 Flash 和 Qwen3.8 Flash 支持。
- [Anthropic 缓存] Anthropic 兼容服务商现在可以从 API 设置中将提示缓存保持 1 小时。
- [国际化] 在 Cherry Studio 中添加初始土耳其语本地化支持。
- [截图] 在选择区域内双击确认截图。
🐛 问题修复
- [智能体会话] 固定的智能体会话现在保留在其智能体组中,并显示在未固定会话之前。
- [引用] 在后续对话中再次引用的知识库和网络搜索引用现在渲染为编号引用并正确导出。
- [WebDAV] WebDAV 备份现在默认验证服务器的 TLS 证书。如果您的服务器使用自签名证书,请启用”允许自签名证书”。
- [联网搜索] 联网搜索现在默认优先使用模型原生搜索,并自动回退到配置的服务。
- [导出] 修复带图片的 Markdown 导出:跳过超大嵌入、直接复制文件夹模式图片、移除损坏的链接。
- [备份] 当备份或恢复因磁盘已满而失败时显示可用磁盘空间。
- [对话] 修复在大型对话历史中删除服务商的所有模型时应用卡顿数秒的问题。
- [PDF] 改进 PDF 预览,支持可选文本、直接页面跳转和文档大纲。
- [思考] 修复流式传输期间切换标签时思考时间从 0 重新开始的问题。
- [迁移] 修复 v1 到 v2 迁移,使多模型对话保留上下文中选择的响应。
- [话题] 修复删除活动对话可能导致界面卡在已删除对话上的竞争条件。
- [话题] 按助手分组时,固定对话保留在其助手组中。
- [输入框] 修复切回已挂载知识库的智能体会话时,输入框偶尔显示知识库提示词原文的问题。
- [输入框] 长粘贴文本默认再次作为纯文本粘贴;”将长文本粘贴为文件”开关已恢复到输入设置中。
- [服务商] 修复服务商请求配置抽屉中的自定义请求头无法删除的问题。
- [服务商] 修复带有版本化 GPT 图像 ID 的 OpenRouter 模型不显示图像生成图标的问题。
- [服务商] 恢复可选 OpenRouter 推理模型的 Off 推理选项。
- [服务商] 修正百炼 Responses 接口上 Qwen3.8 Flash 和 Max 的推理强度选项。
- [服务商] 将 TokenHub”获取 API 密钥”链接指向 API 密钥管理页面。
- [模型] 保留 Fireworks Kimi Fast 和 Turbo 变体。
- [模型] 修复开启助手采样设置时 Kimi K2.5 及更新模型请求失败的问题。
- [对话] 修复助手消息编辑操作不一致的问题,使所有带文本的助手回复可通过”更多操作 → 编辑”统一编辑。
- [对话] 修复从对话标题切换模型可能导致下一条消息路由到之前选择的模型的竞争条件。
- [对话] 改进自动对话标题,使用显式语言名称按所选语言请求。
- [对话] 无法匹配来源的引用标记不再显示为原始
[cite:...]文本。 - [对话] 修复定时任务卡片在应用退出前被取消的运行永远显示”运行中”的问题。
- [对话] 修复从 v1 迁移的智能体的心跳开关被忽略的问题。
- [对话] 右侧列表现在以与左侧列表相同的宽度打开,并记住自己的宽度。
- [对话] 改进大型助手和智能体资源选择器中的焦点响应速度。
- [对话] 保持思考时间在标签切换时稳定。
- [Markdown] 修复独立 LaTeX 环境(如
equation和aligned)的渲染。 - [Markdown] 修复在笔记编辑器中插入或调整列后表格列保持过时固定宽度的问题。
- [小程序] 向聊天或文件导出传递 null 选项不再报意外错误。
- [小程序] 使用固定的 25px 大小显示小程序标签图标。
- [小程序] 托管的 DeepSeek Harness 会话在启动或重启时不再打开系统浏览器。
- [小程序] 未授权的 HTML 产物预览中的链接不再能导航预览框架。
- [MCP 浏览器] 恢复 Windows 上的 MCP 浏览器窗口控件和标签栏操作。
- [知识库] 重建索引现在从真实来源重新获取文件。
- [文件] 向输入框粘贴多个文件时,如果一个文件读取失败,不再丢弃其余文件。
- [绘画] 修复绘画迁移器留下悬空模型引用导致发送按钮禁用的问题。
- [侧边栏] 全新安装现在首先打开智能体并将其放在聊天之前;现有用户保持其保存的顺序。
⚡ 性能优化
- [导出] 导出或分析包含多次网络/知识搜索的长话题不再二次方减慢。
- [文件预览] 改进文件预览启动时间,在检查文件元数据的同时加载支持的预览模块。
What's Changed
- chore(release): sync v2.0.10 metadata by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19677
- fix(ci): shard preload with the main forks pool by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/19680
- feat(screenshot): confirm the capture on double-click inside the selection by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18931
- perf(messages): isolate activity subscriptions per message by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19527
- feat(translate): make single-direction translation target-only by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19245
- perf(resource-selector): defer data reads until opened by @lihuiyang1024 in https://github.com/CherryHQ/cherry-studio/pull/19645
- docs(renderer): mark features/ as target-only in renderer architecture by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19226
- fix(chat-message): allow uniform edit for all assistant messages by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19421
- perf(composer): parallelize path-backed file paste by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19516
- feat(builtin-knowledge): add feature-level catalog to product manifest by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19419
- fix(topics): keep pinned chats inside assistant groups by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19305
- fix(composer): restore configurable long-text paste and default to inline text by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18693
- fix(provider-registry): preserve curated reasoning vocabularies by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19298
- fix(ci): serialize typecheck inside basic-checks to stop runner OOM by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19725
- fix(deepseek-harness): suppress managed browser launch by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19172
- fix(migration): reconcile painting modelId against user_model to prevent dangling refs by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/16943
- fix(window-manager): block content-initiated subframe navigation by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19723
- fix(right-pane): give the list its own width instead of the artifact pane's by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/19201
- feat(mini-apps): use fixed tab icon size for mini-apps by @Xiaoteng152 in https://github.com/CherryHQ/cherry-studio/pull/19092
- fix(chat-citations): drop citation markers the message cannot resolve by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19780
- fix(release-workflow): allow preview validation from branches by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19785
- ci(i18n): remove and reject unused translation keys by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19664
- feat(provider-registry): support Hy4, Ling 3.0, and Qwen 3.8 Flash by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19667
- fix(agent-runtime): preserve attachment filenames by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19750
- fix(feishu): make silent message drops visible with warn logs and user notifications by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19043
- fix(mini-app): treat null bridge options like an absent argument by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19734
- fix(web-search): prefer model-native tools by default by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19784
- feat(message-translation): add inline delete button to translation bl… by @keygenqt in https://github.com/CherryHQ/cherry-studio/pull/19705
- fix(export): copy image assets in main and repair dangling links by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19685
- feat(sidebar): allow hiding the chat assistant and land on the first sidebar app by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18158
- feat(agent-chat): add global search action by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19768
- fix(resource-catalog): delete agents through agent service by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19399
- perf(file-preview): preload plugins alongside metadata by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19643
- fix(chat): keep thinking elapsed stable across tab switches by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19764
- fix(provider-registry): restore OpenRouter reasoning Off control by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19730
- ci(deps): bump actions/stale from 10 to 11 by @dependabot[bot] in https://github.com/CherryHQ/cherry-studio/pull/19814
- ci(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in https://github.com/CherryHQ/cherry-studio/pull/19813
- fix(provider): sanitize modelId containing reserved route characters … by @netphils in https://github.com/CherryHQ/cherry-studio/pull/19809
- docs: remove dead openaitx.github.io translation links from README by @putramkti in https://github.com/CherryHQ/cherry-studio/pull/19762
- feat(file-preview): improve PDF preview navigation by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19724
- fix(translate-history): revalidate in place when membership changes (closes #19687) by @xxiaoxiong in https://github.com/CherryHQ/cherry-studio/pull/19713
- fix(composer): persist atomic agent draft snapshots by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19666
- fix(db-schema): index user_model foreign keys on the message tables by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/19796
- fix(backup): report disk-full failures by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19815
- fix(agent-heartbeat): honor the heartbeat toggle on migration-renamed schedules by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/19568
- fix(scheduled-tasks): stop stale running status after startup recovery by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19448
- fix(renderer): make code block horizontal scrollbar thumb visible (fixes #19798) by @xxiaoxiong in https://github.com/CherryHQ/cherry-studio/pull/19807
- fix(message-translation): hide inline translation delete in read-only embeds by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19837
- fix(dashscope): expose all Responses reasoning tiers for Qwen3.8 by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19831
- fix(provider): persist custom request header deletions by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19704
- refactor(paintings): type config field variants by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19170
- fix(models): add regex for versioned GPT image models by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/15684
- fix(topic-naming): use explicit language names in prompts by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19652
- fix(image-preview): preserve SVG intrinsic dimensions by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19400
- fix(resource-selector): isolate focus row rendering by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19644
- fix(chat): keep top-selected model for the next turn by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18889
- feat(files): support Ctrl+A select-all in the file list by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19682
- feat(poe): default to the openai responses api endpoint by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/14144
- fix(data-migration): preserve v1 response context selection by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19683
- fix(topics): keep selection stable on delete race by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/19613
- fix(security): verify WebDAV TLS by default, self-signed opt-in; owner-only backup staging by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18793
- fix(markdown): support standalone LaTeX environments by @darksideforce in https://github.com/CherryHQ/cherry-studio/pull/19726
- fix(message-translation): split the translation divider around its icons by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19838
- feat(app-shell): improve mini apps and transparent views by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19845
- feat(context-management): configurable compaction trigger threshold by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19144
- feat(knowledge): reindex re-acquires from the real source by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19829
- fix(mcp-browser): restore tab bar actions on Windows by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19782
- refactor(local-model): unify local models into one catalog-driven subsystem by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19580
- feat(anthropic-cache): support configurable cache TTL by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19871
- feat(i18n): add Turkish localization by @hburaktasyurek in https://github.com/CherryHQ/cherry-studio/pull/19251
- feat(tokenhub): add image generation via the /v1/wand endpoints by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19856
- perf(provider-settings): lazy-load low-frequency editors by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19879
- fix(i18n): translate Anthropic cache TTL keys into Turkish by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19885
- feat(web-search): prefer model-native web tools by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19825
- fix(release-workflow): automate validated release publication by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19681
- fix(i18n): sync Turkish locale with web-search key rename by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19892
- fix(prepare-release): derive release history from prepared release notes by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19897
- feat(release): build global and China editions by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19776
- fix(chat-citations): resolve [cite:id] markers across turns by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19898
- fix(provider-registry): point the TokenHub API key link at the console key page by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19889
- fix(sidebar): default new users to Agent by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19903
- fix(didi-mcp): call the DiDi MCP endpoint over https by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19888
- fix(release-workflow): keep tag_name and pin previous tag on draft release by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19902
- perf(citations): fold earlier-turn parts only when a marker stays unresolved by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19913
- fix(extension-table-plus): clear stale col width when reusing colgroup entries by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19907
- fix(agent-sessions): keep pinned sessions in agent groups by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19916
- feat(cherry-cloud): add desktop login and managed Work access by @zhibisora in https://github.com/CherryHQ/cherry-studio/pull/19204
New Contributors
- @Xiaoteng152 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19092
- @netphils made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19809
- @putramkti made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19762
- @darksideforce made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19726
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.10...v2.0.11
v2.0.10
What's Changed
- fix(chat-markdown): repair literal autolinks that swallow emphasis markers by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/19136
- fix: resolve spell check real-time highlighting and multi-language issues by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/14634
- fix(agent): polish subagent flow and running status by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19309
- perf(cli): parallelize independent config pipelines by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19284
- fix(app): register the portable Windows launcher at login by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19285
- fix(skills): refine skill icon styling by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18421
- docs(cherry-electron-dev): expand performance diagnostics by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18458
- fix(web-search): anchor relative dates to runtime by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19304
- docs(cherry-electron-dev): fix broken diagnostics link by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19354
- fix(sortable): prevent nested inputs from starting keyboard drag by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19344
- fix(chat): preserve rapid message navigation targets by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19189
- perf(backup): parallelize device metadata reads by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19282
- perf(agent): stabilize system prompt prefix by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19297
- feat(scheduled-tasks): show run status on task cards by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18522
- fix(mini-app): clean up orphaned tab pool state by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/16788
- fix(api): expose cached tokens in chat completions by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19353
- fix(analytics): track app launch once per startup by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/16670
- perf(translate,shiki): pace markdown renders and move one-shot highlights to the worker by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18926
- fix(provider-registry): route MiniMax M3 agents through Anthropic Messages by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19361
- fix(claude-code): block image reads for text-only models by @iris-Neko in https://github.com/CherryHQ/cherry-studio/pull/19366
- fix(ai-provider): tolerate missing annotations in OpenAI Responses replies by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19365
- fix(artifact-pane): pad composer inset inside code surfaces by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19372
- fix(selection-assistant): keep custom action footer visible by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19373
- fix(composer): decouple link chip color from user theme by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/19378
- fix(analytics): update SDK and filter token usage reports by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19352
- fix(mini-app): realign tab pool current state from consistent snapshots by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19375
- fix(google-provider): send includeServerSideToolInvocations conditionally for Gemini 3 tool combination by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/19364
- feat(model-drawer): add token limit presets by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19384
- fix(binary-manager): repair incomplete DSH installs by @Totoro-qaq in https://github.com/CherryHQ/cherry-studio/pull/19374
- fix(assistant-settings): name custom parameter value inputs by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19168
- fix(quick-panel): filter submenu panels from the composer input by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18065
- docs(gh-pr-review): architecture-first review with size-adaptive no-prompt flow by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17348
- fix: keep dragged tabs within safe bounds by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/15529
- perf(chat): lazy-load agent tool renderer (#19331) by @yunyv in https://github.com/CherryHQ/cherry-studio/pull/19342
- fix(chat-messages): always show token usage in the message footer by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19416
- fix(moonshot): omit fixed top_p for Kimi models by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19431
- feat(code-mate): add Hermes dashboard by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/19049
- fix(nutstore): clean up abandoned SSO listeners by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19433
- fix(binary-manager): support npm lifecycle allowlists by @MyPrototypeWhat in https://github.com/CherryHQ/cherry-studio/pull/19462
- fix(code-mate): normalize sidebar icon sizing by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19458
- perf(data-settings): lazy-load inactive panels (#19333) by @yunyv in https://github.com/CherryHQ/cherry-studio/pull/19343
- fix(error-classifier): narrow bare proxy keyword by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18922
- fix: map system prompt to instructions field for OpenAI Responses API by @Raymond8196 in https://github.com/CherryHQ/cherry-studio/pull/16056
- fix(copilot): preserve required request headers by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/19473
- build(release): standardize platform asset filenames by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19429
- fix(pi-runtime): upgrade pi-ai to 0.80.6 for compaction output budget by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19457
- fix(tab-router): cover outgoing page during external retargets by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19470
- fix(pi-runtime): route provider requests through Cherry fetch by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18781
- fix(chat): stabilize keyboard scrolling in message list by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19417
- fix(chat): keep token details closed after locating message by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19483
- feat(export): carry multimodal images in markdown export by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18632
- fix(chat): stabilize streaming UI and message interactions by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19443
- fix(artifact-pane): wrap long lines in preview edit mode by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19542
- fix(web-search): accept SearXNG engines tagged general only by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19497
- fix(notes): preserve math formulas in plain-text copy by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/19468
- fix(native-rebuild): invalidate stale Electron metadata by @zhibisora in https://github.com/CherryHQ/cherry-studio/pull/19482
- perf(composer-tools): preserve dependency-scoped registrations by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19413
- feat(ui): render ECharts diagrams in markdown code blocks by @kkjzio in https://github.com/CherryHQ/cherry-studio/pull/18881
- fix(appearance): name the list position controls for assistive technology by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/19540
- fix(chat): localize meta-tool card section titles and empty states by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19524
- fix(app-updater): hide raw 503 bodies in check-for-update errors by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19545
- feat(artifact-pane): add context menu to opened file header by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/19151
- fix(model-selector): handle structured queries and missing limits by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19553
- fix(messages): restore legacy tool step ordering by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19523
- feat(chat): improve token usage visibility by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19543
- perf(files): hydrate only the visible view by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19528
- fix(aicore): forward proxy fetch for azure-anthropic variant by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19538
- fix(usage-settings): cap dashboard content width on ultrawide windows by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19558
- fix(agent): expose managed toolchain to Pi Bash by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19428
- fix(model-selector): show provider names consistently by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19522
- fix(chat): honor current model on regenerate by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19532
- fix(agent): deliver DSH tool rejection feedback by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19505
- refactor(http): merge request headers case-insensitively by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19480
- fix(pi): surface max-token length truncation as error instead of success by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19571
- fix(about-settings): name GitHub and logo controls for assistive tech by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19466
- fix(claude-code): handle HuggingFace models and sanitize tool descriptions by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19539
- fix(provider-registry): support GLM-5.3-Flash reasoning by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19554
- feat(web-search): add Parallel search provider by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19469
- fix(moonshot): omit fixed temperature and top_p for all Kimi models by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19563
- fix(provider-registry): publish complete remote catalogs by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19586
- fix(agent-notify): scope delivery to trusted targets by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/19289
- feat(code-mate): sync CLI skills with installed tools by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19587
- fix(renderer): refresh time bucket reference for session/topic lists by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19565
- fix(logger): keep source metadata on file log lines with data arguments by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19367
- feat(diagnostics): add mechanical error scanning over error logs by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19368
- ci(release): build releases from release branches with hotfix backport by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18903
- fix(portable): preserve provider resources across relaunches by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19562
- fix(ai-sdk): handle Gemini MCP array tool schemas by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/18902
- fix(composer): show the active permission mode by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19529
- fix(agent-runtime): coerce provider extra headers for pi and dsh by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19592
- fix(agent): show provider name in model label by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19595
- perf(notes): lazy-load optional menu workflows by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19517
- feat(files): support shift-click range selection by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19599
- fix(ai-diagnosis): use selected language for diagnosis output by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19590
- fix(security): consent-gate HTML preview iframes, fail closed sandbox defaults by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18764
- feat(sidebar): default Agent first for new users by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19388
- fix(release-workflow): simplify release validation by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19594
- fix(composer): show skill suffix only in root search by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19615
- fix(custom-fetch): preserve auth on safe redirects by @Protocol-zero-0 in https://github.com/CherryHQ/cherry-studio/pull/19614
- feat(notes): add create action to empty notes page by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19467
- fix(tokens): count literal special-token text safely by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19520
- fix(channels-settings): localize log and edit dialog close labels by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19519
- perf(home,agents): isolate tab-state side effects from page roots by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19161
- fix(command-resolver): accept existing absolute MCP stdio commands by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19559
- fix(knowledge): reject empty document extraction by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19177
- feat(diagnostics): submit signed diagnostic reports to Cherry by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19513
- fix(lmstudio): preserve multi-image inputs by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19600
- fix(code-cli): write Hermes config to the home Hermes actually reads by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19585
- feat(app): fixed launch on boot functionality and add tests by @xianhongtao in https://github.com/CherryHQ/cherry-studio/pull/19311
- fix(agent-tasks): deliver scheduled channel results once by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19567
- docs(contributing): fix recommended label links by @lihuiyang1024 in https://github.com/CherryHQ/cherry-studio/pull/19648
- feat(diagnostics): export chat records in diagnostic bundles by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19371
- fix(release-workflow): simplify release validation by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19620
- perf(files): filter types before cursor pagination by @lihuiyang1024 in https://github.com/CherryHQ/cherry-studio/pull/19647
- feat(knowledge): support dropped file uploads by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19653
- feat(provider-settings): guide initial API setup by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19082
- fix(agent): inherit macOS login shell PATH by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19259
- fix(model-parameters): omit fixed Kimi sampling settings by @ump45nose in https://github.com/CherryHQ/cherry-studio/pull/19603
- fix(agent): honor DSH developer role capability by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19446
- fix(dsh-runtime): allow models without text modality by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19662
- perf(files): stabilize virtualized view callbacks by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19159
- refactor(chat-translate): remove orphaned translation overlay path by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19575
- feat(code-mate): add Antigravity CLI and retire Gemini CLI by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19474
- feat(diagnostics): add report entry points for Support and chat errors by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19514
- feat(tool-approval): add rejection reasons by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19023
- fix(provider-registry): correct DeepSeek V4 metadata by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19296
- feat(mini-app): add real local mini apps in a sandbox by @0xfullex in https://github.com/CherryHQ/cherry-studio/pull/19475
- fix(mini-app): let the activity log wrap, and end where the dialog does by @0xfullex in https://github.com/CherryHQ/cherry-studio/pull/19668
New Contributors
- @iris-Neko made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19366
- @Totoro-qaq made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19374
- @yunyv made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19342
- @kkjzio made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18881
- @Protocol-zero-0 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19614
- @xianhongtao made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19311
- @lihuiyang1024 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19648
- @ump45nose made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19603
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.9...v2.0.10
v2.0.9
What's Changed
- fix(skills): support valid GitHub SKILL.md links by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18907
- feat(provider-registry): remote catalog hot-update without an app release by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/16857
- refactor(agent-runtime): unify declarative tool approval policy by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18865
- fix(provider-registry): send enable_thinking for Qwen on openai-compatible providers by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18772
- fix(tabs): prevent pinning transient mini-apps by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18904
- perf(chat): lazy-load disabled message outline by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/18971
- fix(pi-agent): resolve citations for third-party MCP tool outputs by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18829
- fix(api-gateway): skip Anthropic tools without an input_schema by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18780
- docs(code-review): require dual sources for network downloads by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18953
- feat(privacy): publish August 2026 policy update by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19022
- ci(claude-review): keep review failures advisory by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19031
- feat(shortcuts): restore Ctrl+L clear messages shortcut by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19021
- fix(skills): only block skills on provable dependency gaps, and split SkillService by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18549
- fix(api-gateway): keep Agent SDK system messages out of the assistant turn by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18697
- feat(assistant-settings): add model settings navigation by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19030
- fix(code-viewer): highlight the first frame without the debounce delay by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18950
- fix(ai-messages): drop unanswered approvals from replayed history by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18066
- fix(message-locate): cancel stale requests on conversation switch by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18994
- fix(topic-navigation): recover deleted active topics by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18995
- fix(permission-mode): improve option legibility by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19035
- fix(code-mate): ignore stale provider selections by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19015
- fix(job-scheduler): persist automatic next runs by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19017
- fix(api-gateway): downgrade inline system messages for Ollama by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19042
- refactor(mcp): move builtin server knowledge out of the MCP runtime by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18630
- fix(pdf-translation): show resource download progress by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19051
- fix(migration): preserve agent identity files when v1 source workspace is removed by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19053
- refactor(external-app): unify external open targets by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/19027
- feat(local-model): enable inference hardware acceleration by default by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19055
- test(job-scheduler): fix flaky nextRun assertion on natural interval fire by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19057
- fix(agent-session): update lastActivityAt when reusing placeholder session by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19036
- feat(sidebar): pin assistants and agents to the sidebar by @bigben446 in https://github.com/CherryHQ/cherry-studio/pull/18345
- feat(mini-app): split the mini app view into two panes by @bigben446 in https://github.com/CherryHQ/cherry-studio/pull/18425
- fix(topics): prevent old title flash after rename by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18760
- fix(command-execution): restore Bash output on Windows by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17682
- fix(code-style): isolate theme catalog updates by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19069
- fix(agent-composer): show full AskUserQuestion titles by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19016
- fix(notes): preserve navigation after renaming by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19020
- fix(agents): lazy-load AgentSessionImageCaptureHost in Sessions by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19078
- fix(user-data-relocation): copy symlink targets during migration by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19033
- fix(paths): divert dev logs directory away from packaged installs by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18068
- fix(right-pane): animate maximize and restore instead of committing at the boundary by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19083
- fix(topic-list): clear messages for non-active topics by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/19004
- fix(conversation-routing): prevent stale session actions by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18970
- fix(composer): preserve drafts when stream open is blocked by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18999
- fix(message-list): isolate message targeting by tab by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18997
- fix(chat): restore clear-messages shortcut after event removal by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19091
- fix(ovms): list all configured OVMS models regardless of loading state by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18826
- fix(citations): clear sources when switching conversations by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18996
- fix(topic-rename): wait for persistence before showing success by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/19005
- fix(chat): prevent arrow-key scroll jitter in message list by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18769
- feat(usage): redesign usage analytics with ECharts by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/19084
- fix(html-artifact): prevent bare-text height jitter in inline preview by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18998
- perf(chat): remove unused flow navigation listener by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19085
- fix(keyboard): make message scroll containers focusable for arrow-key navigation (#19070) by @xxiaoxiong in https://github.com/CherryHQ/cherry-studio/pull/19099
- test(trace-viewer): drop the virtualizer scroll debounce before jsdom teardown by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19101
- fix(binary-manager): validate installs by the bins a recipe exposes by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19087
- fix(data-migration): skip Dexie records with unreadable large values by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19086
- fix(message-locate): bind global-search locate requests to their conversation by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19094
- fix(pi-agent): resolve citations for pi's tool_call wrapper by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19071
- fix(provider): remove retired GitHub Models integration by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19072
- fix(composer): surface full url on truncated link chips and speed up og hover by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/19107
- fix(composer): prevent editable toggle from restoring sent draft text by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/19113
- fix(api-gateway): convert max_tokens to max_completion_tokens for OpenAI reasoning models by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18768
- fix(mini-app): relay guest keydown so renderer shortcuts work in webviews by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/19076
- fix(mcp): collect prompt arguments in a dialog before insert by @mturac in https://github.com/CherryHQ/cherry-studio/pull/18946
- fix(quick-assistant): use the configured quick model by @metrovoc in https://github.com/CherryHQ/cherry-studio/pull/19080
- docs(claude-md): replace broken pnpm test advice with working targeted commands by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/19135
- fix(provider): align Responses behavior and provider state ownership by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18449
- fix(deepseek-harness): write the versioned dsh credentials layout by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19131
- fix(model-list): read the Ollama context window from /api/show by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19046
- fix(agent-runtime): default missing model context window to 256K by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18847
- fix(app-startup): apply launch-on-boot preference to system by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18225
- chore(download-binaries): share downloaded tools across git worktrees by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/19126
- feat(mcp): add built-in install_mcp_server tool for one-click MCP registration by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/18609
- fix(screenshot-overlay): keep the toolbar on screen for a full-screen selection by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19150
- fix(anthropic-provider): accept thinking blocks without a signature by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19146
- fix(api-gateway): fold inline system messages for openai-chat-completions by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19145
- fix(model-selector): distinguish duplicate model names by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19018
- fix(screenshot): let Escape dismiss an overlay before any selection by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18932
- fix(quick-panel): keep skill names readable by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19142
- fix(api-gateway): map chat reasoning_effort to Responses by @HappyAny in https://github.com/CherryHQ/cherry-studio/pull/18854
- test(agents-migration): fix flaky high-fan-out copy test on Windows CI by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19132
- fix(screenshot): show the IME candidate window while annotating text by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18934
- fix(models): hydrate custom model registry limits by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19155
- fix(composer): preview Markdown attachments by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19154
- fix(model-drawer): drop native number spinners from model settings inputs by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/19125
- ci(provider-registry): author catalog sync commits through GraphQL by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19181
- fix(binary-manager): retry pipx installs across PyPI mirrors in China by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19102
- fix(binary-manager): make BabelDOC installable from mainland China by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19098
- fix(models): hydrate custom model registry metadata by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19174
- perf(mini-app): stabilize pool callbacks by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19169
- chore(gh-create-issue): add restricted engineering task template by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/19173
- fix(prompt-editor): align prompt action button styles by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/19190
- feat(prompt-bindings): add contextual prompt visibility by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18378
- fix(quick-panel): prevent hidden action hitboxes after tab switches by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/19187
- feat(launchpad): refresh built-in app icons by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19059
- fix(artifact-pane): clear the elevated composer in a maximized pane by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/19034
- fix(prompt-interpolation): preserve literal replacement text by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/17574
- feat(artifact-pane): add copy path context menu to workspace file tree by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18776
- fix(filesystem-mcp): parse ripgrep JSON output by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/17598
- feat(export): convert markdown alerts to notion callouts by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18611
- fix(deepseek-harness): heal stale managed keys at top-level of versioned credentials by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19162
- perf(screenshot): make the capture overlay appear immediately by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18933
- fix(markdown): copy tables from local source blocks by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19193
- feat(provider-registry): add DeepSeek V4 Flash Vision Exp with image input by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/19236
- fix(settings): avoid router-hook crash when ModelSettings renders off… by @keygenqt in https://github.com/CherryHQ/cherry-studio/pull/19205
- feat(sidebar): support middle-click and context menu to open in new tab by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19202
- docs(references): verify stale paths fixed for #18850 by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19227
- fix(stream-manager): ignore stale terminal callbacks by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/17997
- refactor(observability): remove orphaned IPC trace patch by @cyq1017 in https://github.com/CherryHQ/cherry-studio/pull/19246
- fix(popups): stop IME candidate Enter from resolving PromptPopup with raw pinyin by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19224
- feat(appearance): surface the chat and work list positions in settings by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/19200
- docs(development): remove empty Development section heading by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/19237
- fix(agent-migration): tolerate unreadable legacy database by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18912
- refactor(i18n): flatten locale catalogs to dotted keys by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19143
- fix(agents): delete an agent's task schedules with the agent by @yzxcj797 in https://github.com/CherryHQ/cherry-studio/pull/19215
- fix: remove unsupported 'includeServerSideToolInvocations' field from Gemini tool config by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/15098
- fix(agent): discover workspace .agents skills by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19258
- fix(composer): preserve pasted screenshots with text flavors by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19260
- fix(quick-panel): preserve labels while aligning descriptions by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19199
- fix(agent-creation): show go-to-chat action after tool creation by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/19195
- fix(composer): isolate referenced conversation instructions by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19257
- fix(agent-search): exclude hidden reasoning from search by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/17661
- feat(skills): open installed skill folders by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18929
- feat(skills): restore file browser and translation by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18993
- perf(home-composer): skip unchanged streaming renders by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18468
- fix(chat-markdown): animate streamed inline code by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/19156
- fix(agent): add back navigation to subagent flows by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19266
- feat(settings): clarify Global Memory scope and add memory overview by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/19229
- fix(provider-registry): distinguish integer image ranges by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19256
- fix(api-gateway): restore Gemini 3 thought signatures on replayed tool calls by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19047
- fix(provider): add defaultChatEndpoint to lmstudio preset so Pi/DSH endpoint resolution succeeds by @newdeme in https://github.com/CherryHQ/cherry-studio/pull/19006
- fix(settings): default settings entries to model services by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19137
- fix(painting-size): keep selected chip outline visible by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18982
- feat(pi-icon): use official Pi mark by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19277
- feat(agent-dialogs): refine create and edit experience by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19013
- feat(wechat-channel): support native iLink media by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/19278
- fix(code-editor): resolve editor height and language extension lookups by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18951
- fix(chat-shell): keep sidebar resize handle aligned after settings navigation by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/19123
- fix(agent-runtime): serialize stop and retry teardown by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19252
- perf(painting): parallelize history file hydration by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19283
- fix(composer): show first picker attachment on unused assistant by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19293
- fix(screenshot): keep overlays on the active macOS Space by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19281
- feat(data): support JSON Merge Patch for provider settings by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19280
- perf(dsh-runtime): bundle packaged dependencies by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19191
- refactor(code): retire CLI config read IO, broadcast managed-tool status by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18671
- fix(provider-model): reconcile ambiguous delete failures by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/19301
- chore: release v2.0.9 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19308
New Contributors
- @bigben446 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18345
- @metrovoc made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19080
- @HappyAny made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18854
- @keygenqt made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19205
- @cyq1017 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19246
- @c020627 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19237
- @yzxcj797 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19215
- @newdeme made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19006
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.8...v2.0.9
v2.0.8
What's Changed
- fix(dsh-runtime): bind send_message anchors by their target subagent id by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18716
- fix(pi-runtime): honor Cherry proxy environment by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18778
- feat(skills): add skill global enablement controls by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18185
- feat(agents): add floating task progress capsule by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18469
- fix(xlsx-preview): terminate parse worker on terminal states by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18773
- fix(file-preview): add horizontal padding and enable wrapping for text previews by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18752
- fix(sub-window): keep macOS title-bar left inset when detached window is fullscreen by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18398
- fix(api-gateway): skip think:true for Ollama when SDK default triggers auto reasoning by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18744
- feat(screenshot): add interactive screen capture with annotation and OCR by @0xfullex in https://github.com/CherryHQ/cherry-studio/pull/18725
- fix(ai-provider): dispatch image + DashScope routing by preset, not raw provider id by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18735
- fix(shiki): parallelize and deduplicate asset loading by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18627
- ci(i18n): require complete translations in pull requests by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18750
- fix(data-migration): skip irrecoverable Dexie records by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18783
- fix(agent-migration): skip unavailable virtual drive workspaces by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18727
- fix(migration): clear stale Agent attachment refs on retry by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18757
- fix(local-inference): upgrade ONNX Runtime worker lifecycle by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18785
- fix(main-window): quit when closing without tray by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18448
- fix(ui-markdown): keep the styles entry in the bundle so formula copy works by @he-yufeng in https://github.com/CherryHQ/cherry-studio/pull/18711
- fix(code-mate): filter DSH-incompatible providers from Code Mate UI by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18771
- fix(attachment-routing): block unreadable images for non-vision models by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18797
- fix(ollama): preserve default thinking mode by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18784
- fix(claude-review): rerun reviews after PR updates by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18805
- feat(pi-runtime): add TypeScript-guided code mode tools by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18708
- refactor(settings): reorganize general preferences by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18794
- fix(i18n): add Code Mode tool translations by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18812
- docs(claude-md): scope pre-commit checks to the change at hand by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18808
- fix(chat-message): restore editing for provider-annotated assistant replies by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18635
- fix(image-generation): retry image requests without response_format on 400 by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18702
- fix(code-mate): default unconfigured launches to unified gateway by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18811
- feat(pdf-translation): layout-preserving PDF translation via BabelDOC by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/17007
- feat(pdf-translation): record translations in history and file manager by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/17980
- feat(mcp): surface MCP prompts and resources in the composer and to the model by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18075
- fix(ai-service): use lightweight probe for Ollama health check (#18705) by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18789
- fix(web-search): inherit Zhipu model provider keys by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18810
- fix(obsidian-export): prevent duplicate export on double click by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18777
- perf(resource-list): reduce scroll timer churn by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18825
- fix(web-search): use current Zhipu provider key by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18822
- fix(resource-list): unify drag overlay styling by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18837
- fix(gemini-image): restore Nano Banana 2 parameters by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18817
- fix(mcp-runtime): tombstone removed servers to stop ghost stdio clients by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18692
- feat(agent-session): add durable cross-session delivery by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18180
- feat(remote-fetch): allow private-network fetch targets behind a preference by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18791
- fix(security): close four bypass gaps in existing guards (scheme checks, staging residue, trace perms) by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18852
- fix(security): gate legacy IPC senders, unsafe-extension open guard, zip-slip containment by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18751
- fix(wechat): send ciphertext size as image upload filesize by @XuanFENNN in https://github.com/CherryHQ/cherry-studio/pull/18849
- refactor(shortcut-settings): simplify shortcut controls by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18834
- fix(markdown-parser): skip hidden directories in skill directory scanner by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18827
- fix(ai-params): serialize disabled reasoning for Responses models by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18840
- fix(cherryin): refresh balance when returning from top-up by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/18841
- fix(dsh-runtime): surface web search citations and result cards by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18762
- fix(agent): preselect compatible default model for every runtime by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18813
- feat(resource-list): show empty groups and paginate expansion by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18821
- fix(skills): discover nested system skills by @AsahinaYui in https://github.com/CherryHQ/cherry-studio/pull/18867
- fix(knowledge-base): steer attached bases through search by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18875
- fix(feishu-channel): adopt official LarkChannel by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18544
- feat(model-check): unify provider model checks by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18581
- fix(provider-settings): use granular api-key mutations in key list drawer by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18868
- fix(ipc-security): trust renderer path aliases by @leoking670 in https://github.com/CherryHQ/cherry-studio/pull/18851
- fix(openai-image): support URL image responses by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/18798
- fix(image-export): unclip tables and wait for webfonts before capture by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/18779
- fix(topic-naming): restore first-message fallback when disabled by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18877
- fix(topic-list): allow spaces in conversation names by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18887
- chore(deps): declare @babel/runtime for vite dep optimizer by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18893
- test(cherryin): consolidate top-up refresh coverage by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18895
- feat(task-completion): notify assistant and agent completions by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17651
- fix(mcp-settings): defer capability fetches until tab activation by @tzlwn1 in https://github.com/CherryHQ/cherry-studio/pull/18550
- fix(agents): disable ToolSearch for models that reject dynamically-loaded tools by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/18853
- fix(api-gateway): disable Responses storage for Claude Code by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18891
- fix(cherry-autonomy-tools): drop root anyOf from notify input schema by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18888
- fix(model-check): probe image-only models via the image endpoint by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18886
- fix(provider-error): extract nested detail.error.message and wrap long tokens by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18833
- fix(message-service): preserve turnOptions on parts-only data patches by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18876
- fix(dsh-runtime): ship a loadable node-pty on Linux via the dsh rc.7 upgrade by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18831
- perf: eliminate main-process sync IO stalls in file reads and save dialogs by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18861
- fix(agent-runtime): surface ExitPlanMode plans by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18830
- fix(pi-runtime): allow trusted reads from enabled skills by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18906
- fix(net-fetch): sanitize invalid response headers by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18882
- fix(ollama): extract inline reasoning from streamed text by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18897
- docs(agent-notes): propose docs governance and spec-driven workflow by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18843
- docs(references): drop dead docs and fold messaging into chat by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18844
- docs(references): close the references root into domain directories by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18848
- docs(contrib): dissolve guides/ into contrib and reference domains by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18856
- feat(doc-gates): enforce docs structure, frontmatter, and generated index by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18858
- docs(references): audit documentation against current code by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18860
- fix(provider-registry): refresh upstream catalog without batch twins by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18910
- fix(agent-migration): fall back when hard links are unavailable by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18836
- fix(quick-assistant): finalize streaming text parts by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18223
- fix(paintings): keep model selector provider order stable by @lianshuang-photo in https://github.com/CherryHQ/cherry-studio/pull/18313
- fix(sortable): cancel drag when the window loses focus by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18604
- fix(markdown): stop rewriting unlinkable links and images into [blocked] by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18629
- fix(dsh-runtime): preserve tool approval cards during event races by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18908
- fix(pyodide): inject context variables into python execution scope by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18901
- test(permission-composer): stabilize ExitPlanMode preview assertion by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18913
- chore: release v2.0.8 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18915
- refactor(observability): fold packages/mcp-trace into src by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18839
New Contributors
- @XuanFENNN made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18849
- @AsahinaYui made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18867
- @leoking670 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18851
- @ActiveSky made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18798
- @tzlwn1 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18550
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.7...v2.0.8
v2.0.7
What's Changed
- fix(provider-registry): prevent cross-size model matches by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18513
- feat(help-feedback): add sidebar help and diagnostic upload by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18198
- docs: remove obsolete v1-maintenance constraints and stale v2 wording by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18548
- fix(knowledge-content): keep code fences when saving a conversation to a knowledge base by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18567
- fix(knowledge-data-source): skip in-flight items in bulk reindex by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18578
- fix(agents): recreate session when deleting an agent's only non-active session by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18576
- feat(agent-config): retire the per-agent max_turns cap by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18579
- fix(usage-settings): remember the usage page's view selections by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18575
- fix(knowledge-rag): restore 0.01 similarity-threshold precision by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18566
- fix(provider-model-list): stabilize group row height in virtual list by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18568
- fix(agent-composer): name skills by directory in the injected prompt by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18561
- feat(agent-runtime): add auto permission mode for pi agents and flatten the runtime picker by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18551
- fix(agent-session): clear remembered session id on delete-recovery to stop white-screen crash by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18577
- fix(translate): disable reasoning for language detection by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18574
- feat(code-mate): integrate DeepSeek Harness by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18565
- fix(paintings): preserve template carousel across tabs by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18538
- fix(sub-window): re-attach tab to a rebuilt main window by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18285
- fix(provider-registry): cap MiniMax-M3 output tokens by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18591
- fix(chat-attachments): stop blocking images sent to "non-vision" models by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18582
- fix(chat-markdown): preserve soft line breaks in chat messages by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18530
- fix(composer): preserve disabled-send feedback in deferred composer fallback by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/18602
- fix(ui): dismiss action popovers after selection by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18605
- refactor(composer): lift agent path containment into renderer path utils by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/17718
- fix(topics): clear unlinked assistant group when its last topic is deleted by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18446
- fix(window-manager): re-assert alwaysOnTop on every platform after show by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18641
- fix(agent-session): switch to neighbour before deleting active session by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18570
- fix(composer): collapse selection after clearing input by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18649
- fix(mcp): redact env secrets from serverKey and builtin server logs by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18650
- fix(agent-composer): stop @ mention search from missing deeply nested files by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18637
- fix(ai): disable reasoning on one-shot LLM utility calls by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18594
- fix(tab-drag): always show a detached window on a fast drop by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18652
- fix(html-artifacts): preserve popup state across message virtualization by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18617
- fix(local-embedding): verify the cache on disk before reporting the model ready by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18666
- feat(composer): configurable send, line break, and steer shortcuts by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/18642
- fix(mcp): redact secrets from logging notification message by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18670
- fix(knowledge-lookup): stop an unreadable kb tool result from breaking the conversation by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18580
- perf(export): parallelize multi-message Notion conversion by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18585
- fix(chat-migrator): stop baking an English name into unnamed v1 topics by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18636
- fix(composer): recall history on first arrow key by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18647
- fix(chat-messages): show generated images inline by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18613
- fix(composer): stop the deferred paste replay from being handled twice by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18685
- fix(shortcut): accept F13-F24 as shortcut keys by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18688
- fix(composer): swap the deferred composer while idle instead of mid-keystroke by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18664
- feat(agent-runtime): add deepseek harness (dsh) as a third agent-session runtime by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18562
- refactor(shared): consolidate 15 redaction implementations into one module by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18656
- fix(resource-navigation): query exact latest and reusable resources by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18519
- perf(code-viewer): share selection listener by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18701
- fix(dsh-bridge): route delegated subagent tool calls through the root session by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18715
- feat(chat-messages): add copy-as-new-conversation action by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18713
- chore: release v2.0.6 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18704
- fix(files): keep upload entry available in file type categories by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18673
- feat(mcp): add QVeris hosted integration by @linfangw in https://github.com/CherryHQ/cherry-studio/pull/18354
- fix(readme): restore Star History chart by @OctoBored in https://github.com/CherryHQ/cherry-studio/pull/18675
- fix(chat-branch): create real branches from leaf messages by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18721
- fix(web-search): scope API key dialog to settings page by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18726
- feat(xlsx-preview): add artifact spreadsheet preview by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/16712
- fix(provider-registry): restore SiliconFlow referral link by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18730
- perf(model-list): reduce manage drawer recomputation by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18731
- fix(backup): defer automatic backups after startup by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18724
- fix(dsh-runtime): package subprocess dependency closure by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18728
- fix(composer): render restored drafts in the rich editor by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18660
- fix(binary-manager): avoid stale npm path for DSH by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18729
- fix(agent-runtime): forward gateway usage headers on dsh gateway routes by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18717
- test(composer): stabilize deferred surface cleanup by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18736
- fix(main-bundle): restore createOpenAI in packaged builds by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18738
- fix(skills): stop online skill install from hanging on git clone by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18677
- fix(shortcut): accept CapsLock as a shortcut key by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18689
- fix(i18n): translate pending locale strings by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18742
- chore: release v2.0.7 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18746
- fix(composer): honor deferred structural variants by @userInner in https://github.com/CherryHQ/cherry-studio/pull/18718
- fix(composer): focus input after creating conversations by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18623
- fix(deepseek-harness): respect custom provider endpoints by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18758
New Contributors
- @userInner made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18701
- @linfangw made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18354
- @OctoBored made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18675
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.5...v2.0.7
v2.0.5
What's Changed
- fix(provider-registry): resolve prefixed size-colliding model ids to their own override by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18487
- perf(main-runtime): reduce cold idle memory with lazy loading by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18472
- fix(pins): synchronize pin changes across windows by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18499
- fix(topic-move): make cross-assistant moves atomic by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18501
- fix(tab-retention): bound background memory usage by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18504
- fix(message-service): delete conversations past SQLite's cascade depth limit by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18479
- perf(mcp-settings): isolate log tab updates by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18473
- fix(data-api): bound inactive conversation history cache by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18505
- ci(update-mergeable-prs): merge main into approved PRs that are behind by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18524
- feat(cherry-support): add built-in support agent by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18498
- fix(workspace-selector): avoid duplicate refresh by @KXHXK in https://github.com/CherryHQ/cherry-studio/pull/18475
- fix(topic-branch): avoid duplicate tree refetch by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18470
- fix(global-search): virtualize message previews by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18402
- feat(notification): add app update notification preference by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18332
- fix(model-list): query OVMS for its servable status on /v1/config by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18482
- fix: prefer chat endpoints for mixed model health checks by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18447
- fix(file): accept parameterized base64 data URLs by @VectorPeak in https://github.com/CherryHQ/cherry-studio/pull/17406
- perf(renderer): consolidate first-paint lazy loading by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18405
- fix(agent-list): place newly created agents first by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18427
- fix(dashscope): register qwen-image-3.0 image models by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18527
- fix(model-pricing): preserve currency and derive tier input totals by @chujiamo in https://github.com/CherryHQ/cherry-studio/pull/18453
- feat(skill-install): install a skill from a GitHub SKILL.md URL by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18438
- fix(provider-model-migration): skip invalid legacy model IDs by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18381
- fix(i18n-translate): validate machine translations before writing them by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18510
- fix(chat-composer): preserve width across topic switches by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18529
- fix(agent-migration): continue past overlapping workspaces by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18372
- fix(file-migration): copy trailing-space/dot ext uploads to their v2 name by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18514
- fix(topic-naming): use quick assistant model by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18517
- fix(chat-attachments): sanitize bad mediaType before provider dispatch by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18481
- fix(conversation-sidebar): preserve collapsed pane state by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18507
- fix(artifact-pane): repair malformed Windows artifact paths by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18516
- fix(provider-registry): remove stale CherryIN DeepSeek aliases by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18526
- fix(api-gateway): stop the gateway from starting itself by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18523
- fix(cache): prevent detached window stream stalls by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18531
- refactor(icons): load icons per key instead of whole catalogs by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18441
- fix(vertex-ai): preserve default service routing by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18174
- feat(agent-runtime): add pi as a second agent-session runtime driver by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/16630
- chore: release v2.0.5 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18541
New Contributors
- @KXHXK made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18475
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.4...v2.0.5
v2.0.4
What's Changed
- test(ai): add chat turn integration trajectories by @xjt-box in https://github.com/CherryHQ/cherry-studio/pull/17550
- perf(ai-trace): serve the trace viewer incrementally and bound its retention by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18203
- ci(prepare-release): sync and translate i18n before cutting a release by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18214
- fix(settings): sync tray-dependent preferences by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/17445
- feat(notes): add back-to-top button and line-break mode by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/17788
- feat(agent-workspace): add delete impact preview by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18164
- fix(mcp-runtime): propagate stream abort signal into in-flight MCP tool calls by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18294
- fix(ai-messages): normalize legacy v1 MCP tool names before model replay by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18224
- fix(chat-attachments): block unreadable images for text-only models by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18297
- refactor(knowledge-readers): route only PDFs through document processors by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18161
- fix(agent): find deeply nested workspace file mentions by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18139
- fix(shortcut-service): keep window shortcuts local by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18282
- fix(backup): preserve auto-backup intervals across restarts by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18226
- fix(resource-list): persist assistant group collapse by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18252
- docs(claude-md): cap inline comments, ban behavior-pinning tests, drop linear-history rule by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18302
- fix(code-viewer): wrap long unbroken lines in wrapped mode instead of clipping by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18290
- fix(thinking-block): honor auto-collapse setting when disabled by @linktao159357 in https://github.com/CherryHQ/cherry-studio/pull/18073
- fix(topic-naming): keep auto-rename requests free of assistant tool config by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18320
- fix(mini-app): reuse existing sidebar tab by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18233
- fix(assistant-editor): recover from legacy save failures by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18257
- perf(trace-viewer): virtualize large span trees by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18296
- fix(knowledge): add cursor pagination to knowledge base lists by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18300
- fix(system-ocr): send image bytes on Windows so JPEG decodes by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18335
- refactor(file-utils): split path spec from filename convention, add RelativeFilePath brands by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18229
- refactor(knowledge): type material paths as PosixRelativeFilePath by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18230
- feat(shortcuts): add tab navigation shortcuts by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/16629
- fix(windows-env): preserve Unicode command paths by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18201
- fix(dashscope): skip web_extractor when thinking is disabled by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18349
- fix(agent-editor): let an explicit close discard a failed agent save by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18331
- fix(composer): use active editor for long text paste by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18301
- fix(agent-session): filter system reminder echoes by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18250
- fix(agent-jobs): allow bounded scheduled task concurrency by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18355
- fix(mcp-settings): allow copying MCP logs by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18249
- feat(api-gateway): restore MCP-over-HTTP endpoints (/v1/mcps) by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18080
- feat(api-gateway): add opt-in MCP sessions with server-to-client push and progress by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18094
- fix(ai-stream): keep overflowed replay parseable after ring eviction by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18295
- fix(agent-session): discard crashed sessions' resume tokens at boot reconcile by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18289
- fix(painting): keep size controls clear of nearby content by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18360
- feat(qq-channel): handle GROUP_MESSAGE_CREATE event with per-channel mention-only toggle by @lanex2000 in https://github.com/CherryHQ/cherry-studio/pull/18152
- fix(image-viewer): bake rotation/flip into saved image by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18322
- fix(tool-approval): advance multiple permission requests by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18312
- fix(window-manager): hide Dock icon on close-to-tray (#18186) by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18366
- fix(claude-code-runtime): budget auto-compaction against the real request by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18338
- feat(agent-composer): support folder mentions by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18342
- fix(system-ocr): transcode non-PNG images to PNG on Windows by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18361
- fix(doubao): normalize missing Responses annotations by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18392
- feat(api-gateway): unified token estimator + real tool-result images by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17195
- fix(knowledge): reject relative paths that escape the material root on the host by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/18401
- chore(renderer-utils): remove unused renderer utilities by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18418
- fix(provider-settings): restore model name truncation in manage drawer by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18416
- ci(claude-review): improve PR review automation by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18423
- ci(claude): consolidate GitHub workflows by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18426
- fix(skill-creator): frontmatter name must match folder name per Agent Skills spec by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/18417
- fix(model-selector): add edge fade to overflowing tag filter row by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18414
- fix(remote-fetch): follow redirects in built-in fetch and web search by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18380
- fix(ui): keep DialogContent clickable over titlebar drag region by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18406
- feat(local-model): add DirectML and CoreML acceleration by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18350
- fix(prompt-editor): preserve newlines in prompt preview (#18377) by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18390
- fix(provider-registry): map deepseek auto thinking to enabled by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18274
- fix(observability): record final provider body in http trace by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18348
- fix(stream-manager): stop leaking per-stream destroyed listeners on WebContents by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18278
- feat(model-pricing): support tiered rates by input token count by @chujiamo in https://github.com/CherryHQ/cherry-studio/pull/18248
- feat(claude-code): disable Claude Agent SDK non-essential traffic by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18433
- test(renderer): remove low-value implementation assertions by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18424
- fix(cherryin): align audio capabilities with model support by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18386
- fix(mcp): use findExecutableInEnv for npx/uv resolution on Windows by @PiedPiper911 in https://github.com/CherryHQ/cherry-studio/pull/18436
- fix(main-window-navigation): allow /app routes and query strings in route allowlist by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/18266
- fix(oauth): allow canceling pending browser sign-ins by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18367
- refactor(qq-channel): unify group-message dedup with rollback & mention strip by @lanex2000 in https://github.com/CherryHQ/cherry-studio/pull/18383
- fix(api-gateway): send stable prompt_cache_key for internal Agent Responses requests by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18343
- fix(error-display): surface the provider's real error instead of status text by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18431
- feat(file-processing): enforce document input limits by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18364
- fix(knowledge): keep deduplicated filenames within limit by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18358
- Feat/add querit webcontent provider by @wzm-nh in https://github.com/CherryHQ/cherry-studio/pull/18451
- fix(provider-registry): resolve same-family model sizes via size-preserving key by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/18391
- fix(ai-transport): stop quadratic memory growth that crashes the renderer on long fast streams by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18450
- fix(chat-stream): harden multi-model retry and stream convergence by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18304
- fix(external-apps): use official Windows Terminal icon by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18455
- feat(conversation-activity): track recent activity separately by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18308
- fix(rename): stop IME composition Enter from committing a pinyin title by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18456
- feat(context-settings): read attachments in full, gate fs_read, and restore a last-N context limit by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18192
- fix(stream-manager): pass assistantId through the retry context resolution by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18492
- fix(context-settings): pass assistant id to retry compaction by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18495
- feat(permission-composer): add enter/esc shortcuts for tool approval by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/18359
- fix(web-search): read the Zhipu search key from its model provider by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18480
- 🤖 Daily Auto I18N Sync: Aug 13, 2026 by @github-actions[bot] in https://github.com/CherryHQ/cherry-studio/pull/18502
- ci(prepare): skip prek git-hook install when CI is set by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18503
- test(main-i18n): drop catalog-content assertions from t() tests by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18506
- feat(provider-registry): serve DeepSeek V4 Pro over the Responses API by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18462
- ci(main-test): run main-process test shards on macOS and Windows by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18478
- chore: release v2.0.4 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18509
- fix(api-gateway): stop the gateway shutdown from hanging on a live stream by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18489
New Contributors
- @linktao159357 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18073
- @NatsUIJM made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18417
- @chujiamo made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18248
- @PiedPiper911 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18436
- @wzm-nh made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18451
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.3...v2.0.4
v2.0.3
What's Changed
- feat(composer): add smooth wheel control for reasoning effort by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/17829
- fix(sidebar): add sidebar management menu entry by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18031
- fix(agent-channels): strip citation markers from IM replies by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18064
- feat(chat-composer): show assistant context usage by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18006
- fix(agent-session): limit automatic naming to initial turn by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17987
- feat(web-search): add Firecrawl as a URL fetch provider by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18089
- perf(chat-tabs): eliminate tab-switch IPC and re-render churn under Activity keep-alive by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18035
- feat(knowledge-data-source): write a new note straight into the knowledge base by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18022
- fix(agent): make the configured system prompt authoritative by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18100
- fix(agent-attachments): preserve managed files for session history by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18027
- fix(code-cli): respect Linux default terminal by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18103
- fix(composer): keep input compact in maximized panels by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18125
- docs(design-system): streamline global UI guidance by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18110
- fix(linux-packaging): ship GLIBC-compatible better-sqlite3 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17778
- fix(openai-compatible): always echo reasoning_content on assistant turns by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18121
- fix(mini-app): dismiss loading overlay on dom-ready by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18079
- feat(agent-runtime): support scoped AGENTS.md instructions by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18126
- fix(backup): skip EBUSY locked files (LevelDB LOCK) during automatic backup by @xxiaoxiong in https://github.com/CherryHQ/cherry-studio/pull/18117
- fix(agent-runtime): recover duplicate tool use ID failures by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18119
- fix(mcp): resolve stdio MCP servers to full paths on Windows by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/16472
- fix(notes): align sidebar note icons by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18143
- fix(mcp): close stale clients so ping failures stop orphaning child processes by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18146
- fix(chat-migration): bound message block indexing memory by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18127
- ci: reduce pre-merge test runtime by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18165
- fix(lifecycle): bound each service's teardown during shutdown by @0xfullex in https://github.com/CherryHQ/cherry-studio/pull/18136
- feat(code-cli): add Pi coding agent to Code Tools by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/16928
- fix(mcp-tools): prevent non-ASCII tool identity collisions by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18128
- fix(builtin-tools): stop sending strict so knowledge bases work on Anthropic by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18179
- fix(backup): skip LevelDB locks in streamed backups by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18173
- fix(resource-list): unify cross-panel list styling by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18046
- fix(mcp-tool-approval): treat IM-channel sessions as background agents for MCP tool access by @lanex2000 in https://github.com/CherryHQ/cherry-studio/pull/18153
- feat(chat-composer): save edited user messages without resending by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18057
- fix(composer-draft): preserve unsent drafts across navigation by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18019
- feat(external-apps): add Windows Terminal (wt.exe) support by @MengXiangxi in https://github.com/CherryHQ/cherry-studio/pull/17942
- fix(ai-provider): preserve OpenCode conversation affinity by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18184
- fix(ollama): detect native thinking capabilities by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18133
- perf(startup-memory): lazy-load five heavy main-process dependencies by @beyondkmp in https://github.com/CherryHQ/cherry-studio/pull/18189
- fix(selection-assistant): start a fresh chat session per selection by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18200
- fix(code-cli): write valid OpenCode compaction config by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18015
- fix(agent-session): preserve citations for deferred tool outputs by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18124
- fix(code-cli): synchronize Codex authentication mode by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18188
- 🤖 Daily Auto I18N Sync: Aug 08, 2026 by @github-actions[bot] in https://github.com/CherryHQ/cherry-studio/pull/18208
- chore: release v2.0.3 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18210
- fix(data-migration): tolerate malformed agent MCP data by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18176
- fix(agent-right-pane): move declared outputs under the task plan by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18216
- feat(composer-toolbar): pin permission mode by default for new users by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18222
- feat(model-retry): user-configured model retry & fallback via ai-retry by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/16057
- fix(knowledge-readers): reject binary Office text fallback by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/18260
- fix(chat-attachments): respect endpoint media support by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18182
- fix(knowledge-migration): stop v1 folder files and duplicate uploads from migrating as uuids by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18167
- fix(agent-session): own session warmth leases in main across windows by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18108
- fix(claude-code-runtime): fix the agent auto-compact budget and trigger by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18137
- fix(agent-runtime): prefer a model's Anthropic Messages endpoint for agent sessions by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18221
- fix(agent-runtime): surface Claude Code API failures by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18280
- 🤖 Daily Auto I18N Sync: Aug 10, 2026 by @github-actions[bot] in https://github.com/CherryHQ/cherry-studio/pull/18293
- fix(paintings): preserve long pasted prompts by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18291
New Contributors
- @lanex2000 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/18153
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.2...v2.0.3
v2.0.2
What's Changed
- feat(chat-branch): persist empty branch nodes by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17667
- perf(chat-tabs): skip redundant re-show work in message tools, artifact pane, and trace page by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18038
- fix(claude-code): reap sdk cli subprocesses on shutdown by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/17969
- fix(tool-loop): raise the default tool-call round cap by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18072
- fix(directory-tree): close the snapshot-to-stream delivery gap by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18009
- feat(providers): built-in web search for DeepSeek/OpenRouter/Dashscope + distinguishable resolved model names by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17983
- fix(v2-migration): allow direct upgrades to v2.0.x by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18093
- feat(cache-cleanup): add selective cache and legacy data cleanup by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17377
- fix(composer): open image tokens in shared preview by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18082
- fix(agent-channels): start WeChat QR login by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18071
- refactor(proxy): make ProxyService own worker routing policy by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18095
- feat: add Claude (Anthropic) conversation import support by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/16164
- feat(cli-config): support detailed models through unified gateway by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18014
- feat(data-migration): allow rerunning v1 migration by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18002
- fix(mcp-settings): preserve form edits and improve tool details by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/17647
- fix(new-api): serve every endpoint from one host with per-route versions by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18033
- fix(agent-migration): skip symlinks during migration by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18101
- fix(local-model): survive mirror failures and keep embedding inference offline by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18016
- chore: release v2.0.2 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18107
- fix(selection-assistant): respect Traditional Chinese locale by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/18098
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.1...v2.0.2
v2.0.1
What's Changed
- fix(agent-files): localize workspace tree errors by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/17869
- fix(claude-code): use preset append mode for agent prompts by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17879
- chore(deps): address high and critical advisories by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/17875
- fix(provider-registry): serve DeepSeek V4 models over the Anthropic endpoint by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/17901
- fix(openclaw): recover stale dashboards across windows by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/17864
- fix(chat-messages): prevent reference context leaks in collapsed previews by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17889
- fix(api-gateway): normalize no-prefill agent requests by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/17899
- fix(provider-settings): persist provider filter by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/17866
- fix(agent-dialog): hide prompt variable hint by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17903
- fix(ai-diagnosis): use free Qwen instead of the default assistant model by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/17902
- fix(profile): allow WebP avatar uploads by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17862
- fix(message-scroll): isolate nested scroll regions from chat viewport by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17876
- fix(claude-code): hide disabled MCP tools from agents by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17914
- fix(selection-menu): preserve TeX when copying formulas by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17905
- fix(horizontal-scroll-container): add bidirectional controls by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/17921
- perf(agent-session): reduce renderer loading work by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17878
- fix(chat): show model identity on single replies by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17928
- feat(assistant-groups): enable drag reorder by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17911
- fix(resource-pagination): avoid redundant first-page requests by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17931
- fix(api-gateway): normalize internal Agent continuations by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17929
- chore(deps): upgrade selection-hook to 2.0.3 by @0xfullex in https://github.com/CherryHQ/cherry-studio/pull/17934
- feat: Add 'embedding' endpoint type for NEWAPI model configuration by @LWWZH in https://github.com/CherryHQ/cherry-studio/pull/14988
- feat(conversation-picker): keep the create row visible while searching by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/17930
- feat(deepseek): support built-in web search by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17913
- fix(agent-runtime): bypass proxy for loopback gateways by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/17906
- fix(export-menu): align export and save actions by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/17920
- feat(tab-bar): show settings as a focused tab by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17916
- fix(gemini-tools): strip schema dialect metadata by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/17945
- fix(provider-settings): add model type scroll controls by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/17941
- 🤖 Daily Auto I18N Sync: Aug 06, 2026 by @github-actions[bot] in https://github.com/CherryHQ/cherry-studio/pull/17960
- fix(provider-migration): tolerate unusable legacy API keys by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17933
- fix(composer): restore default reasoning effort by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17937
- fix(cherry-assistant): restore normal agent capabilities by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/17870
- fix(tab-navigation): preserve conversation tab identity by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17819
- feat(tab-bar): draw a Chrome-style divider between adjacent tabs by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/17909
- fix(chat): restore assistant identity for migrated messages by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17976
- fix(model-selector): preserve lazy-loaded data between openings by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17963
- fix(api-gateway): support Claude tools in Responses API by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17943
- fix(web-search): guard query type in WebSearchTool and normalizeWebSearchKeywords; fix translation button contrast by @xxiaoxiong in https://github.com/CherryHQ/cherry-studio/pull/17972
- feat(knowledge-readers): read binary office documents through anydoc by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/17968
- fix(migration): prevent crash by adding error handling to V2 migration pipeline by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/17964
- fix(resource-catalog): stop repeated saves after failures by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17977
- fix(model-selector): prevent filtered model selection crash by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17951
- fix(painting-migrator): migrate tokenflux painting history by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17982
- fix(provider-registry): route OpenCode Go models by their served protocol by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17990
- fix(agent): restore context usage for gateway models by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/17988
- fix(rich-editor): detect CR-only line endings on markdown paste by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17986
- fix(agent-session): preserve runtime turn ordering by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/17975
- fix(ai-stream): pause ring eviction while tool approvals are pending by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17922
- fix(agent-migration): tolerate cloud storage metadata churn by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17947
- fix(paintings): apply default model to new drafts by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/17839
- fix(composer): show permission mode submenu indicator by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/17993
- fix(notes): sync empty note content in rich editor by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18004
- fix(agent-migration): preserve overlapping legacy workspace by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17887
- fix(migration): prevent OOM during v2 data export by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17917
- fix(code-editor): honor custom code font in conversation code blocks by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/18008
- fix(knowledge-migration): stream vector migration per item to avoid OOM by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/17886
- feat(composer): edit the navbar assistant in assistant grouping mode by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18013
- refactor(agent-skills): route bundled runtimes through tool guide by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/17848
- feat(diagnostics): add local diagnostic bundle export by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/17658
- fix(open-mineru): send standards-compliant multipart uploads by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18021
- refactor(agent-skills): finish routing bundled runtimes through tool guide by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18020
- fix(command-resolver): support Windows cmd shims by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18025
- feat(claude-code): enable CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18028
- fix(code-cli): allow enabling providers before installation by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/18032
- fix(model-icons): recognize Kimi K3 model ids by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18036
- fix(model-selector): clarify multi-select control by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18039
- fix(resource-list): give the sidebar list one type voice and one selection rule by @kennyzheng-builds in https://github.com/CherryHQ/cherry-studio/pull/17985
- fix(web-search): pass Exa API key to Exa MCP search by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/18017
- fix(sidebar): normalize mini-app icon presentation by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18047
- fix(scheduled-tasks): avoid deleted task detail refetch by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/18012
- fix(ai-runtime): strip JSON Schema keywords providers reject in tool schemas by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18041
- fix(skills): raise ZIP entry limit by @Pleasurecruise in https://github.com/CherryHQ/cherry-studio/pull/18040
- fix(message-delete): preserve branches during deletion by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/17996
- feat(agent-tools): add built-in document conversion by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/18026
- chore: release v2.0.1 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/18060
- fix(i18n): proofread all runtime translations by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/18050
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.0...v2.0.1
v2.0.0
Cherry Studio 2.0.0 - A New AI Workspace, from Chat to Getting Work Done
✨ New Interface, New Experience
- Upgraded interactions and visual design make chats, roles, projects, and tasks clearer and easier to organize
- Built for multitasking, with multi-window and split-view layouts for switching between work and reviewing progress and deliverables
🤖 More Powerful Agents
- Supports both OpenAI and Anthropic endpoints, reuses Claude and Codex subscriptions, and works with more models
- The core Agent runtime is built in, greatly reducing dependency installation and environment setup
- Complete research, documents, presentations, data analysis, and coding faster, with one-click previews of results
🛠️ More Tool Upgrades
- Agents can read and maintain knowledge bases, helping your knowledge grow continuously like a Wiki
- Code tools are upgraded to Code Mate, with one-click model service configuration for Claude Code, Codex, and more
- Image generation dynamically shows the parameters available for each model, making results easier to control
⚡ Performance
- A fully upgraded data foundation stays responsive even with extensive history
- Smoother scrolling in very long conversations, while large-folder imports no longer block the interface