github CherryHQ/cherry-studio v2.0.11

3 hours ago

Cherry Studio 2.0.11 - Features, Fixes, and Improvements

✨ New Features

  • [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 equation and aligned.
  • [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 环境(如 equationaligned)的渲染。
  • [Markdown] 修复在笔记编辑器中插入或调整列后表格列保持过时固定宽度的问题。
  • [小程序] 向聊天或文件导出传递 null 选项不再报意外错误。
  • [小程序] 使用固定的 25px 大小显示小程序标签图标。
  • [小程序] 托管的 DeepSeek Harness 会话在启动或重启时不再打开系统浏览器。
  • [小程序] 未授权的 HTML 产物预览中的链接不再能导航预览框架。
  • [MCP 浏览器] 恢复 Windows 上的 MCP 浏览器窗口控件和标签栏操作。
  • [知识库] 重建索引现在从真实来源重新获取文件。
  • [文件] 向输入框粘贴多个文件时,如果一个文件读取失败,不再丢弃其余文件。
  • [绘画] 修复绘画迁移器留下悬空模型引用导致发送按钮禁用的问题。
  • [侧边栏] 全新安装现在首先打开智能体并将其放在聊天之前;现有用户保持其保存的顺序。

⚡ 性能优化

  • [导出] 导出或分析包含多次网络/知识搜索的长话题不再二次方减慢。
  • [文件预览] 改进文件预览启动时间,在检查文件元数据的同时加载支持的预览模块。

What's Changed

  • chore(release): sync v2.0.10 metadata by @kangfenmao in #19677
  • fix(ci): shard preload with the main forks pool by @GeorgeDong32 in #19680
  • feat(screenshot): confirm the capture on double-click inside the selection by @EurFelux in #18931
  • perf(messages): isolate activity subscriptions per message by @userInner in #19527
  • feat(translate): make single-direction translation target-only by @userInner in #19245
  • perf(resource-selector): defer data reads until opened by @lihuiyang1024 in #19645
  • docs(renderer): mark features/ as target-only in renderer architecture by @404-Page-Found in #19226
  • fix(chat-message): allow uniform edit for all assistant messages by @404-Page-Found in #19421
  • perf(composer): parallelize path-backed file paste by @userInner in #19516
  • feat(builtin-knowledge): add feature-level catalog to product manifest by @404-Page-Found in #19419
  • fix(topics): keep pinned chats inside assistant groups by @userInner in #19305
  • fix(composer): restore configurable long-text paste and default to inline text by @404-Page-Found in #18693
  • fix(provider-registry): preserve curated reasoning vocabularies by @userInner in #19298
  • fix(ci): serialize typecheck inside basic-checks to stop runner OOM by @kovsu in #19725
  • fix(deepseek-harness): suppress managed browser launch by @userInner in #19172
  • fix(migration): reconcile painting modelId against user_model to prevent dangling refs by @LWWZH in #16943
  • fix(window-manager): block content-initiated subframe navigation by @kovsu in #19723
  • fix(right-pane): give the list its own width instead of the artifact pane's by @kennyzheng-builds in #19201
  • feat(mini-apps): use fixed tab icon size for mini-apps by @Xiaoteng152 in #19092
  • fix(chat-citations): drop citation markers the message cannot resolve by @eeee0717 in #19780
  • fix(release-workflow): allow preview validation from branches by @DeJeune in #19785
  • ci(i18n): remove and reject unused translation keys by @kangfenmao in #19664
  • feat(provider-registry): support Hy4, Ling 3.0, and Qwen 3.8 Flash by @DeJeune in #19667
  • fix(agent-runtime): preserve attachment filenames by @ActiveSky in #19750
  • fix(feishu): make silent message drops visible with warn logs and user notifications by @404-Page-Found in #19043
  • fix(mini-app): treat null bridge options like an absent argument by @kovsu in #19734
  • fix(web-search): prefer model-native tools by default by @AtomsH4 in #19784
  • feat(message-translation): add inline delete button to translation bl… by @keygenqt in #19705
  • fix(export): copy image assets in main and repair dangling links by @kovsu in #19685
  • feat(sidebar): allow hiding the chat assistant and land on the first sidebar app by @404-Page-Found in #18158
  • feat(agent-chat): add global search action by @SiinXu in #19768
  • fix(resource-catalog): delete agents through agent service by @userInner in #19399
  • perf(file-preview): preload plugins alongside metadata by @SiinXu in #19643
  • fix(chat): keep thinking elapsed stable across tab switches by @404-Page-Found in #19764
  • fix(provider-registry): restore OpenRouter reasoning Off control by @DeJeune in #19730
  • ci(deps): bump actions/stale from 10 to 11 by @dependabot[bot] in #19814
  • ci(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #19813
  • fix(provider): sanitize modelId containing reserved route characters … by @netphils in #19809
  • docs: remove dead openaitx.github.io translation links from README by @putramkti in #19762
  • feat(file-preview): improve PDF preview navigation by @DeJeune in #19724
  • fix(translate-history): revalidate in place when membership changes (closes #19687) by @xxiaoxiong in #19713
  • fix(composer): persist atomic agent draft snapshots by @ousugo in #19666
  • fix(db-schema): index user_model foreign keys on the message tables by @kennyzheng-builds in #19796
  • fix(backup): report disk-full failures by @kangfenmao in #19815
  • fix(agent-heartbeat): honor the heartbeat toggle on migration-renamed schedules by @kennyzheng-builds in #19568
  • fix(scheduled-tasks): stop stale running status after startup recovery by @kovsu in #19448
  • fix(renderer): make code block horizontal scrollbar thumb visible (fixes #19798) by @xxiaoxiong in #19807
  • fix(message-translation): hide inline translation delete in read-only embeds by @kovsu in #19837
  • fix(dashscope): expose all Responses reasoning tiers for Qwen3.8 by @kovsu in #19831
  • fix(provider): persist custom request header deletions by @ousugo in #19704
  • refactor(paintings): type config field variants by @userInner in #19170
  • fix(models): add regex for versioned GPT image models by @404-Page-Found in #15684
  • fix(topic-naming): use explicit language names in prompts by @SiinXu in #19652
  • fix(image-preview): preserve SVG intrinsic dimensions by @userInner in #19400
  • fix(resource-selector): isolate focus row rendering by @SiinXu in #19644
  • fix(chat): keep top-selected model for the next turn by @userInner in #18889
  • feat(files): support Ctrl+A select-all in the file list by @ousugo in #19682
  • feat(poe): default to the openai responses api endpoint by @kovsu in #14144
  • fix(data-migration): preserve v1 response context selection by @DeJeune in #19683
  • fix(topics): keep selection stable on delete race by @GeorgeDong32 in #19613
  • fix(security): verify WebDAV TLS by default, self-signed opt-in; owner-only backup staging by @GeorgeDong32 in #18793
  • fix(markdown): support standalone LaTeX environments by @darksideforce in #19726
  • fix(message-translation): split the translation divider around its icons by @kovsu in #19838
  • feat(app-shell): improve mini apps and transparent views by @kangfenmao in #19845
  • feat(context-management): configurable compaction trigger threshold by @DeJeune in #19144
  • feat(knowledge): reindex re-acquires from the real source by @eeee0717 in #19829
  • fix(mcp-browser): restore tab bar actions on Windows by @ActiveSky in #19782
  • refactor(local-model): unify local models into one catalog-driven subsystem by @eeee0717 in #19580
  • feat(anthropic-cache): support configurable cache TTL by @SiinXu in #19871
  • feat(i18n): add Turkish localization by @hburaktasyurek in #19251
  • feat(tokenhub): add image generation via the /v1/wand endpoints by @kovsu in #19856
  • perf(provider-settings): lazy-load low-frequency editors by @SiinXu in #19879
  • fix(i18n): translate Anthropic cache TTL keys into Turkish by @DeJeune in #19885
  • feat(web-search): prefer model-native web tools by @AtomsH4 in #19825
  • fix(release-workflow): automate validated release publication by @DeJeune in #19681
  • fix(i18n): sync Turkish locale with web-search key rename by @DeJeune in #19892
  • fix(prepare-release): derive release history from prepared release notes by @DeJeune in #19897
  • feat(release): build global and China editions by @kangfenmao in #19776
  • fix(chat-citations): resolve [cite:id] markers across turns by @eeee0717 in #19898
  • fix(provider-registry): point the TokenHub API key link at the console key page by @kovsu in #19889
  • fix(sidebar): default new users to Agent by @kangfenmao in #19903
  • fix(didi-mcp): call the DiDi MCP endpoint over https by @kovsu in #19888
  • fix(release-workflow): keep tag_name and pin previous tag on draft release by @DeJeune in #19902
  • perf(citations): fold earlier-turn parts only when a marker stays unresolved by @kovsu in #19913
  • fix(extension-table-plus): clear stale col width when reusing colgroup entries by @kovsu in #19907
  • fix(agent-sessions): keep pinned sessions in agent groups by @AtomsH4 in #19916
  • feat(cherry-cloud): add desktop login and managed Work access by @zhibisora in #19204

New Contributors

Full Changelog: v2.0.10...v2.0.11

Don't miss a new cherry-studio release

NewReleases is sending notifications on new releases.