Downloads / 下载 (v2.1.0)
| Platform | Architecture | Global | China Edition |
|---|---|---|---|
| Windows | x64 | Installer · Portable | Installer · Portable |
| Windows | arm64 | Installer · Portable | Installer · Portable |
| macOS | Apple M Series | DMG · ZIP | DMG · ZIP |
| macOS | Intel | DMG · ZIP | DMG · ZIP |
| Linux | x64 | AppImage · DEB · RPM | AppImage · DEB · RPM |
| Linux | arm64 | AppImage · DEB · RPM | AppImage · DEB · RPM |
Break Change/ 破坏性更新
Mac OS minimum supported version upgraded to Mac OS 13 (Ventura) Mac OS 支持最小版本升级到Mac OS 13 (Ventura)
Release Notes / 发布说明
English
Cherry Studio 2.1.0 - System Doctor, Browser Control, and Office Transform ✨ New Features - [Doctor] Add System Doctor with AI diagnosis, system checks, guided fixes, diagnostic export, and feedback. Checks cover installation, permissions, storage, providers, MCP, managed tools, and recent errors. Diagnose individual chats or Agent sessions separately from full system reports; opening feedback or export does not start a health check. - [Browser] Agents and chat assistants can use the built-in browser, with an animated pointer showing Agent actions. Agents can find page elements, recover them after page updates, inspect console and network activity, and use website WebMCP tools. Also supports browsing history search, browser data import, and separate history or cache clearing. - [Office] Add the office-transform skill: agents can extract worksheet ranges, document paragraphs, PDF pages, and slide shapes into new files. - [Selection] Turn on “Select region” to pick a worksheet range, Word paragraph, PDF page, or slide and quote it as a precise structural reference. - [Web Search] Add Serply as a web search provider. - [Models] Add DeepSeek V4.1 Flash model with reasoning effort control and web search support. - [Agent] Agents can opt out of Claude Code commit attribution in Settings → General. - [Sidebar] Pin Apps, Mini Apps, Agents, Assistants, Knowledge Bases, Topics, Agent Sessions, Files, and Code CLI tools as shortcuts. - [Chat] Add conversation link context menus for opening in built-in or external browser. - [History] Add Ctrl+A/Cmd+A select-all, Shift-click range selection, and partial-selection indicator. - [Mobile] Device Connections now visible to all users with a localized mobile app download card. - [Trash] Deleting topics, agents, assistants, or files now moves them to Settings → Data → Recycle Bin for restore or permanent deletion. - [Markdown] LaTeX code blocks now show formula previews by default. - [Markdown] Bare local file and folder paths in assistant responses are now clickable. - [Logs] Add log retention setting (7/14/30/90 days) with automatic cleanup. 🐛 Bug Fixes - [Code Block] Fixed edits being saved to wrong code block or lost; toolbar stays visible on scroll. - [Composer] Fixed paste silently doing nothing when file could not be read. - [Composer] Preserve input focus when sending messages. - [Conversation List] Show more now expands all remaining conversations. - [History] Keep history open after deleting conversations. - [Markdown] Prevent raw message flashes during lazy loading. - [Markdown] Fix display math rendering across blank lines. - [Windows] Fixed repeated “fsync(dir) failed” warnings in log. - [Models] Enable web search for tool-capable LMStudio/Ollama models. - [Models] List LM Studio models from /api/v0/models. - [Provider] Cap DeepSeek V4 output at 384000 tokens; correct GLM-5.3 and MiMo V2.5 limits. - [DSH] Launch DSH with bundled Bun; preserve OpenCode session headers. - [DSH] Fail fast on incompatible upgraded DSH home. - [Error] Classify Chromium net::ERR_* transport failures; preserve structured provider failure messages. - [Image] Restore HDR reference image compatibility; fix image rotation flip. - [Migration] Keep malformed MCP server record from aborting v2 migration. - [Shortcuts] Warn when shortcut collides with main-process shortcut. - [Chat] Restore bottom-follow after sending; preserve sidebar state when switching tabs. - [Chat] Show multi-model scrollbar on hover; prevent scroll rebound. - [Knowledge] Show file reader scrollbars. - [Smooth Stream] Flush buffered text on completion. - [Claude Code] Treat dangling symlinks as workspace escapes; preserve Linux desktop session bus. - [Copilot] Route GPT-6 Astra through Responses API.简体中文
Cherry Studio 2.1.0 - 系统诊断、浏览器控制与 Office 转换 ✨ 新功能 - [诊断] 新增系统诊断,支持 AI 诊断、系统检查、引导修复、导出诊断信息和问题反馈,涵盖安装、权限、存储、服务商、MCP、托管工具及最近错误。可单独诊断对话或智能体会话,与全系统报告分离;打开反馈或导出不会自动启动健康检查。 - [浏览器] 智能体和对话助手均可使用内置浏览器,并以动画指针展示智能体操作。智能体支持查找页面元素、在页面更新后恢复元素、检查控制台和网络活动,以及调用网站的 WebMCP 工具;同时支持搜索浏览历史、导入浏览器数据和单独清理历史或缓存。 - [Office] 新增 office-transform 技能:智能体可将工作表范围、文档段落、PDF 页面和幻灯片形状提取为新文件。 - [选择] 开启”选择区域”可选取工作表范围、Word 段落、PDF 页面或幻灯片,作为精确的结构化引用。 - [网络搜索] 新增 Serply 网络搜索服务商。 - [模型] 新增 DeepSeek V4.1 Flash 模型,支持推理力度控制和网络搜索。 - [智能体] 智能体可在设置 → 通用中关闭 Claude Code 提交署名。 - [侧边栏] 可将应用、小程序、智能体、助手、知识库、话题、智能体会话、文件和代码 CLI 工具固定为快捷方式。 - [对话] 新增对话链接右键菜单,可在内置或外部浏览器中打开。 - [历史] 支持 Ctrl+A/Cmd+A 全选、Shift 点击范围选择、部分选择指示器。 - [移动端] 设备连接对所有用户可见,新增本地化的移动端下载卡片。 - [回收站] 删除话题、智能体、助手或文件现在移入设置 → 数据 → 回收站,支持恢复或永久删除。 - [Markdown] LaTeX 代码块默认显示公式预览。 - [Markdown] 助手回复中的本地文件和文件夹路径现在可点击。 - [日志] 新增日志保留时间设置(7/14/30/90 天),支持自动清理。 🐛 问题修复 - [代码块] 修复编辑保存到错误代码块或丢失的问题;滚动时工具栏保持可见。 - [输入框] 修复粘贴文件读取失败时静默无反应的问题。 - [输入框] 发送消息时保持输入焦点。 - [对话列表] 点击”显示更多”现在展开所有剩余对话。 - [历史] 删除对话后保持历史窗口打开。 - [Markdown] 防止懒加载时的原始消息闪烁。 - [Markdown] 修复跨空行的显示公式渲染。 - [Windows] 修复日志中重复出现的”fsync(dir) failed”警告。 - [模型] 为支持工具的 LMStudio/Ollama 模型启用网络搜索。 - [模型] 从 /api/v0/models 列出 LM Studio 模型。 - [服务商] 将 DeepSeek V4 输出限制为 384000 tokens;修正 GLM-5.3 和 MiMo V2.5 限制。 - [DSH] 使用内置 Bun 启动 DSH;保留 OpenCode 会话头。 - [DSH] 对不兼容的升级版 DSH 主目录快速失败。 - [错误] 分类 Chromium net::ERR_* 传输失败;保留结构化服务商失败消息。 - [图片] 恢复 HDR 参考图片兼容性;修复图片旋转翻转。 - [迁移] 防止格式错误的 MCP 服务器记录中断 v2 迁移。 - [快捷键] 当快捷键与主进程快捷键冲突时发出警告。 - [对话] 发送后恢复底部跟随;切换标签时保持侧边栏状态。 - [对话] 悬停时显示多模型滚动条;防止滚动回弹。 - [知识库] 显示文件阅读器滚动条。 - [流畅流] 完成时刷新缓冲文本。 - [Claude Code] 将悬空符号链接视为工作区转义;保留 Linux 桌面会话总线。 - [Copilot] 通过 Responses API 路由 GPT-6 Astra。What's Changed
- docs(contributing): restore the missing DCO sign-off example by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/20295
- fix(data): backfill legacy file cleanup policy by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19287
- fix(image-generation): normalize HDR reference images before upload by @zhibisora in https://github.com/CherryHQ/cherry-studio/pull/20261
- Revert "fix(image-generation): normalize HDR reference images before upload" by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20317
- feat(provider-registry): add DeepSeek V4.1 Flash GA model by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20325
- chore(release): sync v2.0.14 metadata by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20293
- chore(typescript): adopt TypeScript 7 by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17719
- chore(oxlint): enable tsgolint 7 by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17720
- chore(format): migrate to Oxfmt by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17721
- chore(ui-contract): migrate parser to Oxc by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17723
- chore(build-toolchain): upgrade to Vite 8 by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17724
- chore(build-toolchain): drop @electron-toolkit/tsconfig by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17744
- chore(oxlint): enable no-useless-default-assignment rule by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17747
- chore(oxlint): enable no-unnecessary-type-assertion (clear the tsgolint 7 backlog) by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17749
- fix(shortcuts): report conflicts between main and renderer keybindings by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20339
- fix(agent-runtime): honor per-server MCP timeout in Pi and dsh runtimes by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/20297
- feat(log-cleanup): clean up logs manually and on a retention schedule by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20330
- feat(messages): add select-all to multi-select by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/20257
- chore(v2-refactor): retire temporary refactor directory by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20385
- feat(global-search): show conversation owner and workspace context by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20352
- docs(changelog): remove the v2 breaking-change log by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20396
- chore(dsh-runtime): upgrade SDK to 0.1.2-rc.1 by @WhiteZeek in https://github.com/CherryHQ/cherry-studio/pull/20214
- docs(main): drop the stale bootstrap.ts cleanup note from core README by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/20409
- fix(mcp-runtime): clamp oversized tool-result images before they reach agents by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20348
- fix(quick-assistant): preserve dark surface on Windows by @Dante-dan in https://github.com/CherryHQ/cherry-studio/pull/20319
- docs(migrations): correct the stale package manager in the migrations README by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/20410
- docs(references): fix dead heading anchors in the reference docs by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/20418
- fix(image-export): serialize renderer capture lifecycles by @squarepots in https://github.com/CherryHQ/cherry-studio/pull/20227
- fix(message-service): keep surviving replies on the branch after deleting the active node by @EurFelux in https://github.com/CherryHQ/cherry-studio/pull/20254
- fix: restore window focus on Windows after hiding main window by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/16277
- fix(agent-channels): stop trusting platform-declared attachment types by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20388
- fix(chat): render remote video results by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19404
- chore(pnpm): upgrade the package manager to pnpm 12.3.4 by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20411
- fix(claude-code): preserve Linux desktop session bus by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20448
- fix(stream-manager): wait for terminal dispatch before admitting a follow-up stream by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20393
- chore(tests): stop returning mocks from lifecycle hooks by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20387
- fix(api-gateway): report truncated Responses output as incomplete by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20375
- fix(composer-tokens): render knowledge refs as compact in-composer chips by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20442
- fix(topic-list): keep pinned indicator visible without hover by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20441
- fix(notes): keep inline rename editor alive when the context menu closes by @tommyzhang100504 in https://github.com/CherryHQ/cherry-studio/pull/20427
- fix(composer): hide focus shortcut hint from layout when editor is focused by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20276
- fix(paintings): save prompt edits before creating a new draft by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20213
- fix(chat): show multi-model scrollbar on hover by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20247
- feat(history): add select-all shortcuts and shift range selection by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20278
- fix(image-preview): flip images along screen axes after rotation by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20188
- fix(chat): preserve sidebar state when switching tabs by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20341
- fix(provider-settings): explain edition-hidden providers on cn builds by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20447
- fix(notes): unblock markdown parsing freeze on block-dense notes by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/20475
- fix(right-pane): drop the close tooltip when the panel closes by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20110
- fix(chat): restore bottom-follow after sending by @Dante-dan in https://github.com/CherryHQ/cherry-studio/pull/20491
- fix(logger): strip unbounded error fields before writing file logs by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20437
- fix(assistant-tools): expose prepare_diagnostic_report in default tool set by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20446
- test(scripts): make the release-workflow suite pass on Windows by @fszcd in https://github.com/CherryHQ/cherry-studio/pull/20497
- fix(provider-registry): resolve CherryIN Qwen 3.5 9B metadata by @lorenzozanee in https://github.com/CherryHQ/cherry-studio/pull/20495
- fix(agent-data): persist clearing agent plan/small model tiers by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20482
- fix(composer): stop pasted-text data loss on copy and over-limit insert by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/18855
- feat(settings-search): add zh/latin aliases for buried rows by @GeorgeDong32 in https://github.com/CherryHQ/cherry-studio/pull/20494
- fix(migration-v2-window): preserve portable relaunch path by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20468
- fix(agent): tolerate malformed tool search output by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19487
- fix(markdown): preserve table cell word boundaries by @Dante-dan in https://github.com/CherryHQ/cherry-studio/pull/20502
- fix(model-selector): improve tag filter chips spacing and overflow behavior (closes [#18411]) by @xxiaoxiong in https://github.com/CherryHQ/cherry-studio/pull/19710
- fix(tool-search): remove unnecessary test type assertion by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20506
- fix(agents): emit native-separator memory paths in the prompt and unbreak the suite on Windows by @fszcd in https://github.com/CherryHQ/cherry-studio/pull/20498
- fix(image-export): render capture clones faithfully and retire the CDP compositor path by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20492
- fix(v2-migration): surface the driver reason behind a failed schema migration by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20399
- fix(mcp-catalog): keep the failure backoff when a tools refresh fails by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20507
- fix(composer): stop rewriting the input with a stale snapshot after a long-text paste by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20508
- fix(composer): persist atomic chat draft snapshots by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19901
- fix(image-generation): restore HDR reference image compatibility by @zhibisora in https://github.com/CherryHQ/cherry-studio/pull/20318
- fix(preference-hooks): stabilize multi-key subscriptions by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/18624
- fix(provider): normalize reasoning_effort for GitHub Copilot (rebases [#18368], closes [#11140]) by @xxiaoxiong in https://github.com/CherryHQ/cherry-studio/pull/19720
- fix(scheduled-tasks): wrap long prompt tab text by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/19463
- fix(pi): emit invocation timing metrics so agent sessions display TPS by @whb2016 in https://github.com/CherryHQ/cherry-studio/pull/20312
- docs(skills): add the missing language switcher to the skills README pair by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/20413
- test: replace assertions CI flags as unnecessary with annotated variables by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20521
- fix(markdown): preserve single-tilde text by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19783
- chore(deps): upgrade Electron from 41.8.0 to 44.2.0 by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19350
- fix(ai-errors): preserve messages from structured provider failures by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/20525
- fix(deepseek-harness): fail fast on incompatible upgraded DSH home by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20443
- fix(model-selector): merge and prioritize CherryAI models by @zhibisora in https://github.com/CherryHQ/cherry-studio/pull/20270
- fix(provider-registry): correct MiMo V2.5 output token limit by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20542
- fix(markdown): bound mixed multiline math fences by @Dante-dan in https://github.com/CherryHQ/cherry-studio/pull/20469
- docs(ui): drop the deleted styles:legacy-vars command from the token guide by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/20305
- fix(migration): keep a malformed MCP server record from aborting the v2 migration by @L4XB in https://github.com/CherryHQ/cherry-studio/pull/20372
- fix(preview-release): build artifacts without release approval by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20528
- fix(knowledge): show file reader scrollbars by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/19833
- fix(reasoning-control): clarify localized effort labels by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20533
- fix(shortcut): label the Enter key as Return on macOS by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20279
- feat(sentry): gate error reporting by user consent by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20400
- fix(linux-packaging): ship the selection-hook prebuilds instead of the cross-compiled rebuild by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20534
- fix(dsh): preserve OpenCode session headers(补齐 OpenCode 会话头) by @LXD-8 in https://github.com/CherryHQ/cherry-studio/pull/20545
- fix(image-export): pre-inline remote images with content-type verification by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20519
- fix(model-list): list LM Studio models from /api/v0/models by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20346
- fix(directory-tree): release trees via WindowManager.onWindowDestroyed by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20566
- fix(agent-model): keep lookup inside startup transaction by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20035
- test(ai-messages): preserve MCP tool history across turns by @lorenzozanee in https://github.com/CherryHQ/cherry-studio/pull/20563
- fix(binary-manager): refresh dependency state after update checks by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20464
- fix(model-retry): skip fallback models whose provider is disabled by @L4XB in https://github.com/CherryHQ/cherry-studio/pull/20580
- fix(filesystem-mcp): reject dangling symlinks that escape the workspace root by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20505
- fix(global-search): debounce queries and skip IME composition intermediates by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/19253
- fix(code-block): keep toolbar visible on scroll by @LazyPeterGriffin in https://github.com/CherryHQ/cherry-studio/pull/19008
- ci(deps): bump actions/cache from 5 to 6 by @dependabot[bot] in https://github.com/CherryHQ/cherry-studio/pull/20382
- fix(lint-gate): restore Oxlint warning failures by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20579
- fix(image-export): measure capture size after inlining images by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20626
- fix(chat-scroll): prevent multi-model scroll rebound by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20289
- fix(provider-registry): require explicit model resolution context by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20583
- fix(smooth-stream): flush buffered text on completion by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20132
- fix(image-export): inline remote images through a bounded fetch pool by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20627
- fix(translate): cancel the in-flight stream before replacing output by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20152
- fix(chat-shell): prevent hidden layout scrolling by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/20585
- build(deps): upgrade electron-shutdown-handler to 1.2.0 by @ActiveSky in https://github.com/CherryHQ/cherry-studio/pull/20601
- fix(nutstore): accept SSO callback route by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20581
- fix(agent-session): target an idle connection at the agent's configured reasoning effort by @L4XB in https://github.com/CherryHQ/cherry-studio/pull/20615
- fix(markdown): keep
\[…\]display math together across a blank line by @L4XB in https://github.com/CherryHQ/cherry-studio/pull/20588 - feat(api-gateway): LAN device pairing and provider export for mobile by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/20262
- fix(copilot): route GPT-6 Astra through Responses API by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20632
- fix(claude-code): treat dangling symlinks as workspace escapes by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20504
- test(agent): cover unsupported reasoning summary parameters by @lorenzozanee in https://github.com/CherryHQ/cherry-studio/pull/20608
- fix(toast): align action content by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/20634
- fix(history): keep history open after deleting conversations by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20288
- fix(translate): explain automatic bidirectional translation by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20638
- feat(markdown): preview LaTeX code blocks and preserve display math by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20577
- fix(error-classifier): classify Chromium net::ERR_* transport failures by @lorenzozanee in https://github.com/CherryHQ/cherry-studio/pull/20595
- fix(dsh-runtime): launch DSH with bundled Bun by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20535
- feat(webview): add element annotations by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17842
- feat(webview): add reusable Agent Pane browser by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/17872
- feat(webview): add stable surfaces outside page activity by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20366
- feat(browser-session): add shared CDP engine and migrate annotation capture by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20128
- feat(browser-mcp): add actionable browser tools and managed session cleanup by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20134
- feat(browser-mcp): add inspection tools and same-document ref recovery by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20139
- feat(agent-browser): integrate browser control and cross-platform data import by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20166
- refactor(webview): share guest hosting and navigation with mini apps by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20241
- feat(browser-use): visualize agent pointer actions by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20342
- feat(browser-use): integrate native website WebMCP tools by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20582
- fix(global-search): distinguish recent settings destinations by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20639
- fix(chat-ui): adjust clear dialog focus and model group tooltip by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20629
- fix(backup): explain background task timeout failures by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20628
- feat(markdown): link bare file paths in assistant output by @userInner in https://github.com/CherryHQ/cherry-studio/pull/19534
- test(mcp): cover Agent catalog replacement after restart by @lorenzozanee in https://github.com/CherryHQ/cherry-studio/pull/20622
- feat(agent): let Agent sessions opt out of Claude Code commit attribution by @LXD-8 in https://github.com/CherryHQ/cherry-studio/pull/20645
- ci(regression-test): automate critical path testing by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/19180
- feat(assistant-browser): add topic-scoped browser use by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20642
- feat(selection-reference): structural selection anchors, FilePreview contract, and office-transform skill by @MyPrototypeWhat in https://github.com/CherryHQ/cherry-studio/pull/18422
- feat(file-preview): office suite selection producers and composer wiring by @MyPrototypeWhat in https://github.com/CherryHQ/cherry-studio/pull/19056
- refactor(office-transform): modularize by format inside the skill by @MyPrototypeWhat in https://github.com/CherryHQ/cherry-studio/pull/20242
- fix(provider-registry): correct GLM-5.3 output token limit by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/20665
- fix(error-classifier): point knowledge nav target to /app/knowledge by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20666
- fix(model-list): enable web search for tool-capable LMStudio/Ollama models by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20664
- fix(provider-registry): cap DeepSeek V4 output at 384000 tokens by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/20667
- fix(composer): preserve input focus when sending messages by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20590
- feat(trash): archive instead of delete with recycle bin and retention purge by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/16746
- fix(export): keep code untouched when forcing dollar math by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20668
- fix(deepseek-harness): record dsh version on launch failure, guard archive-only homes by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20660
- fix(markdown): prevent raw message flashes during lazy loading by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20671
- fix(composer): reclaim input width from corner padding by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20672
- feat(sidebar): support generic resource shortcuts by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19735
- feat(device-connections): expose settings and add mobile download by @zhangjiadi225 in https://github.com/CherryHQ/cherry-studio/pull/20681
- fix(composer): hide the input focus reminder by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20679
- fix(code-block): save edits to the block that was edited by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20680
- fix(agent-tasks): refresh task run history on job state changes by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20154
- feat(web-search): add Serply search provider by @googio in https://github.com/CherryHQ/cherry-studio/pull/20370
- docs(presets): fix the stale heading anchor in the presets README by @c020627 in https://github.com/CherryHQ/cherry-studio/pull/20419
- fix(rich-editor): revoke blob URLs created for pasted images by @kovsu in https://github.com/CherryHQ/cherry-studio/pull/20669
- feat(agent-session): add agent_list, session_read and cross-agent session_create tools by @vaayne in https://github.com/CherryHQ/cherry-studio/pull/20168
- fix(migration-v2): defer direct migration ceiling to v3.0.0 by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20698
- fix(composer): attach every pathless clipboard image in one paste by @superbigcup325 in https://github.com/CherryHQ/cherry-studio/pull/20691
- fix(sub-window): apply persisted zoom factor to detached tab windows by @NatsUIJM in https://github.com/CherryHQ/cherry-studio/pull/20696
- fix(conversation-list): expand all group items on show more by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20697
- fix(knowledge): read an EPUB chapter with the HTML reader, not a tag regex by @L4XB in https://github.com/CherryHQ/cherry-studio/pull/20633
- fix(composer): toast when pasted file lookup returns null by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20704
- fix(file): silence EPERM/EACCES dir-fsync errors on Windows by @404-Page-Found in https://github.com/CherryHQ/cherry-studio/pull/20705
- docs(v2-refactor): remove remaining breaking-change records by @kangfenmao in https://github.com/CherryHQ/cherry-studio/pull/20707
- fix(html-to-markdown): convert a fetched table into a table by @L4XB in https://github.com/CherryHQ/cherry-studio/pull/20644
- feat(doctor): System Doctor infrastructure, NetworkService and entry points by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/19982
- feat(system-doctor): add backend diagnostic checks by @eeee0717 in https://github.com/CherryHQ/cherry-studio/pull/19992
- feat(system-doctor): implement Doctor V1 frontend by @AtomsH4 in https://github.com/CherryHQ/cherry-studio/pull/20006
- refactor(system-doctor): unify diagnostic presentation by @SiinXu in https://github.com/CherryHQ/cherry-studio/pull/20204
- feat(chat): add context menu actions for conversation links by @ousugo in https://github.com/CherryHQ/cherry-studio/pull/20646
- feat(doctor): scope diagnosis to the chat or agent that failed by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20416
- docs(release-notes): consolidate v2.1.0 feature entries by @DeJeune in https://github.com/CherryHQ/cherry-studio/pull/20723
New Contributors
- @fszcd made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/20497
- @whb2016 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/20312
- @L4XB made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/20372
- @LXD-8 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/20545
- @LazyPeterGriffin made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/19008
- @googio made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/20370
- @superbigcup325 made their first contribution in https://github.com/CherryHQ/cherry-studio/pull/20691
Full Changelog: https://github.com/CherryHQ/cherry-studio/compare/v2.0.14...v2.1.0