What's Changedfix(dsh-runtime): bind send_message anchors by their target subagent id by @kovsu in #18716fix(pi-runtime): honor Cherry proxy environment by @userInner in #18778feat(skills): add skill global enablement controls by @ousugo in #18185feat(agents): add floating task progress capsule by @ousugo in #18469fix(xlsx-preview): terminate parse worker on terminal states by @kovsu in #18773fix(file-preview): add horizontal padding and enable wrapping for text previews by @tommyzhang100504 in #18752fix(sub-window): keep macOS title-bar left inset when detached window is fullscreen by @tommyzhang100504 in #18398fix(api-gateway): skip think:true for Ollama when SDK default triggers auto reasoning by @404-Page-Found in #18744feat(screenshot): add interactive screen capture with annotation and OCR by @0xfullex in #18725fix(ai-provider): dispatch image + DashScope routing by preset, not raw provider id by @DeJeune in #18735fix(shiki): parallelize and deduplicate asset loading by @DeJeune in #18627ci(i18n): require complete translations in pull requests by @kangfenmao in #18750fix(data-migration): skip irrecoverable Dexie records by @kangfenmao in #18783fix(agent-migration): skip unavailable virtual drive workspaces by @kangfenmao in #18727fix(migration): clear stale Agent attachment refs on retry by @kangfenmao in #18757fix(local-inference): upgrade ONNX Runtime worker lifecycle by @eeee0717 in #18785fix(main-window): quit when closing without tray by @ousugo in #18448fix(ui-markdown): keep the styles entry in the bundle so formula copy works by @he-yufeng in #18711fix(code-mate): filter DSH-incompatible providers from Code Mate UI by @404-Page-Found in #18771fix(attachment-routing): block unreadable images for non-vision models by @zhangjiadi225 in #18797fix(ollama): preserve default thinking mode by @eeee0717 in #18784fix(claude-review): rerun reviews after PR updates by @kangfenmao in #18805feat(pi-runtime): add TypeScript-guided code mode tools by @vaayne in #18708refactor(settings): reorganize general preferences by @kangfenmao in #18794fix(i18n): add Code Mode tool translations by @DeJeune in #18812docs(claude-md): scope pre-commit checks to the change at hand by @DeJeune in #18808fix(chat-message): restore editing for provider-annotated assistant replies by @DeJeune in #18635fix(image-generation): retry image requests without response_format on 400 by @DeJeune in #18702fix(code-mate): default unconfigured launches to unified gateway by @eeee0717 in #18811feat(pdf-translation): layout-preserving PDF translation via BabelDOC by @eeee0717 in #17007feat(pdf-translation): record translations in history and file manager by @eeee0717 in #17980feat(mcp): surface MCP prompts and resources in the composer and to the model by @DeJeune in #18075fix(ai-service): use lightweight probe for Ollama health check (#18705) by @404-Page-Found in #18789fix(web-search): inherit Zhipu model provider keys by @AtomsH4 in #18810fix(obsidian-export): prevent duplicate export on double click by @kovsu in #18777perf(resource-list): reduce scroll timer churn by @zhangjiadi225 in #18825fix(web-search): use current Zhipu provider key by @kangfenmao in #18822fix(resource-list): unify drag overlay styling by @zhangjiadi225 in #18837fix(gemini-image): restore Nano Banana 2 parameters by @AtomsH4 in #18817fix(mcp-runtime): tombstone removed servers to stop ghost stdio clients by @kovsu in #18692feat(agent-session): add durable cross-session delivery by @vaayne in #18180feat(remote-fetch): allow private-network fetch targets behind a preference by @DeJeune in #18791fix(security): close four bypass gaps in existing guards (scheme checks, staging residue, trace perms) by @GeorgeDong32 in #18852fix(security): gate legacy IPC senders, unsafe-extension open guard, zip-slip containment by @GeorgeDong32 in #18751fix(wechat): send ciphertext size as image upload filesize by @XuanFENNN in #18849refactor(shortcut-settings): simplify shortcut controls by @kangfenmao in #18834fix(markdown-parser): skip hidden directories in skill directory scanner by @404-Page-Found in #18827fix(ai-params): serialize disabled reasoning for Responses models by @AtomsH4 in #18840fix(cherryin): refresh balance when returning from top-up by @NatsUIJM in #18841fix(dsh-runtime): surface web search citations and result cards by @userInner in #18762fix(agent): preselect compatible default model for every runtime by @ousugo in #18813feat(resource-list): show empty groups and paginate expansion by @zhangjiadi225 in #18821fix(skills): discover nested system skills by @AsahinaYui in #18867fix(knowledge-base): steer attached bases through search by @eeee0717 in #18875fix(feishu-channel): adopt official LarkChannel by @vaayne in #18544feat(model-check): unify provider model checks by @AtomsH4 in #18581fix(provider-settings): use granular api-key mutations in key list drawer by @kovsu in #18868fix(ipc-security): trust renderer path aliases by @leoking670 in #18851fix(openai-image): support URL image responses by @ActiveSky in #18798fix(image-export): unclip tables and wait for webfonts before capture by @NatsUIJM in #18779fix(topic-naming): restore first-message fallback when disabled by @zhangjiadi225 in #18877fix(topic-list): allow spaces in conversation names by @zhangjiadi225 in #18887chore(deps): declare @babel/runtime for vite dep optimizer by @vaayne in #18893test(cherryin): consolidate top-up refresh coverage by @zhangjiadi225 in #18895feat(task-completion): notify assistant and agent completions by @kangfenmao in #17651fix(mcp-settings): defer capability fetches until tab activation by @tzlwn1 in #18550fix(agents): disable ToolSearch for models that reject dynamically-loaded tools by @NatsUIJM in #18853fix(api-gateway): disable Responses storage for Claude Code by @kangfenmao in #18891fix(cherry-autonomy-tools): drop root anyOf from notify input schema by @DeJeune in #18888fix(model-check): probe image-only models via the image endpoint by @DeJeune in #18886fix(provider-error): extract nested detail.error.message and wrap long tokens by @tommyzhang100504 in #18833fix(message-service): preserve turnOptions on parts-only data patches by @kovsu in #18876fix(dsh-runtime): ship a loadable node-pty on Linux via the dsh rc.7 upgrade by @DeJeune in #18831perf: eliminate main-process sync IO stalls in file reads and save dialogs by @GeorgeDong32 in #18861fix(agent-runtime): surface ExitPlanMode plans by @userInner in #18830fix(pi-runtime): allow trusted reads from enabled skills by @zhangjiadi225 in #18906fix(net-fetch): sanitize invalid response headers by @kangfenmao in #18882fix(ollama): extract inline reasoning from streamed text by @userInner in #18897docs(agent-notes): propose docs governance and spec-driven workflow by @DeJeune in #18843docs(references): drop dead docs and fold messaging into chat by @DeJeune in #18844docs(references): close the references root into domain directories by @DeJeune in #18848docs(contrib): dissolve guides/ into contrib and reference domains by @DeJeune in #18856feat(doc-gates): enforce docs structure, frontmatter, and generated index by @DeJeune in #18858docs(references): audit documentation against current code by @DeJeune in #18860fix(provider-registry): refresh upstream catalog without batch twins by @DeJeune in #18910fix(agent-migration): fall back when hard links are unavailable by @kangfenmao in #18836fix(quick-assistant): finalize streaming text parts by @kennyzheng-builds in #18223fix(paintings): keep model selector provider order stable by @lianshuang-photo in #18313fix(sortable): cancel drag when the window loses focus by @kennyzheng-builds in #18604fix(markdown): stop rewriting unlinkable links and images into [blocked] by @kennyzheng-builds in #18629fix(dsh-runtime): preserve tool approval cards during event races by @DeJeune in #18908fix(pyodide): inject context variables into python execution scope by @kovsu in #18901test(permission-composer): stabilize ExitPlanMode preview assertion by @kangfenmao in #18913chore: release v2.0.8 by @kangfenmao in #18915refactor(observability): fold packages/mcp-trace into src by @EurFelux in #18839New Contributors@XuanFENNN made their first contribution in #18849@AsahinaYui made their first contribution in #18867@leoking670 made their first contribution in #18851@ActiveSky made their first contribution in #18798@tzlwn1 made their first contribution in #18550Full Changelog: v2.0.7...v2.0.8