v2.0.8
Added 9
- 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
Fixed 23
- 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
Security 1
- close four bypass gaps in existing guards including scheme checks, staging residue, and trace perms
From cherry-studio
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