What's Changed
- docs(memory): add separate bilingual blogs for multimodal memory and Memory Tags by @wang-qisen in #8506
- fix(channels): resolve desktop plugin installation and repair failures by @Luohh5 in #8509
- fix(agents): drop empty media blocks before formatting requests by @BeiMu-new in #8066
- fix(creator): release 2.0.4 with media and probe hardening by @xuanrui-L in #8529
- chore: bump the version to 2.3.0b3 by @cuiyuebing in #8546
- fix(console): persist market install provenance so 'Update All' covers third-party plugins (#8176) by @RerankerGuo in #8231
- feat(tools): use AnySearch as the default web search provider by @rayrayraykk in #8536
- fix(sqlite): skip completed startup migrations and snapshot live backups by @rayrayraykk in #8541
- fix(console): repair settings search navigation and indexing by @zhaozhuang521 in #8545
- fix(skill): avoid scanner false positive in make-skill validator by @LingHu01 in #8400
- fix(tests): isolate host dependency observation inputs on Windows by @Luohh5 in #8548
- fix(console): resolve markdown preview relative links and images by @zhaozhuang521 in #8551
- fix(tests): reopen backup archive before Windows restore verification by @rayrayraykk in #8552
- fix(context): support slow summary models and consistent token limits by @jinliyl in #8496
- feat(models): run local Piccolo with bidirectional candidate scoring by @Xinji-Mai in #8463
- fix(console): select decision-model approval directly by @jinglinpeng in #8556
- fix(desktop): bundle visual_compression glyph atlas assets by @Frank-zhu2000 in #8514
- fix(e2e): mock decision model configuration for approval toggle by @jinglinpeng in #8566
- ci(release): resolve desktop artifacts by id so duplicate names cannot break publish by @yutai78786 in #8543
- feat(loop): add optional Jev completion decisions by @jinglinpeng in #8544
- fix(tools): preserve CRLF line endings in edit_file by @Li-john1021 in #8235
- fix(plugins): report an unusable dependency state root at startup by @passionworkeer in #8527
- feat(memory): add OpenViking memory plugin by @xypang33-sketch in #7613
- fix(memory): stop leaking auto-memory-recall payload to channels by @TerebiSAMA in #7835
- feat(desktop): add approval notifications (#8460) by @zhaozhuang521 in #8504
- fix(scroll): improve token estimates and recover from context overflow by @niceIrene in #8571
- fix(dingtalk): split long replies into markdown chunks by @Li-john1021 in #8341
- feat(matrix): install E2EE dependencies by default by @hongxicheng in #8559
- feat(console): add plugin-facing theme token overrides by @BeiMu-new in #8422
- fix(desktop): restrict auto-update manifest to stable releases by @jinglinpeng in #8575
- feat(local-models): install Piccolo runtimes and select model source by @Xinji-Mai in #8573
- fix(shell): add opt-in memory protection with live Console settings by @rayrayraykk in #8574
- fix(console): align settings visibility with runtime capabilities by @zhijianma in #8572
- fix(code-mode): allow tools with a name parameter by @rayrayraykk in #8583
- fix(matrix): use scoped crypto store filenames on Windows by @wangfei010313 in #8584
- fix(console): preserve new task project directories (#8555) by @zhaozhuang521 in #8582
- fix(matrix): simplify legacy state migration and device locking by @hongxicheng in #8558
- fix(console): add view_audio to the tool catalog translations by @manjieqi in #8597
- fix(console): preserve settings navigation for plugin pages by @zhaozhuang521 in #8593
- fix(console): disable nginx buffering on /console/chat SSE by @pcbeingused333 in #8522
- fix(channels): repair CJK emphasis boundaries in rendered Markdown by @BeiMu-new in #8067
- test: stabilize browser timeout and plugin cleanup checks by @zhijianma in #8589
- fix(providers): bound inline media per request, not just per file by @RerankerGuo in #8034
- fix(memory): require non-empty api_key for ReMe reranker enablement (#8276) by @twotnguyen in #8291
- fix(channels): ignore serialized response policy cache entries by @lanjinzhoucode in #8564
- fix(cli): discover Ollama models before activation by @hehuang139 in #8309
- fix(matrix): preserve Windows ADS data during legacy migration by @wangfei010313 in #8599
- fix(sandbox): preserve cmd.exe quoting in NoneSandbox by @lalaliat in #8602
- fix(console): keep reset chats empty after reopening by @yang0228 in #8600
- fix(workspace): 修复第三方智能体定时任务的请求格式 by @liuxuyang1236 in #8535
- fix(tests): prevent Windows shell cancellation tests from hanging by @lalaliat in #8604
- fix(plugins): refactor dependency check by @Luohh5 in #8598
- fix(matrix): recover cached sessions and missing device keys by @hehuang139 in #8411
- fix(providers): reject out-of-range model config values on the write path by @xiong-wei1 in #8550
- fix(plugins): stabilize Windows dependency upgrades and worker lifecycle tests by @Luohh5 in #8633
- fix(plugins): add OpenViking frontend lockfile by @jinliyl in #8635
- fix(scroll): accept Windows extended-length paths in history SQLite URIs by @BeiMu-new in #8587
- fix(docs): document built-in web_search providers and AnySearch default by @cuiyuebing in #8637
- feat(community): integrate QwenPaw community and inbox by @Osier-Yi in #7903
- fix(desktop): open workspace HTML via the decoded local path by @wxhking in #8524
- fix(ci): extend macOS desktop build timeout to 90 minutes by @lalaliat in #8641
- test: fix Windows permission and UTF-8 BOM assertions by @Osier-Yi in #8640
New Contributors
- @wang-qisen made their first contribution in #8506
- @LingHu01 made their first contribution in #8400
- @passionworkeer made their first contribution in #8527
- @xypang33-sketch made their first contribution in #7613
- @pcbeingused333 made their first contribution in #8522
- @twotnguyen made their first contribution in #8291
- @lanjinzhoucode made their first contribution in #8564
- @liuxuyang1236 made their first contribution in #8535
- @xiong-wei1 made their first contribution in #8550
- @wxhking made their first contribution in #8524
Full Changelog: v2.3.0-beta.2...v2.3.0-beta.3