github CherryHQ/cherry-studio v2.0.10

4 hours ago

What's Changed

  • fix(chat-markdown): repair literal autolinks that swallow emphasis markers by @tommyzhang100504 in #19136
  • fix: resolve spell check real-time highlighting and multi-language issues by @LWWZH in #14634
  • fix(agent): polish subagent flow and running status by @ousugo in #19309
  • perf(cli): parallelize independent config pipelines by @userInner in #19284
  • fix(app): register the portable Windows launcher at login by @userInner in #19285
  • fix(skills): refine skill icon styling by @SiinXu in #18421
  • docs(cherry-electron-dev): expand performance diagnostics by @DeJeune in #18458
  • fix(web-search): anchor relative dates to runtime by @userInner in #19304
  • docs(cherry-electron-dev): fix broken diagnostics link by @DeJeune in #19354
  • fix(sortable): prevent nested inputs from starting keyboard drag by @AtomsH4 in #19344
  • fix(chat): preserve rapid message navigation targets by @ousugo in #19189
  • perf(backup): parallelize device metadata reads by @userInner in #19282
  • perf(agent): stabilize system prompt prefix by @userInner in #19297
  • feat(scheduled-tasks): show run status on task cards by @AtomsH4 in #18522
  • fix(mini-app): clean up orphaned tab pool state by @kovsu in #16788
  • fix(api): expose cached tokens in chat completions by @userInner in #19353
  • fix(analytics): track app launch once per startup by @kovsu in #16670
  • perf(translate,shiki): pace markdown renders and move one-shot highlights to the worker by @GeorgeDong32 in #18926
  • fix(provider-registry): route MiniMax M3 agents through Anthropic Messages by @AtomsH4 in #19361
  • fix(claude-code): block image reads for text-only models by @iris-Neko in #19366
  • fix(ai-provider): tolerate missing annotations in OpenAI Responses replies by @DeJeune in #19365
  • fix(artifact-pane): pad composer inset inside code surfaces by @kovsu in #19372
  • fix(selection-assistant): keep custom action footer visible by @userInner in #19373
  • fix(composer): decouple link chip color from user theme by @tommyzhang100504 in #19378
  • fix(analytics): update SDK and filter token usage reports by @kangfenmao in #19352
  • fix(mini-app): realign tab pool current state from consistent snapshots by @kovsu in #19375
  • fix(google-provider): send includeServerSideToolInvocations conditionally for Gemini 3 tool combination by @tommyzhang100504 in #19364
  • feat(model-drawer): add token limit presets by @ousugo in #19384
  • fix(binary-manager): repair incomplete DSH installs by @Totoro-qaq in #19374
  • fix(assistant-settings): name custom parameter value inputs by @userInner in #19168
  • fix(quick-panel): filter submenu panels from the composer input by @DeJeune in #18065
  • docs(gh-pr-review): architecture-first review with size-adaptive no-prompt flow by @DeJeune in #17348
  • fix: keep dragged tabs within safe bounds by @kovsu in #15529
  • perf(chat): lazy-load agent tool renderer (#19331) by @yunyv in #19342
  • fix(chat-messages): always show token usage in the message footer by @DeJeune in #19416
  • fix(moonshot): omit fixed top_p for Kimi models by @userInner in #19431
  • feat(code-mate): add Hermes dashboard by @vaayne in #19049
  • fix(nutstore): clean up abandoned SSO listeners by @userInner in #19433
  • fix(binary-manager): support npm lifecycle allowlists by @MyPrototypeWhat in #19462
  • fix(code-mate): normalize sidebar icon sizing by @kangfenmao in #19458
  • perf(data-settings): lazy-load inactive panels (#19333) by @yunyv in #19343
  • fix(error-classifier): narrow bare proxy keyword by @SiinXu in #18922
  • fix: map system prompt to instructions field for OpenAI Responses API by @Raymond8196 in #16056
  • fix(copilot): preserve required request headers by @kennyzheng-builds in #19473
  • build(release): standardize platform asset filenames by @userInner in #19429
  • fix(pi-runtime): upgrade pi-ai to 0.80.6 for compaction output budget by @userInner in #19457
  • fix(tab-router): cover outgoing page during external retargets by @kovsu in #19470
  • fix(pi-runtime): route provider requests through Cherry fetch by @userInner in #18781
  • fix(chat): stabilize keyboard scrolling in message list by @ousugo in #19417
  • fix(chat): keep token details closed after locating message by @ousugo in #19483
  • feat(export): carry multimodal images in markdown export by @GeorgeDong32 in #18632
  • fix(chat): stabilize streaming UI and message interactions by @kangfenmao in #19443
  • fix(artifact-pane): wrap long lines in preview edit mode by @SiinXu in #19542
  • fix(web-search): accept SearXNG engines tagged general only by @SiinXu in #19497
  • fix(notes): preserve math formulas in plain-text copy by @kennyzheng-builds in #19468
  • fix(native-rebuild): invalidate stale Electron metadata by @zhibisora in #19482
  • perf(composer-tools): preserve dependency-scoped registrations by @DeJeune in #19413
  • feat(ui): render ECharts diagrams in markdown code blocks by @kkjzio in #18881
  • fix(appearance): name the list position controls for assistive technology by @kennyzheng-builds in #19540
  • fix(chat): localize meta-tool card section titles and empty states by @SiinXu in #19524
  • fix(app-updater): hide raw 503 bodies in check-for-update errors by @SiinXu in #19545
  • feat(artifact-pane): add context menu to opened file header by @LWWZH in #19151
  • fix(model-selector): handle structured queries and missing limits by @eeee0717 in #19553
  • fix(messages): restore legacy tool step ordering by @userInner in #19523
  • feat(chat): improve token usage visibility by @kangfenmao in #19543
  • perf(files): hydrate only the visible view by @userInner in #19528
  • fix(aicore): forward proxy fetch for azure-anthropic variant by @404-Page-Found in #19538
  • fix(usage-settings): cap dashboard content width on ultrawide windows by @SiinXu in #19558
  • fix(agent): expose managed toolchain to Pi Bash by @userInner in #19428
  • fix(model-selector): show provider names consistently by @ousugo in #19522
  • fix(chat): honor current model on regenerate by @userInner in #19532
  • fix(agent): deliver DSH tool rejection feedback by @userInner in #19505
  • refactor(http): merge request headers case-insensitively by @DeJeune in #19480
  • fix(pi): surface max-token length truncation as error instead of success by @404-Page-Found in #19571
  • fix(about-settings): name GitHub and logo controls for assistive tech by @SiinXu in #19466
  • fix(claude-code): handle HuggingFace models and sanitize tool descriptions by @404-Page-Found in #19539
  • fix(provider-registry): support GLM-5.3-Flash reasoning by @DeJeune in #19554
  • feat(web-search): add Parallel search provider by @ousugo in #19469
  • fix(moonshot): omit fixed temperature and top_p for all Kimi models by @kovsu in #19563
  • fix(provider-registry): publish complete remote catalogs by @DeJeune in #19586
  • fix(agent-notify): scope delivery to trusted targets by @vaayne in #19289
  • feat(code-mate): sync CLI skills with installed tools by @eeee0717 in #19587
  • fix(renderer): refresh time bucket reference for session/topic lists by @404-Page-Found in #19565
  • fix(logger): keep source metadata on file log lines with data arguments by @eeee0717 in #19367
  • feat(diagnostics): add mechanical error scanning over error logs by @eeee0717 in #19368
  • ci(release): build releases from release branches with hotfix backport by @DeJeune in #18903
  • fix(portable): preserve provider resources across relaunches by @DeJeune in #19562
  • fix(ai-sdk): handle Gemini MCP array tool schemas by @ActiveSky in #18902
  • fix(composer): show the active permission mode by @userInner in #19529
  • fix(agent-runtime): coerce provider extra headers for pi and dsh by @DeJeune in #19592
  • fix(agent): show provider name in model label by @ousugo in #19595
  • perf(notes): lazy-load optional menu workflows by @userInner in #19517
  • feat(files): support shift-click range selection by @ousugo in #19599
  • fix(ai-diagnosis): use selected language for diagnosis output by @SiinXu in #19590
  • fix(security): consent-gate HTML preview iframes, fail closed sandbox defaults by @GeorgeDong32 in #18764
  • feat(sidebar): default Agent first for new users by @SiinXu in #19388
  • fix(release-workflow): simplify release validation by @DeJeune in #19594
  • fix(composer): show skill suffix only in root search by @ousugo in #19615
  • fix(custom-fetch): preserve auth on safe redirects by @Protocol-zero-0 in #19614
  • feat(notes): add create action to empty notes page by @SiinXu in #19467
  • fix(tokens): count literal special-token text safely by @userInner in #19520
  • fix(channels-settings): localize log and edit dialog close labels by @SiinXu in #19519
  • perf(home,agents): isolate tab-state side effects from page roots by @404-Page-Found in #19161
  • fix(command-resolver): accept existing absolute MCP stdio commands by @SiinXu in #19559
  • fix(knowledge): reject empty document extraction by @userInner in #19177
  • feat(diagnostics): submit signed diagnostic reports to Cherry by @AtomsH4 in #19513
  • fix(lmstudio): preserve multi-image inputs by @ActiveSky in #19600
  • fix(code-cli): write Hermes config to the home Hermes actually reads by @kovsu in #19585
  • feat(app): fixed launch on boot functionality and add tests by @xianhongtao in #19311
  • fix(agent-tasks): deliver scheduled channel results once by @SiinXu in #19567
  • docs(contributing): fix recommended label links by @lihuiyang1024 in #19648
  • feat(diagnostics): export chat records in diagnostic bundles by @AtomsH4 in #19371
  • fix(release-workflow): simplify release validation by @DeJeune in #19620
  • perf(files): filter types before cursor pagination by @lihuiyang1024 in #19647
  • feat(knowledge): support dropped file uploads by @SiinXu in #19653
  • feat(provider-settings): guide initial API setup by @kangfenmao in #19082
  • fix(agent): inherit macOS login shell PATH by @userInner in #19259
  • fix(model-parameters): omit fixed Kimi sampling settings by @ump45nose in #19603
  • fix(agent): honor DSH developer role capability by @userInner in #19446
  • fix(dsh-runtime): allow models without text modality by @kangfenmao in #19662
  • perf(files): stabilize virtualized view callbacks by @userInner in #19159
  • refactor(chat-translate): remove orphaned translation overlay path by @404-Page-Found in #19575
  • feat(code-mate): add Antigravity CLI and retire Gemini CLI by @eeee0717 in #19474
  • feat(diagnostics): add report entry points for Support and chat errors by @AtomsH4 in #19514
  • feat(tool-approval): add rejection reasons by @userInner in #19023
  • fix(provider-registry): correct DeepSeek V4 metadata by @userInner in #19296
  • feat(mini-app): add real local mini apps in a sandbox by @0xfullex in #19475
  • fix(mini-app): let the activity log wrap, and end where the dialog does by @0xfullex in #19668

New Contributors

Full Changelog: v2.0.9...v2.0.10

Don't miss a new cherry-studio release

NewReleases is sending notifications on new releases.