Releases: CherryHQ/cherry-studio
Releases · CherryHQ/cherry-studio
Release list
v2.0.3
What's Changed
- feat(composer): add smooth wheel control for reasoning effort by @ousugo in #17829
- fix(sidebar): add sidebar management menu entry by @ousugo in #18031
- fix(agent-channels): strip citation markers from IM replies by @Pleasurecruise in #18064
- feat(chat-composer): show assistant context usage by @zhangjiadi225 in #18006
- fix(agent-session): limit automatic naming to initial turn by @zhangjiadi225 in #17987
- feat(web-search): add Firecrawl as a URL fetch provider by @DeJeune in #18089
- perf(chat-tabs): eliminate tab-switch IPC and re-render churn under Activity keep-alive by @zhangjiadi225 in #18035
- feat(knowledge-data-source): write a new note straight into the knowledge base by @eeee0717 in #18022
- fix(agent): make the configured system prompt authoritative by @AtomsH4 in #18100
- fix(agent-attachments): preserve managed files for session history by @vaayne in #18027
- fix(code-cli): respect Linux default terminal by @Pleasurecruise in #18103
- fix(composer): keep input compact in maximized panels by @zhangjiadi225 in #18125
- docs(design-system): streamline global UI guidance by @zhangjiadi225 in #18110
- fix(linux-packaging): ship GLIBC-compatible better-sqlite3 by @kangfenmao in #17778
- fix(openai-compatible): always echo reasoning_content on assistant turns by @DeJeune in #18121
- fix(mini-app): dismiss loading overlay on dom-ready by @Pleasurecruise in #18079
- feat(agent-runtime): support scoped AGENTS.md instructions by @vaayne in #18126
- fix(backup): skip EBUSY locked files (LevelDB LOCK) during automatic backup by @xxiaoxiong in #18117
- fix(agent-runtime): recover duplicate tool use ID failures by @AtomsH4 in #18119
- fix(mcp): resolve stdio MCP servers to full paths on Windows by @LWWZH in #16472
- fix(notes): align sidebar note icons by @ousugo in #18143
- fix(mcp): close stale clients so ping failures stop orphaning child processes by @DeJeune in #18146
- fix(chat-migration): bound message block indexing memory by @kangfenmao in #18127
- ci: reduce pre-merge test runtime by @Pleasurecruise in #18165
- fix(lifecycle): bound each service's teardown during shutdown by @0xfullex in #18136
- feat(code-cli): add Pi coding agent to Code Tools by @vaayne in #16928
- fix(mcp-tools): prevent non-ASCII tool identity collisions by @AtomsH4 in #18128
- fix(builtin-tools): stop sending strict so knowledge bases work on Anthropic by @eeee0717 in #18179
- fix(backup): skip LevelDB locks in streamed backups by @AtomsH4 in #18173
- fix(resource-list): unify cross-panel list styling by @zhangjiadi225 in #18046
- fix(mcp-tool-approval): treat IM-channel sessions as background agents for MCP tool access by @lanex2000 in #18153
- feat(chat-composer): save edited user messages without resending by @DeJeune in #18057
- fix(composer-draft): preserve unsent drafts across navigation by @zhangjiadi225 in #18019
- feat(external-apps): add Windows Terminal (wt.exe) support by @MengXiangxi in #17942
- fix(ai-provider): preserve OpenCode conversation affinity by @Pleasurecruise in #18184
- fix(ollama): detect native thinking capabilities by @Pleasurecruise in #18133
- perf(startup-memory): lazy-load five heavy main-process dependencies by @beyondkmp in #18189
- fix(selection-assistant): start a fresh chat session per selection by @DeJeune in #18200
- fix(code-cli): write valid OpenCode compaction config by @Pleasurecruise in #18015
- fix(agent-session): preserve citations for deferred tool outputs by @zhangjiadi225 in #18124
- fix(code-cli): synchronize Codex authentication mode by @Pleasurecruise in #18188
- 🤖 Daily Auto I18N Sync: Aug 08, 2026 by @github-actions[bot] in #18208
- chore: release v2.0.3 by @kangfenmao in #18210
- fix(data-migration): tolerate malformed agent MCP data by @AtomsH4 in #18176
- fix(agent-right-pane): move declared outputs under the task plan by @kennyzheng-builds in #18216
- feat(composer-toolbar): pin permission mode by default for new users by @kennyzheng-builds in #18222
- feat(model-retry): user-configured model retry & fallback via ai-retry by @DeJeune in #16057
- fix(knowledge-readers): reject binary Office text fallback by @kennyzheng-builds in #18260
- fix(chat-attachments): respect endpoint media support by @AtomsH4 in #18182
- fix(knowledge-migration): stop v1 folder files and duplicate uploads from migrating as uuids by @eeee0717 in #18167
- fix(agent-session): own session warmth leases in main across windows by @zhangjiadi225 in #18108
- fix(claude-code-runtime): fix the agent auto-compact budget and trigger by @vaayne in #18137
- fix(agent-runtime): prefer a model's Anthropic Messages endpoint for agent sessions by @DeJeune in #18221
- fix(agent-runtime): surface Claude Code API failures by @zhangjiadi225 in #18280
- 🤖 Daily Auto I18N Sync: Aug 10, 2026 by @github-actions[bot] in #18293
- fix(paintings): preserve long pasted prompts by @Pleasurecruise in #18291
New Contributors
- @lanex2000 made their first contribution in #18153
Full Changelog: v2.0.2...v2.0.3
v2.0.2
What's Changed
- feat(chat-branch): persist empty branch nodes by @zhangjiadi225 in #17667
- perf(chat-tabs): skip redundant re-show work in message tools, artifact pane, and trace page by @zhangjiadi225 in #18038
- fix(claude-code): reap sdk cli subprocesses on shutdown by @kovsu in #17969
- fix(tool-loop): raise the default tool-call round cap by @DeJeune in #18072
- fix(directory-tree): close the snapshot-to-stream delivery gap by @DeJeune in #18009
- feat(providers): built-in web search for DeepSeek/OpenRouter/Dashscope + distinguishable resolved model names by @DeJeune in #17983
- fix(v2-migration): allow direct upgrades to v2.0.x by @kangfenmao in #18093
- feat(cache-cleanup): add selective cache and legacy data cleanup by @kangfenmao in #17377
- fix(composer): open image tokens in shared preview by @zhangjiadi225 in #18082
- fix(agent-channels): start WeChat QR login by @Pleasurecruise in #18071
- refactor(proxy): make ProxyService own worker routing policy by @eeee0717 in #18095
- feat: add Claude (Anthropic) conversation import support by @Pleasurecruise in #16164
- feat(cli-config): support detailed models through unified gateway by @eeee0717 in #18014
- feat(data-migration): allow rerunning v1 migration by @kangfenmao in #18002
- fix(mcp-settings): preserve form edits and improve tool details by @Pleasurecruise in #17647
- fix(new-api): serve every endpoint from one host with per-route versions by @DeJeune in #18033
- fix(agent-migration): skip symlinks during migration by @kangfenmao in #18101
- fix(local-model): survive mirror failures and keep embedding inference offline by @eeee0717 in #18016
- chore: release v2.0.2 by @kangfenmao in #18107
- fix(selection-assistant): respect Traditional Chinese locale by @AtomsH4 in #18098
Full Changelog: v2.0.1...v2.0.2
v2.0.1
What's Changed
- fix(agent-files): localize workspace tree errors by @AtomsH4 in #17869
- fix(claude-code): use preset append mode for agent prompts by @DeJeune in #17879
- chore(deps): address high and critical advisories by @Pleasurecruise in #17875
- fix(provider-registry): serve DeepSeek V4 models over the Anthropic endpoint by @eeee0717 in #17901
- fix(openclaw): recover stale dashboards across windows by @vaayne in #17864
- fix(chat-messages): prevent reference context leaks in collapsed previews by @zhangjiadi225 in #17889
- fix(api-gateway): normalize no-prefill agent requests by @kovsu in #17899
- fix(provider-settings): persist provider filter by @ousugo in #17866
- fix(agent-dialog): hide prompt variable hint by @zhangjiadi225 in #17903
- fix(ai-diagnosis): use free Qwen instead of the default assistant model by @AtomsH4 in #17902
- fix(profile): allow WebP avatar uploads by @zhangjiadi225 in #17862
- fix(message-scroll): isolate nested scroll regions from chat viewport by @zhangjiadi225 in #17876
- fix(claude-code): hide disabled MCP tools from agents by @DeJeune in #17914
- fix(selection-menu): preserve TeX when copying formulas by @zhangjiadi225 in #17905
- fix(horizontal-scroll-container): add bidirectional controls by @AtomsH4 in #17921
- perf(agent-session): reduce renderer loading work by @zhangjiadi225 in #17878
- fix(chat): show model identity on single replies by @DeJeune in #17928
- feat(assistant-groups): enable drag reorder by @zhangjiadi225 in #17911
- fix(resource-pagination): avoid redundant first-page requests by @DeJeune in #17931
- fix(api-gateway): normalize internal Agent continuations by @DeJeune in #17929
- chore(deps): upgrade selection-hook to 2.0.3 by @0xfullex in #17934
- feat: Add 'embedding' endpoint type for NEWAPI model configuration by @LWWZH in #14988
- feat(conversation-picker): keep the create row visible while searching by @kennyzheng-builds in #17930
- feat(deepseek): support built-in web search by @DeJeune in #17913
- fix(agent-runtime): bypass proxy for loopback gateways by @AtomsH4 in #17906
- fix(export-menu): align export and save actions by @Pleasurecruise in #17920
- feat(tab-bar): show settings as a focused tab by @kangfenmao in #17916
- fix(gemini-tools): strip schema dialect metadata by @AtomsH4 in #17945
- fix(provider-settings): add model type scroll controls by @AtomsH4 in #17941
- 🤖 Daily Auto I18N Sync: Aug 06, 2026 by @github-actions[bot] in #17960
- fix(provider-migration): tolerate unusable legacy API keys by @kangfenmao in #17933
- fix(composer): restore default reasoning effort by @DeJeune in #17937
- fix(cherry-assistant): restore normal agent capabilities by @vaayne in #17870
- fix(tab-navigation): preserve conversation tab identity by @zhangjiadi225 in #17819
- feat(tab-bar): draw a Chrome-style divider between adjacent tabs by @kennyzheng-builds in #17909
- fix(chat): restore assistant identity for migrated messages by @kangfenmao in #17976
- fix(model-selector): preserve lazy-loaded data between openings by @zhangjiadi225 in #17963
- fix(api-gateway): support Claude tools in Responses API by @DeJeune in #17943
- fix(web-search): guard query type in WebSearchTool and normalizeWebSearchKeywords; fix translation button contrast by @xxiaoxiong in #17972
- feat(knowledge-readers): read binary office documents through anydoc by @eeee0717 in #17968
- fix(migration): prevent crash by adding error handling to V2 migration pipeline by @404-Page-Found in #17964
- fix(resource-catalog): stop repeated saves after failures by @zhangjiadi225 in #17977
- fix(model-selector): prevent filtered model selection crash by @DeJeune in #17951
- fix(painting-migrator): migrate tokenflux painting history by @DeJeune in #17982
- fix(provider-registry): route OpenCode Go models by their served protocol by @DeJeune in #17990
- fix(agent): restore context usage for gateway models by @ousugo in #17988
- fix(rich-editor): detect CR-only line endings on markdown paste by @DeJeune in #17986
- fix(agent-session): preserve runtime turn ordering by @kovsu in #17975
- fix(ai-stream): pause ring eviction while tool approvals are pending by @zhangjiadi225 in #17922
- fix(agent-migration): tolerate cloud storage metadata churn by @DeJeune in #17947
- fix(paintings): apply default model to new drafts by @ousugo in #17839
- fix(composer): show permission mode submenu indicator by @ousugo in #17993
- fix(notes): sync empty note content in rich editor by @ousugo in #18004
- fix(agent-migration): preserve overlapping legacy workspace by @DeJeune in #17887
- fix(migration): prevent OOM during v2 data export by @kangfenmao in #17917
- fix(code-editor): honor custom code font in conversation code blocks by @zhangjiadi225 in #18008
- fix(knowledge-migration): stream vector migration per item to avoid OOM by @eeee0717 in #17886
- feat(composer): edit the navbar assistant in assistant grouping mode by @DeJeune in #18013
- refactor(agent-skills): route bundled runtimes through tool guide by @vaayne in #17848
- feat(diagnostics): add local diagnostic bundle export by @kangfenmao in #17658
- fix(open-mineru): send standards-compliant multipart uploads by @eeee0717 in #18021
- refactor(agent-skills): finish routing bundled runtimes through tool guide by @vaayne in #18020
- fix(command-resolver): support Windows cmd shims by @Pleasurecruise in #18025
- feat(claude-code): enable CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT by @DeJeune in #18028
- fix(code-cli): allow enabling providers before installation by @eeee0717 in #18032
- fix(model-icons): recognize Kimi K3 model ids by @Pleasurecruise in #18036
- fix(model-selector): clarify multi-select control by @kangfenmao in #18039
- fix(resource-list): give the sidebar list one type voice and one selection rule by @kennyzheng-builds in #17985
- fix(web-search): pass Exa API key to Exa MCP search by @404-Page-Found in #18017
- fix(sidebar): normalize mini-app icon presentation by @kangfenmao in #18047
- fix(scheduled-tasks): avoid deleted task detail refetch by @ousugo in #18012
- fix(ai-runtime): strip JSON Schema keywords providers reject in tool schemas by @DeJeune in #18041
- fix(skills): raise ZIP entry limit by @Pleasurecruise in #18040
- fix(message-delete): preserve branches during deletion by @zhangjiadi225 in #17996
- feat(agent-tools): add built-in document conversion by @vaayne in #18026
- chore: release v2.0.1 by @kangfenmao in #18060
- ...
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
v2.0.0-rc.5
What's Changed
- fix(provider-registry): enable Gemma 4 thinking in Ollama by @DeJeune in #17738
- 🤖 Daily Auto I18N Sync: Aug 03, 2026 by @github-actions[bot] in #17750
- fix(code-block-view): preserve streamed code block identity by @zhangjiadi225 in #17736
- feat(message-anchor): refine anchor navigation into a minimal tick rail by @kennyzheng-builds in #17012
- feat(image-preview): add save-as actions by @zhangjiadi225 in #17758
- test(file-processing): wait for processor panel update by @eeee0717 in #17762
- test(frontend-tests): remove low-value coverage by @zhangjiadi225 in #17757
- test(file-processing): wait for async model overrides by @zhangjiadi225 in #17763
- fix(agent-pinning): avoid false failure toast after successful pin by @zhangjiadi225 in #17760
- fix(ai-provider): preserve snake_case custom parameters by @DeJeune in #17612
- feat(knowledge): download local embedding model in background by @eeee0717 in #17697
- fix(message-rendering): settle interrupted block animations by @AtomsH4 in #17765
- fix(markdown): restore GitHub alert styling by @kangfenmao in #17764
- fix(anthropic): preserve output limits for compatible models by @DeJeune in #17525
- fix(chat-messages): stop streaming re-render storm and send-time history flash by @zhangjiadi225 in #17756
- fix(openclaw): use canonical gateway health endpoint by @AtomsH4 in #17767
- test(file-processing): stabilize async processor interactions by @kangfenmao in #17772
- fix(model-drawer): preserve selected chat endpoint by @eeee0717 in #17773
- fix(model-selector): align assistant and agent filters by @zhangjiadi225 in #17759
- fix(claude-code): tolerate tool_use blocks that open without a name by @vaayne in #17755
- fix(mcp): show online package server details by @kangfenmao in #17771
- fix(mcp): restore deeplink installation by @kangfenmao in #17699
- fix(model-drawer): restore New API endpoint multi-select by @eeee0717 in #17776
- fix(composer): restore Windows clipboard image recognition by @404-Page-Found in #17739
- fix(ipc-security): trust renderer behind directory links by @kangfenmao in #17766
- refactor(chat-messages): unify assistant and agent rendering by @zhangjiadi225 in #17774
- fix(knowledge-selector): improve knowledge selection menus by @eeee0717 in #17770
- perf(conversation-load): parallelize active model loading by @zhangjiadi225 in #17780
- perf(data-api): defer inactive renderer queries by @zhangjiadi225 in #17775
- refactor(knowledge): restructure into domain services and adopt core/job primitives by @eeee0717 in #16749
- fix(mini-app): reload current page without resetting navigation by @ousugo in #17469
- fix(main-window): remove dead CSP/XFO stripping that clobbered crash telemetry by @kovsu in #17791
- fix(mcp): use TextDecoder stream mode for stderr to eliminate U+FFFD in logs by @LWWZH in #17785
- fix(binary-manager): prune obsolete versions after updates by @Pleasurecruise in #17799
- fix(mcp-oauth): re-register OAuth client when auth server changes (main) by @404-Page-Found in #17795
- feat(agent-skills): add built-in Cherry tool guide by @vaayne in #17802
- feat(server-tools): add provider-native search capabilities by @DeJeune in #17322
- fix(mcp-browser): dispose nativeTheme listener when server connection closes by @kovsu in #17792
- fix(chat-scroll): unify streaming follow state by @zhangjiadi225 in #17783
- fix(skill-import): improve local import error feedback by @AtomsH4 in #17797
- perf(message-anchor): keep the rail out of the streaming render path by @kovsu in #17601
- feat(ai-params): context-build — truncate tool results + history compression via context-chef by @MyPrototypeWhat in #15988
- fix: revalidate all loaded pages on loadAll topic and agent-session sources by @tommyzhang100504 in #17704
- feat(web-search): add automatic web fetch fallback by @vaayne in #17806
- fix(agent-runtime): defer permission mode changes until next turn by @DeJeune in #17809
- fix(mcp): persist cleared marketplace token by @ousugo in #17472
- refactor(mcp-browser): create browser windows via WindowManager by @kovsu in #17794
- fix(ai-reasoning): select reasoning wire dialect from model generation by @DeJeune in #17422
- feat(cherry-assistant): add built-in assistant and feedback flow by @SiinXu in #17398
- feat(ui-contract): add stable page and region selectors by @zhangjiadi225 in #17810
- fix(claude-code): enable session state events for background work release by @kovsu in #17815
- fix(ai-sdk): parse Responses reasoning text deltas by @404-Page-Found in #17789
- feat(attachment-routing): fall back to native image when OCR finds no text by @zhangjiadi225 in #17637
- perf(agent-session): publish background flow parts per message by @kovsu in #17814
- fix(image-preview): prevent scrolling during wheel zoom by @AtomsH4 in #17816
- chore: release v2.0.0-rc.5 by @kangfenmao in #17826
Full Changelog: v2.0.0-rc.4...v2.0.0-rc.5
v1.9.13
What's Changed
- chore(gitignore): ignore local agents override file by @ousugo in #16787
- feat(models): support LongCat 2.0 thinking by @ousugo in #16789
- hotfix(ai-diagnosis): correct misclassifications and surface provider error JSON by @SiinXu in #15241
- fix: prevent renderer OOM during long streaming responses by @Raymond8196 in #15832
- fix(provider): use v1beta for NewAPI Gemini endpoints by @zhibisora in #17005
- fix: update CherryIN website and OAuth domains by @zhibisora in #17174
- refactor(updater): use managed release service by @kangfenmao in #17229
- fix(search): send rewritten search prompt as user content by @zhibisora in #17270
- fix(chat): load history when message lists are underfilled by @zhibisora in #17167
- fix(agents): wire Ctrl+F in-chat search in AgentChat by @Raymond8196 in #17223
- feat(models): add support for doubao-seed-2-1 and doubao-seed-evolving models by @GeorgeDong32 in #16458
- fix(copilot): preserve authorization headers by @404-Page-Found in #17713
- feat(agents): support PowerShell fallback on Windows by @zhibisora in #17754
Full Changelog: v1.9.12...v1.9.13
v2.0.0-rc.3
What's Changed
- fix(appearance-settings): add aria-labels and tooltips to page-zoom buttons by @kennyzheng-builds in #17606
- feat(resource-groups): add shared group creation dialog by @zhangjiadi225 in #17611
- fix(composer): hide injected knowledge prompts by @eeee0717 in #17613
- fix(knowledge): use readable names for saved messages by @eeee0717 in #17630
- fix(obsidian-export): keep dialog open and report failure on empty title by @kennyzheng-builds in #17625
- fix(api-gateway): render absolute OpenAPI server URL for curl examples by @kennyzheng-builds in #17608
- fix(knowledge): view a note's original content on primary click by @kennyzheng-builds in #17624
- fix(builtin-tools): drop the uri format that strict providers reject by @eeee0717 in #17633
- perf(agent-runtime): reduce Agent session startup latency by @DeJeune in #17615
- fix(notes): sync character count after undo and redo by @ousugo in #17638
- fix(selection-assistant): correct opacity slider drag direction by @kennyzheng-builds in #17623
- fix(paintings): prevent image drag artifacts by @zhangjiadi225 in #17641
- fix(knowledge): use regional Jina reader for URL imports by @eeee0717 in #17653
- fix(system-ocr): prevent macOS image OCR crashes by @kangfenmao in #17657
- docs(testing): establish frontend testing guidelines by @zhangjiadi225 in #17577
- fix(ai-usage): show modality for unattributed entries by @Pleasurecruise in #17592
- fix(agents-migration): prevent OOM on large session histories by @kangfenmao in #17579
- fix(dialog): avoid selecting first input on open by @Pleasurecruise in #17631
- feat(html-artifact): restore isolated inline HTML previews by @zhangjiadi225 in #17323
- feat(agent-reasoning): persist reasoning effort by @zhangjiadi225 in #17586
- feat(data-migration): improve migration failure recovery by @eeee0717 in #17593
- feat(composer): add provider-aware speed controls by @Pleasurecruise in #17530
- feat(composer): add interactive link tokens by @zhangjiadi225 in #17616
- fix(mini-apps): add show and hide translations by @kennyzheng-builds in #17663
- fix(agent-artifacts): stabilize delivery cards and previews by @kennyzheng-builds in #17291
- feat(api-gateway): localize the OpenAPI docs and add a language switcher by @kennyzheng-builds in #17399
- fix(system-settings): show direction-aware hardware acceleration restart prompt by @kennyzheng-builds in #17621
- fix(mcp-settings): i18n registry option names by @kennyzheng-builds in #17619
- feat(image-preview): improve full-screen viewing interactions by @zhangjiadi225 in #17643
- fix(channels): add accessible labels to row actions by @kennyzheng-builds in #17664
- fix(about-settings): add accessible labels to icon buttons by @kennyzheng-builds in #17662
- fix(assistant-settings): clarify tool call round limit by @kangfenmao in #17596
- 🤖 Daily Auto I18N Sync: Jul 30, 2026 by @github-actions[bot] in #17666
- fix(openclaw): stop the gateway from updating itself, fix detached dashboard by @vaayne in #17634
- fix(preboot): prevent silent Windows startup failures by @kangfenmao in #17665
- fix(channel-settings): restore QR registration flows by @Pleasurecruise in #17635
- feat(agent-permission-mode): support the SDK auto mode and collapse the enum copies by @vaayne in #17584
- feat(agent-session): surface workflow and background task progress by @DeJeune in #17440
- perf(agent-migration): speed up legacy Agent data migration by @kangfenmao in #17652
- chore: release v2.0.0-rc.3 by @kangfenmao in #17674
Full Changelog: v2.0.0-rc.2...v2.0.0-rc.3
v2.0.0-rc.2
What's Changed
- fix(data-migration): preserve model endpoint routing by @kangfenmao in #17564
- fix(agent-migration): preserve workspace and Claude session continuity by @DeJeune in #17566
- feat(chat-context): restore clear-context boundaries by @kangfenmao in #17524
- fix(translate): name per-item history star buttons after the favourite action by @kennyzheng-builds in #17503
- fix(notes): only autofocus the editor for empty notes by @kovsu in #17537
- fix(settings): clear empty MCP environment fields by @ousugo in #17477
- fix(db-migrations): stop table-recreate migrations from silently deleting child rows by @EurFelux in #17569
- fix(resource-list): explain orphan assistant and agent groups by @zhangjiadi225 in #17531
- fix(agent-runtime): route mixed-provider models by endpoint by @Pleasurecruise in #17573
- fix(chat): update drag selection when selection box shrinks by @ousugo in #17444
- feat(provider-registry): serve Claude Opus 5, Sonnet 5, and 1M-context variants on Claude Code by @vaayne in #17580
- fix(agent-runtime): rebuild sessions after language changes by @Pleasurecruise in #17581
- 🤖 Daily Auto I18N Sync: Jul 29, 2026 by @github-actions[bot] in #17570
- fix(mcp-settings): support multi-server JSON imports by @kangfenmao in #17583
- fix(message-list): prevent ghosting when reversing scrollbar drag by @zhangjiadi225 in #17578
- fix(resource-catalog): keep edit dialogs open after auto-save by @zhangjiadi225 in #17595
- feat(knowledge): add select all to note import by @Pleasurecruise in #17597
- fix(model-list): group flat model IDs by family by @kangfenmao in #17603
- fix(message-menu-bar): add aria-labels to default toolbar icon buttons by @kennyzheng-builds in #17607
- chore: release v2.0.0-rc.2 by @kangfenmao in #17614
Full Changelog: v2.0.0-rc.1...v2.0.0-rc.2
v2.0.0-rc.1
What's Changed
- fix(notes): allow selecting Markdown files from import hint by @kangfenmao in #17527
- fix(onboarding): filter non-chat model choices by @kangfenmao in #17526
- fix(windows-packaging): include sqlite-vec in portable builds by @eeee0717 in #17521
- fix(message-capture): stabilize topic and session image export by @zhangjiadi225 in #17523
- fix(build): install both cpu arches so x64 macOS builds ship sharp by @DeJeune in #17419
- fix(mini-app): preserve migrated custom apps and icon sizing by @kangfenmao in #17522
- fix(provider-models): preserve provider display names by @DeJeune in #17462
- fix(window-registry): skip macOS process transform for workspace-visible windows by @beyondkmp in #17528
- fix(knowledge-search): improve trigram BM25 queries by @kovsu in #17511
- fix(provider-settings): keep Bedrock auth modes switchable by @DeJeune in #17534
- fix(message-rendering): show interrupted empty replies by @kangfenmao in #17533
- fix(ai-transport): preserve streams across tab switches by @zhangjiadi225 in #17514
- refactor(path-registry): remove media directory keys by @kangfenmao in #17541
- fix(paintings): deduplicate custom size option by @ousugo in #17540
- fix(quick-assistant): correct user message presentation by @kangfenmao in #17532
- fix(paintings): keep prompt fixed during image transforms by @Pleasurecruise in #17518
- feat(agent-composer): select knowledge bases from the input by @eeee0717 in #17493
- fix(message-list): stabilize regeneration and image export by @zhangjiadi225 in #17544
- feat(agent-skills): sync skill catalog from disk so authored skills appear by @DeJeune in #17134
- feat(agent-chat): warn before contextual model switches by @zhangjiadi225 in #17529
- fix(file-preview): avoid false binary detection for Unicode text by @kangfenmao in #17551
- fix(new-conversation-icon): use thinner scalable strokes by @zhangjiadi225 in #17552
- fix(agent-migration): handle Windows workspace links by @DeJeune in #17542
- feat(ai-usage): add cost analytics and durable usage records by @DeJeune in #15992
- fix(composer): preserve follow-up queue pause across conversations by @ousugo in #17487
- fix(global-search): keep input focused after clearing by @ousugo in #17468
- fix(agent-seeding): leave default agent model unconfigured by @zhangjiadi225 in #17554
- refactor(data-migration): consolidate v2 storage layout by @kangfenmao in #17553
- feat(paintings): reveal generated images through sampled grid by @SiinXu in #17548
- fix(data-migration): skip existing Claude config directory by @kangfenmao in #17556
- feat(ai): add backup-restore write quiesce to AI stream/agent/channel writers by @DeJeune in #17014
- feat(paintings): add localized prompt template gallery by @SiinXu in #17547
- fix(backup-restore): restore complete v7 backups by @kangfenmao in #17555
- chore: release v2.0.0-rc.1 by @kangfenmao in #17561
Full Changelog: v2.0.0-beta.3...v2.0.0-rc.1
v1.9.12
What's Changed
- fix: forward DeepSeek V4+ reasoning_effort for openai-compatible providers by @EurFelux in #15834
- fix(model): support Claude Fable series and Opus 5 in capability detection by @EurFelux in #15872
- fix(models): add Anthropic native /v1/models fetcher(target V1 branch) by @Raymond8196 in #15779
- fix(tools): prevent AccordionTrigger toggle when clicking approval buttons in collapsed group header by @LWWZH in #15839
- fix: use anthropicApiHost for NewAPI provider's anthropic endpoint by @Raymond8196 in #15934
- fix(agents): inject Cherry Studio identity headers into agent mode requests by @Raymond8196 in #15978
- fix: support downloading SVG data URL images blocked by CSP by @Raymond8196 in #15301
- fix(file): restore leading dot in ext for saveBase64Image and savePastedImage by @Raymond8196 in #14668
- fix(reasoning): correct MiniMax-M3 thinking control by @kangfenmao in #15991
- feat(models): add Kimi K2.7 Code support by @ousugo in #16017
- fix(ai-core): surface abnormal stream finish reasons as error chunks by @EurFelux in #16079
- fix(websearch): preserve full URLs and parse Highlights in ExaMCP results by @Raymond8196 in #15329
- fix: recover claude-code install when native binary is missing by @kovsu in #15369
- fix(aihubmix): derive Gemini baseURL from configured baseURL by @DDU1222 in #16371
- fix: use first configured key for claude code agents by @zhibisora in #16437
- fix: use fs.statfs for disk info to stop powershell process leak by @Raymond8196 in #16556
- feat(aihubmix): redirect provider links to inferera and follow configured base URL by @DDU1222 in #16606
- fix: hide CherryIN manual model add button by @zhibisora in #16703
Full Changelog: v1.9.11...v1.9.12