AstrBotDevs/AstrBot
AI Agent Assistant & development framework that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. ✨
📋 What's Changed
- <!-- Review, group, and polish these entries before publishing. -->
- fix: respect existing provider source IDs in config so that manually edited IDs are preserved on save instead of being silently reset. (#8915) (42ca89d6c)
- fix: created unnecessary data dir when executing astrbot command (#8932) (39d425316)
- fix: add sdist build artifact path to allow dashboard artifact to be included (#8933) (05148dfdd)
Release v4.25.6-rc.3
📋 Changes
- [fix: improve WebUI update stability](https://github.com/AstrBotDevs/AstrBot/commit/598a739bab8975c2b9fd766da99a73d0ff52ca0a)
📋 Changes
- [fix: improve WebUI update stability](https://github.com/AstrBotDevs/AstrBot/commit/598a739bab8975c2b9fd766da99a73d0ff52ca0a)
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📋 What's Changed
- 优化更新过程的稳定性,减少更新出错的概率。
- AstrBot Core 更新包优先从 AstrBot Registry 下载,失败时回退到 GitHub zipball。
- 修复 pip 包体未正确包含 Dashboard 构建资源的问题。
- <a id="english"></a>
🐛 Bug Fixes
- Changed WebUI project updates to run as backend tasks, preventing updates from being cancelled when the frontend is closed or refreshed.
- Made the update flow download and verify both WebUI and Core packages before applying files, reducing partial-update risk after download failures.
- Prefer AstrBot Registry for Core update packages, with GitHub zipball fallback.
- During update restarts, WebUI now polls backend start time and performs a cache-busted full refresh after restart completion to avoid stale frontend assets.
📦 Build
- Updated Hatch artifact configuration so both sdist and wheel include bundled Dashboard assets.
- Added Core package build and Registry upload steps to the release workflow.
📋 What's Changed
- <!-- Review, group, and polish these entries before publishing. -->
- fix: keep system tools with persona tool lists (#8908) (da7f53d5e)
- docs: 文档更新 - 指令、FAQ、网页搜索、插件发布等 (#8912) (0a0c67740)
- fix: restore static runtime version (d36987dd1)
- fix: clarify WebUI recovery hint (ddc4e142c)
- feat: add prerelease visibility toggle (f9d408221)
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📋 What's Changed
- 为 OpenAI、Gemini、Anthropic 等模型请求加入可配置的重试机制,并新增请求最大重试次数配置,提升临时网络错误与 5xx 服务端错误下的稳定性。([#8893](https://github.com/AstrBotDevs/AstrBot/pull/8893))
- 新增托管 Core 包下载能力,并加强 Core 与 Dashboard 包下载归档校验。([#8888](https://github.com/AstrBotDevs/AstrBot/pull/8888))
- 支持在请求中加载 workspace skills,并加固 workspace skill 发现流程。([#8884](https://github.com/AstrBotDevs/AstrBot/pull/8884))
- 修复 OpenAPI 文件上传能力,恢复 `/api/v1/file` OpenAPI 暴露、文件范围 API Key 与相关文档/客户端产物。
- 修复新版 MCP 中 Streamable HTTP client 重命名导致的兼容问题,并保持 `mcp` 依赖小于 2。
- 加固人格工具边界,确保人格限定的工具范围在主 Agent 请求中正确生效。([#8786](https://github.com/AstrBotDevs/AstrBot/pull/8786))
- 加强 Future Task 所有者校验,避免越权访问定时任务。([#8881](https://github.com/AstrBotDevs/AstrBot/pull/8881))
- 在受限本地文件系统工具中拒绝 hardlink 文件,避免通过工作区 hardlink 别名读写允许目录外的文件。
- + 3 more
📦 Highlights
- Added configurable retry handling for OpenAI, Gemini, Anthropic, and related provider requests, including a maximum request retry setting to improve stability for transient network failures and 5xx server errors. ([#8893](https://github.com/AstrBotDevs/AstrBot/pull/8893))
- Added hosted Core package downloads and strengthened archive validation for hosted Core and Dashboard packages. ([#8888](https://github.com/AstrBotDevs/AstrBot/pull/8888))
- Added workspace skills support in requests and hardened workspace skill discovery. ([#8884](https://github.com/AstrBotDevs/AstrBot/pull/8884))
🐛 Bug Fixes
- Restored OpenAPI file uploads by exposing `/api/v1/file`, enabling file-scoped API keys, and regenerating docs/client artifacts.
- Fixed compatibility with the renamed MCP Streamable HTTP client while keeping the `mcp` dependency below 2.
- Hardened persona tool boundaries so persona-restricted tool scopes are enforced correctly in main Agent requests. ([#8786](https://github.com/AstrBotDevs/AstrBot/pull/8786))
- Enforced Future Task owner checks to prevent unauthorized scheduled-task access. ([#8881](https://github.com/AstrBotDevs/AstrBot/pull/8881))
- Rejected hardlinked files in restricted local filesystem tools to prevent workspace hardlink aliases from reading or overwriting files outside allowed directories.
📦 Release Process
- Added `scripts/prepare_release.py` to standardize release branches, version bumps, changelog generation, and validation. ([#8891](https://github.com/AstrBotDevs/AstrBot/pull/8891))
📝 Docs
- Clarified the identity semantics of the `username` field in OpenAPI Chat. ([#8880](https://github.com/AstrBotDevs/AstrBot/pull/8880))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 修复
- 恢复 WebUI 在接口返回 401 时跳转登录页,避免会话失效后停留在异常状态。([#8903](https://github.com/AstrBotDevs/AstrBot/pull/8903))
- 保持 Core 版本与 WebUI 静态资源版本同步,修复打包或升级后可能加载旧 dist、资源版本错配的问题。([#8901](https://github.com/AstrBotDevs/AstrBot/pull/8901))
- 将知识库上下文作为临时 user 内容注入,提高缓存命中率。([#8904](https://github.com/AstrBotDevs/AstrBot/pull/8904))
- <a id="english"></a>
🐛 Bug Fixes
- Restored the WebUI login redirect when API requests return 401, preventing expired sessions from staying in a broken state. ([#8903](https://github.com/AstrBotDevs/AstrBot/pull/8903))
- Kept Core and WebUI static asset versions in sync, fixing stale dist loading and asset version mismatches after packaging or upgrades. ([#8901](https://github.com/AstrBotDevs/AstrBot/pull/8901))
- Injected knowledge base context as temporary user content, increase kv cache rate([#8904](https://github.com/AstrBotDevs/AstrBot/pull/8904))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 重点更新
- 优化 WebUI 升级流程:Core 更新改为后台任务,并在检测到 WebUI 与 Core 版本错配时提供自动恢复重启引导,避免刷新页面后卡在 `Missing API key`。([#8846](https://github.com/AstrBotDevs/AstrBot/pull/8846))
- 增强 QQ 官方机器人群聊能力,支持群消息创建类型,并允许 Webhook 适配器在无缓存 `msg_id` 时主动发送群消息。([#8838](https://github.com/AstrBotDevs/AstrBot/pull/8838), [#8841](https://github.com/AstrBotDevs/AstrBot/pull/8841))
📦 修复
- 修复人格编辑时重名校验不准确的问题。([#8843](https://github.com/AstrBotDevs/AstrBot/pull/8843))
- 加固沙箱文件传输与 CUA 健康检查流程,降低异常环境下的文件操作风险。([#8840](https://github.com/AstrBotDevs/AstrBot/pull/8840))
📦 其他
- 将 `faiss-cpu` 版本基线从 `1.12.0` 调整为 `1.14.3`。([#8837](https://github.com/AstrBotDevs/AstrBot/pull/8837))
- <a id="english"></a>
📦 Highlights
- Improved the WebUI upgrade flow by running Core updates as background tasks and adding guided recovery when WebUI/Core version mismatches are detected, preventing refreshes from leaving users stuck at `Missing API key`. ([#8846](https://github.com/AstrBotDevs/AstrBot/pull/8846))
- Enhanced QQ Official Bot group chat support with group message create events and proactive Webhook group sends without requiring a cached `msg_id`. ([#8838](https://github.com/AstrBotDevs/AstrBot/pull/8838), [#8841](https://github.com/AstrBotDevs/AstrBot/pull/8841))
🐛 Bug Fixes
- Fixed duplicate-name validation when editing personas. ([#8843](https://github.com/AstrBotDevs/AstrBot/pull/8843))
- Hardened sandbox file transfers and CUA health checks to reduce file-operation risk in abnormal environments. ([#8840](https://github.com/AstrBotDevs/AstrBot/pull/8840))
📦 Other
- Changed the `faiss-cpu` version baseline from `1.12.0` to `1.14.3`. ([#8837](https://github.com/AstrBotDevs/AstrBot/pull/8837))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📋 What's Changed
- 修复 Gemini 工具定义没有正确传回模型导致的 Gemini 类模型重复工具调用的问题。([#8833](https://github.com/AstrBotDevs/AstrBot/pull/8833))
- 修复 onboarding 平台配置与备份上传相关问题。([#8834](https://github.com/AstrBotDevs/AstrBot/pull/8834))
- 修复人格设定中将工具和 Skills 从指定列表切回“默认使用全部”后不生效的问题。([#8835](https://github.com/AstrBotDevs/AstrBot/pull/8835))
- 新增启动时重置 WebUI 密码的命令行参数 `--reset-password`,便于无法登录时恢复访问。([commit](https://github.com/AstrBotDevs/AstrBot/commit/4f5075e60))
- <a id="english"></a>
📋 What's Changed (EN)
- Added a startup flag to reset the WebUI password, making it easier to recover access when login is unavailable. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/4f5075e60))
- Fixed Gemini Provider tool definitions not being passed back to the model correctly, which could cause repeated tool calls. ([#8833](https://github.com/AstrBotDevs/AstrBot/pull/8833))
- Fixed onboarding platform configuration and backup upload issues. ([#8834](https://github.com/AstrBotDevs/AstrBot/pull/8834))
- Fixed persona tool and Skill settings not taking effect after switching from selected items back to “use all by default”. ([#8835](https://github.com/AstrBotDevs/AstrBot/pull/8835))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📋 What's Changed
- 修复无法上传 skills 的问题。([commit](https://github.com/AstrBotDevs/AstrBot/commit/898c800c9))
- 支持 QQ 官方机器人 WebSocket 适配器扫码绑定。([#8821](https://github.com/AstrBotDevs/AstrBot/pull/8821))
- 修复聊天输入框在非末尾位置使用输入法组合输入时可能丢失字符的问题。([#8811](https://github.com/AstrBotDevs/AstrBot/pull/8811))
- <a id="english"></a>
📋 What's Changed (EN)
- Added a QR binding flow for the QQ Official Bot WebSocket adapter, allowing WebUI one-click QR setup to fetch and autofill AppID and Secret, and marked the WebSocket template as recommended. ([#8821](https://github.com/AstrBotDevs/AstrBot/pull/8821))
- Fixed skills uploads by generating the multipart request body correctly. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/898c800c9))
- Fixed possible IME composition character loss when typing at a non-terminal cursor position in the chat input. ([#8811](https://github.com/AstrBotDevs/AstrBot/pull/8811))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 重点更新
- 重组 WebUI 系统配置页面,将系统配置入口迁移到侧边栏下方的设置区域,并优化相关设置项、自动保存和重启提示体验。([#8777](https://github.com/AstrBotDevs/AstrBot/pull/8777))
- 新增平台级 `create_event` 入口,StarTools 创建事件时改为委托给平台适配器,避免工具层绑定具体平台实现,并为各平台补齐专属事件构造逻辑。([#8813](https://github.com/AstrBotDevs/AstrBot/pull/8813))
📦 修复
- 将项目更新流程改为原子化操作,减少更新中断或重启时产生不完整状态的风险。([#8805](https://github.com/AstrBotDevs/AstrBot/pull/8805))
- 修复静态资源缺失时仍显示 WebUI ready banner 的问题。([#8804](https://github.com/AstrBotDevs/AstrBot/pull/8804))
- 使用原子写入方式保存配置文件,降低写入中断导致配置损坏的概率。([#8793](https://github.com/AstrBotDevs/AstrBot/pull/8793))
- 修复本地 Python 工具没有在当前 session workspace 中运行的问题。([#8792](https://github.com/AstrBotDevs/AstrBot/pull/8792))
- 修复 run-based tools 的保护逻辑,避免受保护工具在注册流程中被错误丢失。([#8790](https://github.com/AstrBotDevs/AstrBot/pull/8790))
- 稳定 Dashboard 路由相关测试,兼容最新 FastAPI 行为。([commit](https://github.com/AstrBotDevs/AstrBot/commit/a2b6aad84))
📦 优化与工程
- 降低核心模块中的 Pyright 类型错误数量,补充类型收窄、声明和边界检查。([#8197](https://github.com/AstrBotDevs/AstrBot/pull/8197))
- 应用 Ruff 格式化整理。([commit](https://github.com/AstrBotDevs/AstrBot/commit/98acd9f0d))
- 升级 GitHub Actions 中的 `pnpm/action-setup`。([#8808](https://github.com/AstrBotDevs/AstrBot/pull/8808))
- <a id="english"></a>
📦 Highlights
- Reorganized the WebUI system configuration experience, moving the system configuration entry to the Settings area at the bottom of the sidebar and improving related settings, autosave, and restart notices. ([#8777](https://github.com/AstrBotDevs/AstrBot/pull/8777))
- Added a platform-level `create_event` hook so StarTools delegates event creation to platform adapters instead of binding to concrete platform implementations, with platform-specific event construction added across adapters. ([#8813](https://github.com/AstrBotDevs/AstrBot/pull/8813))
🐛 Bug Fixes
- Made the project update flow atomic to reduce incomplete update states during interruptions or restarts. ([#8805](https://github.com/AstrBotDevs/AstrBot/pull/8805))
- Avoided showing the WebUI ready banner when static assets are missing. ([#8804](https://github.com/AstrBotDevs/AstrBot/pull/8804))
- Wrote configuration files atomically to reduce the chance of corruption during interrupted writes. ([#8793](https://github.com/AstrBotDevs/AstrBot/pull/8793))
- Ensured local Python tools run inside the current session workspace. ([#8792](https://github.com/AstrBotDevs/AstrBot/pull/8792))
- Preserved guarded run-based tools during registration. ([#8790](https://github.com/AstrBotDevs/AstrBot/pull/8790))
- Stabilized Dashboard route tests for the latest FastAPI behavior. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/a2b6aad84))
📦 Improvements and Maintenance
- Reduced Pyright type errors across core modules with stricter narrowing, declarations, and boundary checks. ([#8197](https://github.com/AstrBotDevs/AstrBot/pull/8197))
- Applied Ruff formatting cleanup. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/98acd9f0d))
- Updated `pnpm/action-setup` in GitHub Actions. ([#8808](https://github.com/AstrBotDevs/AstrBot/pull/8808))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 重点更新
- 后端架构从 Quart 迁移至 FastAPI,并统一 AstrBot 内部接口和 OpenAPI 接口格式,新增多个 OpenAPI。([#8688](https://github.com/AstrBotDevs/AstrBot/pull/8688))
- 统一全平台消息媒体文件的处理逻辑,提升图片、音频、文件和引用消息媒体的解析一致性,减少媒体格式带来的报错。([#8764](https://github.com/AstrBotDevs/AstrBot/pull/8764))
- WebUI 新增函数工具的逐工具权限管理,支持在工具面板中查看和切换工具权限。([#8693](https://github.com/AstrBotDevs/AstrBot/pull/8693))
- WebUI 支持主题跟随系统。([#8648](https://github.com/AstrBotDevs/AstrBot/pull/8648))s
- 对腾讯系 Silk 格式的语音文件不再使用 pilk 库。([#8764](https://github.com/AstrBotDevs/AstrBot/pull/8764))
- 新增 ElevenLabs TTS API Provider。([commit](https://github.com/AstrBotDevs/AstrBot/commit/0b2234936))
- 备份功能现在会包含 skills 目录。([#8700](https://github.com/AstrBotDevs/AstrBot/pull/8700))
📦 修复
- 修复生成平台 ID 时可能包含空白字符的问题。([#8768](https://github.com/AstrBotDevs/AstrBot/pull/8768))
- 修复插件 LLM Tools 开关的归属校验问题,避免误操作其他插件的工具配置。([commit](https://github.com/AstrBotDevs/AstrBot/commit/fadada3d6))
- 完善插件命名模式校验和边界场景处理。([commit](https://github.com/AstrBotDevs/AstrBot/commit/992aea986))
- 修复插件重装后仓库来源丢失的问题。([commit](https://github.com/AstrBotDevs/AstrBot/commit/a3c25ec2c))
- 修复子目录工具的 `handler_module_path` 不一致问题。([#8578](https://github.com/AstrBotDevs/AstrBot/pull/8578))
- 修复引用图片说明可能重复显示的问题。([#8718](https://github.com/AstrBotDevs/AstrBot/pull/8718))
- 修复 Embedding API version 后缀被错误截断的问题。([#8736](https://github.com/AstrBotDevs/AstrBot/pull/8736))
- 修复 changelog 弹窗中的锚点链接处理。([#8750](https://github.com/AstrBotDevs/AstrBot/pull/8750))
- + 5 more
📦 优化与工程
- 消息组件日志输出现在会截断过长的 base64 字段,避免日志中出现大体积内联媒体内容。([#8591](https://github.com/AstrBotDevs/AstrBot/pull/8591))
- 对腾讯系 Silk 格式的语音文件不再使用 pilk 库。([#8764](https://github.com/AstrBotDevs/AstrBot/pull/8764))
- 群聊上下文现在会展示被引用消息的内容。([commit](https://github.com/AstrBotDevs/AstrBot/commit/32cfcbf52))
- 对话上下文新增当前星期信息。([#8669](https://github.com/AstrBotDevs/AstrBot/pull/8669))
- 优化 CLI 插件列表构建的性能与健壮性,并补充关键合并逻辑和边界场景测试。([#8705](https://github.com/AstrBotDevs/AstrBot/pull/8705))
- 新增 GitHub 代理 `gh.dpik.top`,并移除失效代理 `gh.llkk.cc`。([#8772](https://github.com/AstrBotDevs/AstrBot/pull/8772), [#8761](https://github.com/AstrBotDevs/AstrBot/pull/8761))
- PR 标题检查允许更多 conventional commit 前缀。([#8665](https://github.com/AstrBotDevs/AstrBot/pull/8665))
- 应用 pyupgrade 代码现代化更新,并升级 Codecov GitHub Action。([#8684](https://github.com/AstrBotDevs/AstrBot/pull/8684), [commit](https://github.com/AstrBotDevs/AstrBot/commit/b321499e0))
- + 2 more
📦 Highlights
- Migrated the backend backbone from Quart to FastAPI, adding the ASGI runtime, Dashboard API routers/services, OpenAPI v1 definitions, and the generated Dashboard API client. ([#8688](https://github.com/AstrBotDevs/AstrBot/pull/8688))
- Unified media reference handling across message components, agent runners, providers, and multiple platform adapters for more consistent image, audio, file, and quoted-message media resolution. ([#8764](https://github.com/AstrBotDevs/AstrBot/pull/8764))
- Added per-tool permission management for function tools in WebUI, with controls for viewing and toggling tool permissions. ([#8693](https://github.com/AstrBotDevs/AstrBot/pull/8693))
- Added WebUI theme modes for light, dark, and system preference, with centralized system theme synchronization. ([#8648](https://github.com/AstrBotDevs/AstrBot/pull/8648))
- Added the ElevenLabs TTS API provider. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/0b2234936))
- Included the skills directory in backups. ([#8700](https://github.com/AstrBotDevs/AstrBot/pull/8700))
🐛 Bug Fixes
- Fixed missing `self_id` routing parameters across multiple aiocqhttp platform adapter and message event API calls. ([#8779](https://github.com/AstrBotDevs/AstrBot/pull/8779))
- Sanitized generated platform IDs to avoid whitespace characters. ([#8768](https://github.com/AstrBotDevs/AstrBot/pull/8768))
- Fixed ownership checks when toggling plugin LLM tools, preventing accidental changes to other plugins' tool settings. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/fadada3d6))
- Improved plugin naming pattern validation and edge-case handling. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/992aea986))
- Preserved repository source information when reinstalling plugins. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/a3c25ec2c))
- Fixed inconsistent `handler_module_path` values for tools inside subdirectories. ([#8578](https://github.com/AstrBotDevs/AstrBot/pull/8578))
- Avoided duplicate captions for quoted images. ([#8718](https://github.com/AstrBotDevs/AstrBot/pull/8718))
- Preserved Embedding API version suffixes instead of truncating them incorrectly. ([#8736](https://github.com/AstrBotDevs/AstrBot/pull/8736))
- + 6 more
📦 Improvements and Maintenance
- Message component log output now truncates long base64 fields to avoid large inline media payloads in logs. ([#8591](https://github.com/AstrBotDevs/AstrBot/pull/8591))
- Tencent Silk voice files no longer use the pilk library. ([#8764](https://github.com/AstrBotDevs/AstrBot/pull/8764))
- Group chat context now includes quoted message content. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/32cfcbf52))
- Added current weekday information to conversation context. ([#8669](https://github.com/AstrBotDevs/AstrBot/pull/8669))
- Improved CLI plugin list building performance and robustness, with tests for key merging and edge cases. ([#8705](https://github.com/AstrBotDevs/AstrBot/pull/8705))
- Added GitHub proxy `gh.dpik.top` and removed the invalid `gh.llkk.cc` proxy. ([#8772](https://github.com/AstrBotDevs/AstrBot/pull/8772), [#8761](https://github.com/AstrBotDevs/AstrBot/pull/8761))
- Allowed more conventional commit prefixes in PR title checks. ([#8665](https://github.com/AstrBotDevs/AstrBot/pull/8665))
- Applied pyupgrade updates and upgraded the Codecov GitHub Action. ([#8684](https://github.com/AstrBotDevs/AstrBot/pull/8684), [commit](https://github.com/AstrBotDevs/AstrBot/commit/b321499e0))
- + 1 more
📋 What's Changed
- fix: dispose database engine on shutdown by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/8650
- feat(core): show weekday in datetime prompt by @Sisyphbaous-DT-Project in https://github.com/AstrBotDevs/AstrBot/pull/8669
- feat(dashboard): add per-tool permission management for function tools by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/8693
- docs: fix LM Studio public IP typo by @liliiiliili in https://github.com/AstrBotDevs/AstrBot/pull/8707
- fix: defer faiss C library import to prevent process hang on startup by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/8696
- fix: preserve repo source on plugin reinstall by @HIUEETR in https://github.com/AstrBotDevs/AstrBot/pull/8675
- chore(deps): bump codecov/codecov-action from 6 to 7 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/8687
- fix(dashboard): allow creating folder by pressing Enter by @micaiguai in https://github.com/AstrBotDevs/AstrBot/pull/8597
- + 19 more
✨ New Contributors
- @liliiiliili made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8707
- @HIUEETR made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8675
- @micaiguai made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8597
- @jayzen33 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8680
- @yzy123908944141 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8684
- @ScarletPupil made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8634
- @SunmiJJW made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8665
- @SeRazon made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8705
- + 3 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 修复
- 收紧消息工具对本地文件路径的处理边界,减少非预期路径被用于消息附件的情况。([#8660](https://github.com/AstrBotDevs/AstrBot/pull/8660))
- 修复 Star Context 类型定义,恢复相关 SDK 类型提示与运行兼容性。([#8659](https://github.com/AstrBotDevs/AstrBot/pull/8659))
- 修复 QQ 官方 Webhook 模式无法正常重启的问题。
📦 优化
- 改进 Anthropic 在内容过滤响应中缺失 `usage` 字段时的处理,避免相关请求结果解析异常。([#8647](https://github.com/AstrBotDevs/AstrBot/pull/8647))
- <a id="english"></a>
🐛 Bug Fixes
- Tightened local file path handling in the message tool to avoid unintended attachment path usage. ([#8660](https://github.com/AstrBotDevs/AstrBot/pull/8660))
- Fixed Star Context typing to restore related SDK type hints and runtime compatibility. ([#8659](https://github.com/AstrBotDevs/AstrBot/pull/8659))
- Fixed QQ Official Webhook mode not restarting correctly.
📦 Improvements
- Improved Anthropic response parsing when content-filtered responses omit the `usage` field. ([#8647](https://github.com/AstrBotDevs/AstrBot/pull/8647))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 修复
- 回滚部分改动,修复偶现的 `Database is locked` 的问题。([#8639](https://github.com/AstrBotDevs/AstrBot/pull/8639))
- 修复 Pipeline 异步任务可能因缺少强引用而被垃圾回收的问题,提升事件处理稳定性。([#8618](https://github.com/AstrBotDevs/AstrBot/pull/8618))
- 修复 WebChat 使用 Web 搜索工具时,引用提示词在同一轮对话多次工具调用后被重复追加到系统消息的问题,避免破坏上下文缓存。([#8642](https://github.com/AstrBotDevs/AstrBot/pull/8642))
- 同步 Dashboard `pnpm-lock.yaml` 中的 overrides 配置,修复锁文件与工作区配置不一致的问题。([#8637](https://github.com/AstrBotDevs/AstrBot/pull/8637))
📦 优化
- 将微信公众号 HTTP API 请求超时时间从 15 秒提升到 120 秒,降低较慢网络或接口响应下下载文件超时失败概率。([#8643](https://github.com/AstrBotDevs/AstrBot/pull/8643))
- Dashboard 登录表单启用完整凭据自动填充,改善浏览器密码管理器的使用体验。([#8631](https://github.com/AstrBotDevs/AstrBot/pull/8631))
- <a id="english"></a>
🐛 Bug Fixes
- Fixed repeated Web search citation prompt appends in WebChat after multiple tool calls within the same interaction, preventing context cache invalidation. ([#8642](https://github.com/AstrBotDevs/AstrBot/pull/8642))
- Fixed Pipeline async tasks potentially being garbage-collected due to missing strong references, improving event processing stability. ([#8618](https://github.com/AstrBotDevs/AstrBot/pull/8618))
- Synced Dashboard `pnpm-lock.yaml` overrides with the workspace configuration. ([#8637](https://github.com/AstrBotDevs/AstrBot/pull/8637))
- Reverted the Provider stats SQLite lock retry change to avoid related regressions. ([#8639](https://github.com/AstrBotDevs/AstrBot/pull/8639))
- Reverted the macOS SQLAlchemy compatibility changes to avoid regressions in database initialization and vector storage paths. ([#8638](https://github.com/AstrBotDevs/AstrBot/pull/8638))
📦 Improvements
- Increased the WeChat Official Account HTTP API request timeout from 15 seconds to 120 seconds, reducing timeout failures on slower networks or API responses. ([#8643](https://github.com/AstrBotDevs/AstrBot/pull/8643))
- Enabled full credential autofill on the Dashboard login form for better browser password manager support. ([#8631](https://github.com/AstrBotDevs/AstrBot/pull/8631))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 重点更新
- 修复钉钉 Stream 任务异常退出后无法持续重连的问题,提升钉钉适配器长连接稳定性。([#8610](https://github.com/AstrBotDevs/AstrBot/pull/8610))
- Dashboard 登录新增 TOTP 双因素认证。([#8189](https://github.com/AstrBotDevs/AstrBot/pull/8189))
- Dashboard 侧边栏新增插件 WebUI 入口,并支持 MDI 图标;插件页面现在会同步 Dashboard 主题。([#8569](https://github.com/AstrBotDevs/AstrBot/pull/8569), [#8390](https://github.com/AstrBotDevs/AstrBot/pull/8390))
- 优化未来任务 UI,提高 “创建任务” 的产品化程度。([#8559](https://github.com/AstrBotDevs/AstrBot/pull/8559))
- 新增 `/name` 命令用于命名 umo 且在 UI 中展示。 ([#8575](https://github.com/AstrBotDevs/AstrBot/pull/8575))
- MiniMax Token Plan 支持动态获取模型列表,默认模型升级为 M3。([#8475](https://github.com/AstrBotDevs/AstrBot/pull/8475), [#8505](https://github.com/AstrBotDevs/AstrBot/pull/8505))
- 优化上下文压缩,提高压缩质量和 KV-cache 命中率。([#8530](https://github.com/AstrBotDevs/AstrBot/pull/8530), [#8226](https://github.com/AstrBotDevs/AstrBot/pull/8226))
📦 修复
- 修复 Provider 统计遇到 SQLite lock 时未重试的问题。([commit](https://github.com/AstrBotDevs/AstrBot/commit/1ad2b2c38))
- 修复空 modalities 被当作已配置能力,导致核心图片请求错误路由到视觉 fallback 的问题。([#8451](https://github.com/AstrBotDevs/AstrBot/pull/8451))
- 修复 Reply 组件 `toDict` 额外字段导致私聊消息发送失败的问题。([#8477](https://github.com/AstrBotDevs/AstrBot/pull/8477))
- 修复带 Reply 组件唤醒机器人且用户提示为空时的处理问题。([#8461](https://github.com/AstrBotDevs/AstrBot/pull/8461))
- 修复 aiocqhttp 适配器无法解析语音的问题,并增加音频文件存在性检查。([#8523](https://github.com/AstrBotDevs/AstrBot/pull/8523), [#8529](https://github.com/AstrBotDevs/AstrBot/pull/8529))
- 修复 OpenAI Embedding 在 SiliconFlow 非 Qwen embedding 模型上的无效参数问题。([#8508](https://github.com/AstrBotDevs/AstrBot/pull/8508))
- 修复 Gemini Embedding 批量文本在 `gemini-embedding-2` 上被折叠的问题。([#8537](https://github.com/AstrBotDevs/AstrBot/pull/8537))
- 修复 WeCom AI 消息链提取纯文本时的空白处理问题。([#8563](https://github.com/AstrBotDevs/AstrBot/pull/8563))
- + 3 more
📦 优化与工程
- 增强 Reply 消息链对 Record 组件的处理。([#8527](https://github.com/AstrBotDevs/AstrBot/pull/8527))
- Whisper STT 调用 OpenAI 转写接口后会关闭音频文件句柄。([#8528](https://github.com/AstrBotDevs/AstrBot/pull/8528))
- 防止唤醒命令被记录为群聊上下文。([#8536](https://github.com/AstrBotDevs/AstrBot/pull/8536))
- 修正中文文本中的 token 术语。([#8465](https://github.com/AstrBotDevs/AstrBot/pull/8465))
- 更新 GitHub Actions 依赖。([#8533](https://github.com/AstrBotDevs/AstrBot/pull/8533))
- <a id="english"></a>
📦 Highlights
- Fixed DingTalk Stream task recovery so the adapter keeps reconnecting after unexpected SDK task exits. ([#8610](https://github.com/AstrBotDevs/AstrBot/pull/8610))
- Added TOTP two-factor authentication for Dashboard login. ([#8189](https://github.com/AstrBotDevs/AstrBot/pull/8189))
- Added plugin WebUI entries to the Dashboard sidebar with MDI icon support, and synchronized Dashboard theme styling into plugin pages. ([#8569](https://github.com/AstrBotDevs/AstrBot/pull/8569), [#8390](https://github.com/AstrBotDevs/AstrBot/pull/8390))
- Added the future task UI and introduced `/name` for naming umo entries shown in the UI. ([#8559](https://github.com/AstrBotDevs/AstrBot/pull/8559), [#8575](https://github.com/AstrBotDevs/AstrBot/pull/8575))
- MiniMax Token Plan can now fetch model lists dynamically, with the default model upgraded to M3. ([#8475](https://github.com/AstrBotDevs/AstrBot/pull/8475), [#8505](https://github.com/AstrBotDevs/AstrBot/pull/8505))
- Improved long-term memory and context compression quality, including better KV-cache hit rates. ([#8530](https://github.com/AstrBotDevs/AstrBot/pull/8530), [#8226](https://github.com/AstrBotDevs/AstrBot/pull/8226))
🐛 Bug Fixes
- Retried provider stats reads when SQLite is locked. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/1ad2b2c38))
- Treated empty modalities as unconfigured so image requests do not incorrectly route to vision fallback. ([#8451](https://github.com/AstrBotDevs/AstrBot/pull/8451))
- Fixed private message sending failures caused by extra fields in Reply component `toDict` output. ([#8477](https://github.com/AstrBotDevs/AstrBot/pull/8477))
- Fixed waking the bot with a Reply component and an empty user prompt. ([#8461](https://github.com/AstrBotDevs/AstrBot/pull/8461))
- Fixed voice parsing in the aiocqhttp adapter and added an audio file existence check. ([#8523](https://github.com/AstrBotDevs/AstrBot/pull/8523), [#8529](https://github.com/AstrBotDevs/AstrBot/pull/8529))
- Fixed invalid OpenAI Embedding parameters for SiliconFlow non-Qwen embedding models. ([#8508](https://github.com/AstrBotDevs/AstrBot/pull/8508))
- Wrapped Gemini batch embedding texts in Content to avoid collapse on `gemini-embedding-2`. ([#8537](https://github.com/AstrBotDevs/AstrBot/pull/8537))
- Fixed whitespace handling when extracting plain text from WeCom AI message chains. ([#8563](https://github.com/AstrBotDevs/AstrBot/pull/8563))
- + 3 more
📦 Improvements and Maintenance
- Enhanced Reply chain handling for Record components. ([#8527](https://github.com/AstrBotDevs/AstrBot/pull/8527))
- Closed audio file handles after OpenAI transcription calls in Whisper STT. ([#8528](https://github.com/AstrBotDevs/AstrBot/pull/8528))
- Prevented wake commands from being recorded as group chat context. ([#8536](https://github.com/AstrBotDevs/AstrBot/pull/8536))
- Fixed Chinese token terminology. ([#8465](https://github.com/AstrBotDevs/AstrBot/pull/8465))
- Updated GitHub Actions dependencies. ([#8533](https://github.com/AstrBotDevs/AstrBot/pull/8533))
📋 What's Changed
- Fix&Feat: Template config optimization by @Railgun19457 in https://github.com/AstrBotDevs/AstrBot/pull/8228
- chore: fix token terminology in zh by @Rain-0x01-39 in https://github.com/AstrBotDevs/AstrBot/pull/8465
- feat: dynamically fetch model list for MiniMax Token Plan via /v1/models API by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/8475
- fix: waking bot with a reply component and empty user prompt by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/8461
- feat: add TOTP two-factor authentication for dashboard login by @Raven95676 in https://github.com/AstrBotDevs/AstrBot/pull/8189
- fix(message): 修复 Reply 组件 toDict 方法输出多余字段导致私聊消息发送失败的问题 by @NayukiChiba in https://github.com/AstrBotDevs/AstrBot/pull/8477
- fix(core): 将空 list modalities 视为未配置,修复图片无法传递到模型的问题 by @Sisyphbaous-DT-Project in https://github.com/AstrBotDevs/AstrBot/pull/8451
- feat: upgrade MiniMax Token Plan default model to M3 by @octo-patch in https://github.com/AstrBotDevs/AstrBot/pull/8505
- + 18 more
✨ New Contributors
- @octo-patch made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8505
- @xxynet made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8462
- @Allenyou1126 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8508
- @Rat0323 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8537
- Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.25.2...v4.25.3
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增与优化
- 启用平滑 Markdown 流式渲染。([#8371](https://github.com/AstrBotDevs/AstrBot/pull/8371))
- 优化群聊上下文感知的缓存命中率。([#8226](https://github.com/AstrBotDevs/AstrBot/pull/8226))
- 为知识库加入 Markdown 感知分块器,提升结构化文档导入后的分块质量。([#8151](https://github.com/AstrBotDevs/AstrBot/pull/8151))
- 为 ChatUI 添加指令候选能力,支持自定义唤醒词和悬浮提示。([#8279](https://github.com/AstrBotDevs/AstrBot/pull/8279), [#8353](https://github.com/AstrBotDevs/AstrBot/pull/8353))
- 为已配置模型增加能力图标,便于识别模型支持的能力。([#8405](https://github.com/AstrBotDevs/AstrBot/pull/8405))
- 新增小米和 Xiaomi Token Plan LLM 提供商。([#7744](https://github.com/AstrBotDevs/AstrBot/pull/7744))
- 优化 QQ 官方适配器的消息链媒体拆分和发送逻辑,并透传 QQ webhook 扩展字段。([#8376](https://github.com/AstrBotDevs/AstrBot/pull/8376), [#6274](https://github.com/AstrBotDevs/AstrBot/pull/6274))
- 为首次通知增加 EULA 提示。([#7955](https://github.com/AstrBotDevs/AstrBot/pull/7955))
- + 4 more
📦 修复
- 修复 ChatUI 语音输入录制与上传失效的问题。([#8440](https://github.com/AstrBotDevs/AstrBot/pull/8440))
- 修复 ChatUI 思考过程标题摘要展示,并让右侧图标保持垂直居中。
- 修复特定情况下单个插件加载失败会影响其他插件重载的问题,增强失败插件状态清理。([#8441](https://github.com/AstrBotDevs/AstrBot/pull/8441))
- 修复空 LLM 摘要处理问题。([#8195](https://github.com/AstrBotDevs/AstrBot/pull/8195))
- 修复 RST 和 AsciiDoc 知识库上传支持。([#8255](https://github.com/AstrBotDevs/AstrBot/pull/8255))
- 修复 T2I Shiki 相关问题。([#8013](https://github.com/AstrBotDevs/AstrBot/pull/8013))
- 修复流式响应 `delta=None` 分块导致 SDK `to_dict()` 报错的问题。([#8244](https://github.com/AstrBotDevs/AstrBot/pull/8244))
- 修复 skills_like 工具重新查询时未保留原始 `completion_text` 的问题。([#8240](https://github.com/AstrBotDevs/AstrBot/pull/8240))
- + 16 more
📦 文档与工程
- 更新 release 版本发布说明。([commit](https://github.com/AstrBotDevs/AstrBot/commit/dceacd5a8))
- 更新 FAQ 中 Dashboard 下载链接、强制刷新说明和删除数量说明。([#8359](https://github.com/AstrBotDevs/AstrBot/pull/8359), [#8235](https://github.com/AstrBotDevs/AstrBot/pull/8235), [commit](https://github.com/AstrBotDevs/AstrBot/commit/61b6813dc))
- 修正文档中的 QQ 官方 WebSocket 机器人中文说明 typo。([#8351](https://github.com/AstrBotDevs/AstrBot/pull/8351))
- 更新 GitHub Actions 依赖。([#8233](https://github.com/AstrBotDevs/AstrBot/pull/8233), [#8335](https://github.com/AstrBotDevs/AstrBot/pull/8335))
- 移除无用日志。([commit](https://github.com/AstrBotDevs/AstrBot/commit/9fc03fa95))
- <a id="english"></a>
✨ Features and Improvements
- Added a Markdown-aware knowledge base chunker for better structured document ingestion. ([#8151](https://github.com/AstrBotDevs/AstrBot/pull/8151))
- Added ChatUI command suggestions, including custom wake-up words and hover information. ([#8279](https://github.com/AstrBotDevs/AstrBot/pull/8279), [#8353](https://github.com/AstrBotDevs/AstrBot/pull/8353))
- Added capability icons for configured models. ([#8405](https://github.com/AstrBotDevs/AstrBot/pull/8405))
- Added Xiaomi and Xiaomi Token Plan LLM providers. ([#7744](https://github.com/AstrBotDevs/AstrBot/pull/7744))
- Improved QQ Official media-chain splitting and message sending, and passed through QQ webhook extra fields. ([#8376](https://github.com/AstrBotDevs/AstrBot/pull/8376), [#6274](https://github.com/AstrBotDevs/AstrBot/pull/6274))
- Added an EULA hint for the first notification. ([#7955](https://github.com/AstrBotDevs/AstrBot/pull/7955))
- Added direct access buttons on WebUI plugin cards and improved embedded page height. ([#8369](https://github.com/AstrBotDevs/AstrBot/pull/8369))
- Enabled smooth Markdown streaming. ([#8371](https://github.com/AstrBotDevs/AstrBot/pull/8371))
- + 3 more
🐛 Bug Fixes
- Fixed ChatUI voice recording and upload. ([#8440](https://github.com/AstrBotDevs/AstrBot/pull/8440))
- Fixed ChatUI reasoning summary labels and centered the right-side icon vertically.
- Fixed plugin reload failures where one plugin load failure could leave stale state and break other plugin reloads. ([#8441](https://github.com/AstrBotDevs/AstrBot/pull/8441))
- Fixed empty LLM summaries. ([#8195](https://github.com/AstrBotDevs/AstrBot/pull/8195))
- Fixed RST and AsciiDoc knowledge uploads. ([#8255](https://github.com/AstrBotDevs/AstrBot/pull/8255))
- Fixed T2I Shiki issues. ([#8013](https://github.com/AstrBotDevs/AstrBot/pull/8013))
- Fixed `delta=None` streaming chunks that could trigger SDK `to_dict()` errors. ([#8244](https://github.com/AstrBotDevs/AstrBot/pull/8244))
- Preserved original `completion_text` in skills_like tool re-query. ([#8240](https://github.com/AstrBotDevs/AstrBot/pull/8240))
- + 16 more
📝 Documentation and Maintenance
- Updated release version instructions. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/dceacd5a8))
- Updated FAQ Dashboard download links, hard refresh instructions, and deletion count wording. ([#8359](https://github.com/AstrBotDevs/AstrBot/pull/8359), [#8235](https://github.com/AstrBotDevs/AstrBot/pull/8235), [commit](https://github.com/AstrBotDevs/AstrBot/commit/61b6813dc))
- Fixed a typo in the Chinese QQ Official WebSocket bot setup documentation. ([#8351](https://github.com/AstrBotDevs/AstrBot/pull/8351))
- Updated GitHub Actions dependencies. ([#8233](https://github.com/AstrBotDevs/AstrBot/pull/8233), [#8335](https://github.com/AstrBotDevs/AstrBot/pull/8335))
- Removed unused logs. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/9fc03fa95))
📋 What's Changed
- fix: skip empty llm summaries by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/8195
- chore(deps): bump pnpm/action-setup from 6.0.7 to 6.0.8 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/8233
- docs: fix typo of the count in FAQ deletion instructions by @dnamw in https://github.com/AstrBotDevs/AstrBot/pull/8235
- fix: support rst and adoc knowledge uploads by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/8255
- feat: ignore字体集的生成文件,并在编译时自动生成 by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/8264
- feat(password): add command to change AstrBot dashboard password by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/8272
- Fix/stale command hints by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/8245
- fix: t2i shiki issue by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/8013
- + 35 more
✨ New Contributors
- @dnamw made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8235
- @x1051445024 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8244
- @EmilyCheoh made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8240
- @hibiki233i made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7724
- @Simon-He95 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8371
- @HosisoraLing made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7744
- @liuwanwan1 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8318
- @Loagaeth made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8151
- + 1 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 优化
- 个人微信和钉钉扫码创建成功后,平台配置 ID 会自动追加随机 4 位小写字母后缀,例如 `_abcd`,降低多个扫码创建配置之间的 ID 冲突概率。
📦 修复
- 修复 WebUI 全局字体栈未完整覆盖西里尔文字场景的问题,改善俄文等多语言文本显示效果。([#8205](https://github.com/AstrBotDevs/AstrBot/pull/8205))
- <a id="english"></a>
📦 Improvements
- Personal WeChat and DingTalk QR setup now append a random four-letter lowercase suffix to the generated platform config ID, such as `_abcd`, reducing ID conflicts across multiple scan-created configs.
🐛 Bug Fixes
- Fixed the WebUI global font-family stack so Cyrillic text and other multilingual content render more consistently. ([#8205](https://github.com/AstrBotDevs/AstrBot/pull/8205))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 修复
- 修复 Tencent SILK 音频带 `\x02` 前缀时未被识别,导致后续 ffmpeg 转换失败的问题。([#8009](https://github.com/AstrBotDevs/AstrBot/pull/8009))
- 修复个人微信媒体消息发送失败时错误未向上暴露的问题。([#8175](https://github.com/AstrBotDevs/AstrBot/pull/8175))
- 修复 Claude API 对无参数工具返回 `None` 参数时工具调用失败的问题。([#8136](https://github.com/AstrBotDevs/AstrBot/pull/8136))
- 修复 `register_platform_adapter_type` 与 `register_permission_type` 未正确透传 `**kwargs` 的问题。([#8141](https://github.com/AstrBotDevs/AstrBot/pull/8141))
- 修复 MiniMax TTS timber weight 配置为空或非法 JSON 时可能导致初始化崩溃的问题。
📦 新功能
- 新增 Ollama Embedding 与 NVIDIA NIM Embedding 提供商适配器。([#8104](https://github.com/AstrBotDevs/AstrBot/pull/8104))
- 新增飞书扫码一键创建能力。([#8191](https://github.com/AstrBotDevs/AstrBot/pull/8191))
- 新增钉钉扫码一键创建能力。([#8198](https://github.com/AstrBotDevs/AstrBot/pull/8198))
- 新增个人微信创建时扫码登录流程,选择个人微信后直接在创建弹窗中显示二维码,登录成功后再保存机器人配置。([#8196](https://github.com/AstrBotDevs/AstrBot/pull/8196))
📦 优化
- 优化个人微信登录态处理:当接口返回 session timeout 时清理旧登录态,避免继续高频请求失效会话。([#8196](https://github.com/AstrBotDevs/AstrBot/pull/8196))
- 优化 AMR 音频转换质量,并复用通用音频转换逻辑简化 Opus 转换实现。([#8153](https://github.com/AstrBotDevs/AstrBot/pull/8153))
- 优化 WebUI 资源选择逻辑:当 `data/dist` 中的 Dashboard 版本旧于当前核心版本时,优先使用随包内置的 Dashboard,避免旧前端资源造成兼容问题。([#8172](https://github.com/AstrBotDevs/AstrBot/pull/8172))
- Dashboard 新增 Noto Sans 字体支持,改善西里尔文字等多语言文本显示效果。([#8015](https://github.com/AstrBotDevs/AstrBot/pull/8015))
- 优化控制台自动滚动状态同步,刷新后能正确恢复并同步到日志显示组件。([#8186](https://github.com/AstrBotDevs/AstrBot/pull/8186))
- 更新飞书、钉钉、个人微信平台文档,补充扫码创建 / 登录说明、飞书权限开通提醒,以及个人微信新版创建流程。
- 更新 AI 插件开发文档,明确 `context.register_llm_tool()` 已弃用,并补充 LLM Tool docstring 参数解析要求。([#8178](https://github.com/AstrBotDevs/AstrBot/pull/8178))
- <a id="english"></a>
✨ New Features
- Added one-click QR setup for Feishu / Lark. When creating a bot, users can choose Feishu China or Lark Global, scan the QR code, and automatically fill `app_id`, `app_secret`, and domain settings. AstrBot also fetches the bot name for the generated config ID display. ([#8191](https://github.com/AstrBotDevs/AstrBot/pull/8191))
- Added one-click QR setup for DingTalk. Users can create or bind a DingTalk app by scanning a QR code, automatically filling `ClientID` and `ClientSecret`, while manual setup remains available. ([#8198](https://github.com/AstrBotDevs/AstrBot/pull/8198))
- Added QR login during Personal WeChat bot creation. The creation dialog now shows the login QR code directly and allows saving after login succeeds. ([#8196](https://github.com/AstrBotDevs/AstrBot/pull/8196))
- Added Ollama Embedding and NVIDIA NIM Embedding provider adapters. ([#8104](https://github.com/AstrBotDevs/AstrBot/pull/8104))
📦 Improvements
- Improved Personal WeChat login-state handling by clearing stale login state when the API reports session timeout, avoiding repeated requests against an invalid session. ([#8196](https://github.com/AstrBotDevs/AstrBot/pull/8196))
- Improved AMR audio conversion quality and simplified Opus conversion by reusing the shared audio conversion path. ([#8153](https://github.com/AstrBotDevs/AstrBot/pull/8153))
- Improved WebUI asset selection: when `data/dist` contains a Dashboard older than the current core version, AstrBot now prefers the bundled Dashboard to avoid stale frontend compatibility issues. ([#8172](https://github.com/AstrBotDevs/AstrBot/pull/8172))
- Added Noto Sans support to the Dashboard for better Cyrillic and multilingual text rendering. ([#8015](https://github.com/AstrBotDevs/AstrBot/pull/8015))
- Improved console auto-scroll state synchronization so the restored preference is applied to the log display component after refresh. ([#8186](https://github.com/AstrBotDevs/AstrBot/pull/8186))
- Updated Feishu / Lark, DingTalk, and Personal WeChat platform docs with QR setup / login instructions, Feishu permission reminders, and the new Personal WeChat creation flow.
- Updated the AI plugin development guide to clarify that `context.register_llm_tool()` is deprecated and to document the required LLM Tool docstring argument format. ([#8178](https://github.com/AstrBotDevs/AstrBot/pull/8178))
🐛 Bug Fixes
- Fixed Tencent SILK audio with a leading `\x02` byte not being detected, which could cause ffmpeg conversion failures. ([#8009](https://github.com/AstrBotDevs/AstrBot/pull/8009))
- Fixed Personal WeChat media send failures not being surfaced properly. ([#8175](https://github.com/AstrBotDevs/AstrBot/pull/8175))
- Fixed tool calls failing when the Claude API returns `None` arguments for no-parameter tools. ([#8136](https://github.com/AstrBotDevs/AstrBot/pull/8136))
- Fixed `register_platform_adapter_type` and `register_permission_type` not forwarding `**kwargs` correctly. ([#8141](https://github.com/AstrBotDevs/AstrBot/pull/8141))
- Fixed MiniMax TTS initialization crashes when timber weight config is empty or invalid JSON.
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 优化
- Dashboard 更新流程新增两阶段下载进度,升级项目时会先下载 WebUI,再下载项目代码,并在界面中展示每个阶段的进度。
- 新增更新后重启等待体验:WebUI 会在更新前记录 AstrBot 启动时间,更新完成后展示正在重启状态,并轮询启动时间变化后自动刷新页面。
- 新增 `ASTRBOT_DASHBOARD_INITIAL_PASSWORD` 环境变量,可为首次生成的 Dashboard 密码指定初始值。
- `astrbot init` 现在会识别 `ASTRBOT_DASHBOARD_INITIAL_PASSWORD`,并在初始化阶段创建 `data/cmd_config.json` 写入哈希后的初始密码,便于自动化部署。
- 优化 Dashboard 更新项目弹窗,减少对用户无用的信息,保留独立更新 WebUI 到最新版本的兜底入口,并将其收起到高级设置中。
- 优化 Release 列表加载状态和预发布版本提示逻辑:Release 未加载完成时显示表格 loading,第一页没有预发布版本时不再显示提醒。
- 优化升级后旧版 Dashboard 密码登录失败时的提示,引导用户参考 FAQ 处理升级后密码正确但无法登录的情况。
- 更新 FAQ 文档,补充升级后密码正确但无法登录时可删除 `data/dist` 后重启 AstrBot 的处理方案。
📦 修复
- 修复 Shipyard Neo 在显式配置 profile 时可能未正确尊重该配置的问题。([#8167](https://github.com/AstrBotDevs/AstrBot/pull/8167))
- 修复 `message_tools` 在目标路径不存在时未抛出异常并阻止消息发送的问题。([#8149](https://github.com/AstrBotDevs/AstrBot/pull/8149))
- <a id="english"></a>
📦 Improvements
- Added two-stage download progress to the Dashboard update flow. Project upgrades now download the WebUI first, then the core project code, with per-stage progress shown in the UI.
- Added a restart-waiting experience after updates. The WebUI records AstrBot's start time before updating, shows a restarting state after the update completes, polls for a changed start time, and refreshes automatically.
- Added the `ASTRBOT_DASHBOARD_INITIAL_PASSWORD` environment variable to specify the first generated Dashboard password.
- `astrbot init` now recognizes `ASTRBOT_DASHBOARD_INITIAL_PASSWORD` and creates `data/cmd_config.json` during initialization with the hashed initial password, making automated deployments easier.
- Improved the Dashboard project update dialog by hiding low-value details, keeping the standalone WebUI update fallback, and moving it under Advanced Settings.
- Improved Release list loading and prerelease notices: the table now shows a loading state before releases are loaded, and the prerelease warning is hidden when the first page has no prerelease entries.
- Improved the login failure message for legacy Dashboard password upgrade cases, guiding users to the FAQ when a correct password no longer works after upgrading.
- Updated the FAQ with recovery steps for upgrade cases where the correct password cannot log in: delete `data/dist` and restart AstrBot.
🐛 Bug Fixes
- Fixed Shipyard Neo so explicit profile configuration is respected. ([#8167](https://github.com/AstrBotDevs/AstrBot/pull/8167))
- Fixed `message_tools` so missing target paths raise an exception and block message sending. ([#8149](https://github.com/AstrBotDevs/AstrBot/pull/8149))
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 优化
- 强化 Dashboard 登录与密码安全:首次启动生成强随机初始密码,密码存储升级为 PBKDF2,保留旧版 MD5 兼容升级流程,并在需要时引导用户完成安全升级。([#7338](https://github.com/AstrBotDevs/AstrBot/pull/7338))
- 增强插件页面国际化能力,插件页面、扩展页和相关 Dashboard 文案可更好地按当前语言展示。([#7998](https://github.com/AstrBotDevs/AstrBot/pull/7998))
- 新增 WebUI 指标开关配置 `disable_metrics`,可在 Dashboard 中关闭指标统计。([#7946](https://github.com/AstrBotDevs/AstrBot/pull/7946))
- 新增控制台自动滚动开关持久化,刷新页面后保留用户选择。([#8024](https://github.com/AstrBotDevs/AstrBot/pull/8024))
- 新增思考内容与最终回复之间的视觉分隔,提升消息阅读体验。([#8059](https://github.com/AstrBotDevs/AstrBot/pull/8059))
- 优化插件安装、备份恢复与路径冲突处理,增加自愈逻辑并减少临时目录残留和错误追踪误报。([#7737](https://github.com/AstrBotDevs/AstrBot/pull/7737), [#8148](https://github.com/AstrBotDevs/AstrBot/pull/8148))
- 优化 Windows 更新器 zip 根目录归一化与 Python 工具编码处理,提升 Windows 环境兼容性。([#8019](https://github.com/AstrBotDevs/AstrBot/pull/8019))
- 优化 CUA 文件上传逻辑,改用原生文件接口处理上传。([#8069](https://github.com/AstrBotDevs/AstrBot/pull/8069))
- + 3 more
📦 修复
- 修复知识库在空 prompt 下仍触发检索的问题。([#8073](https://github.com/AstrBotDevs/AstrBot/pull/8073))
- 修复 Discord 命令同步达到配额时会影响平台启动的问题。([#8061](https://github.com/AstrBotDevs/AstrBot/pull/8061))
- 修复 GitHub fallback 下载 URL 中资源文件名错误的问题。([#8046](https://github.com/AstrBotDevs/AstrBot/pull/8046))
- 修复文件夹重命名后父级关系丢失的问题。([#7974](https://github.com/AstrBotDevs/AstrBot/pull/7974))
- 修复配置缺失 `websearch_firecrawl_key`,以及百度搜索关闭时仍显示 key 字段的问题。([#8012](https://github.com/AstrBotDevs/AstrBot/pull/8012), [#7992](https://github.com/AstrBotDevs/AstrBot/pull/7992))
- 修复 T2I 模板内容未校验可能导致 Jinja2 SSTI 注入的问题。([#8077](https://github.com/AstrBotDevs/AstrBot/pull/8077))
- 修复贡献者图片数量上限、API Key 文档示例、插件发布 16MB 限制说明、README 徽章和多处插件开发文档错误。([#8000](https://github.com/AstrBotDevs/AstrBot/pull/8000), [#7977](https://github.com/AstrBotDevs/AstrBot/pull/7977), [#8108](https://github.com/AstrBotDevs/AstrBot/pull/8108), [#8079](https://github.com/AstrBotDevs/AstrBot/pull/8079), [#7979](https://github.com/AstrBotDevs/AstrBot/pull/7979), [#8001](https://github.com/AstrBotDevs/AstrBot/pull/8001), [#8129](https://github.com/AstrBotDevs/AstrBot/pull/8129), [#8166](https://github.com/AstrBotDevs/AstrBot/pull/8166))
- <a id="english"></a>
✨ New Features
- Added plugin changelogs and a plugin update system, allowing plugin detail pages to show version update information and supporting a more complete plugin update flow.
- Enhanced plugin page internationalization so plugin pages, extension views, and related Dashboard copy can better follow the current language. ([#7998](https://github.com/AstrBotDevs/AstrBot/pull/7998))
- Added the `disable_metrics` WebUI config option to disable metrics collection from the Dashboard. ([#7946](https://github.com/AstrBotDevs/AstrBot/pull/7946))
- Added persisted console auto-scroll preference. ([#8024](https://github.com/AstrBotDevs/AstrBot/pull/8024))
- Added a visual separator between thinking content and the final response. ([#8059](https://github.com/AstrBotDevs/AstrBot/pull/8059))
- Added idle expiration for CUA sandbox sessions and exposed the CUA idle timeout setting in the Dashboard. ([#8074](https://github.com/AstrBotDevs/AstrBot/pull/8074), [#8075](https://github.com/AstrBotDevs/AstrBot/pull/8075))
📦 Improvements
- Strengthened Dashboard authentication and password security: initial passwords are generated randomly, password storage is upgraded to PBKDF2, legacy MD5 compatibility is preserved for upgrades, and users are guided through security upgrades when required. ([#7338](https://github.com/AstrBotDevs/AstrBot/pull/7338))
- Improved plugin installation, backup restore, and path-conflict handling with self-healing behavior and fewer temporary-directory leftovers or false error reports. ([#7737](https://github.com/AstrBotDevs/AstrBot/pull/7737), [#8148](https://github.com/AstrBotDevs/AstrBot/pull/8148))
- Improved Windows updater zip-root normalization and Python tool encoding handling for better Windows compatibility. ([#8019](https://github.com/AstrBotDevs/AstrBot/pull/8019))
- Improved CUA uploads by using native file interfaces. ([#8069](https://github.com/AstrBotDevs/AstrBot/pull/8069))
- Improved the Gemini Provider to use a managed httpx client. ([#8112](https://github.com/AstrBotDevs/AstrBot/pull/8112))
- Improved Dashboard mobile layout, console log-level alignment, and list-item action-button visibility. ([#7988](https://github.com/AstrBotDevs/AstrBot/pull/7988), [#8081](https://github.com/AstrBotDevs/AstrBot/pull/8081))
🐛 Bug Fixes
- Fixed missing validation for T2I template content that could allow Jinja2 SSTI injection. ([#8077](https://github.com/AstrBotDevs/AstrBot/pull/8077))
- Fixed knowledge base retrieval being triggered for blank prompts. ([#8073](https://github.com/AstrBotDevs/AstrBot/pull/8073))
- Fixed Discord startup being interrupted by command quota handling. ([#8061](https://github.com/AstrBotDevs/AstrBot/pull/8061))
- Fixed incorrect asset filenames in GitHub fallback download URLs. ([#8046](https://github.com/AstrBotDevs/AstrBot/pull/8046))
- Fixed folder parent relationships being lost on rename. ([#7974](https://github.com/AstrBotDevs/AstrBot/pull/7974))
- Fixed missing `websearch_firecrawl_key` in the default config and hidden Baidu web-search keys when disabled. ([#8012](https://github.com/AstrBotDevs/AstrBot/pull/8012), [#7992](https://github.com/AstrBotDevs/AstrBot/pull/7992))
- Fixed contributor image limits, API Key examples, plugin publishing size-limit docs, README badges, and multiple plugin development guide issues. ([#8000](https://github.com/AstrBotDevs/AstrBot/pull/8000), [#7977](https://github.com/AstrBotDevs/AstrBot/pull/7977), [#8108](https://github.com/AstrBotDevs/AstrBot/pull/8108), [#8079](https://github.com/AstrBotDevs/AstrBot/pull/8079), [#7979](https://github.com/AstrBotDevs/AstrBot/pull/7979), [#8001](https://github.com/AstrBotDevs/AstrBot/pull/8001), [#8129](https://github.com/AstrBotDevs/AstrBot/pull/8129), [#8166](https://github.com/AstrBotDevs/AstrBot/pull/8166))
📋 What's Changed
- fix(docs): 修复文档中的多处错误,包括死链、拼写错误、步骤编号等 by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/7979
- feat: enhance plugin page internationalization by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7998
- fix: encoding issue in windows when using python tool by @elecvoid243 in https://github.com/AstrBotDevs/AstrBot/pull/7995
- fix: update contributors image max count to 300 by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/8000
- fix: resolve path conflicts and improve self-healing during backup restore and plugin installation by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/7737
- fix: preserve folder parent and description on rename by @Fronut in https://github.com/AstrBotDevs/AstrBot/pull/7974
- fix(config): add missing websearch_firecrawl_key to DEFAULT_CONFIG by @Midwich in https://github.com/AstrBotDevs/AstrBot/pull/8012
- fix(config): hide Baidu web search key when disabled by @RhoninSeiei in https://github.com/AstrBotDevs/AstrBot/pull/7992
- + 24 more
✨ New Contributors
- @elecvoid243 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7995
- @Midwich made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8012
- @168SDTH made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7977
- @jdjfjdsfj made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/8129
- Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.24.2...v4.24.4
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- 新增插件自定义 WebUI 页面(Plugin Pages)能力,插件可通过 `pages/` 目录和注册 Web 路由来向 Dashboard 暴露自定义页面。详见开发文档。([#5940](https://github.com/AstrBotDevs/AstrBot/pull/5940))
- 新增插件国际化支持,插件可在 `.astrbot-plugin/i18n` 中提供多语言名称、描述和配置文本,Dashboard 组件会按当前语言解析展示。详见开发文档。([#7919](https://github.com/AstrBotDevs/AstrBot/pull/7919))
- 新增插件技能支持,插件可通过 `skills/` 提供 skills。([#7945](https://github.com/AstrBotDevs/AstrBot/pull/7945))。详见开发文档。
- 新增 `extra_user_content_parts` 临时内容标记,插件可使用 `TextPart(...).mark_as_temp()` 让追加内容只参与本轮 LLM 请求而不写入会话历史。([#7976](https://github.com/AstrBotDevs/AstrBot/pull/7976))。详见插件开发文档。
- 新增插件详情页、插件短描述、插件置顶,以及通过 AstrBot 官方插件存储下载插件的能力,改善插件安装与浏览体验。([#7896](https://github.com/AstrBotDevs/AstrBot/pull/7896), [#7918](https://github.com/AstrBotDevs/AstrBot/pull/7918), [#7930](https://github.com/AstrBotDevs/AstrBot/pull/7930), [#7931](https://github.com/AstrBotDevs/AstrBot/pull/7931))
- 新增 `fallback_max_context_tokens` 配置,当模型元数据缺失且 `max_context_tokens` 为 0 时,可使用默认上下文窗口上限参与压缩判断。该值默认为 `128k`。([#7942](https://github.com/AstrBotDevs/AstrBot/pull/7942))
- 支持在 WebUI Skills 页中查看并编辑技能文件。([#7903](https://github.com/AstrBotDevs/AstrBot/pull/7903))
- 新增 CUA Computer Use 沙盒运行时,支持桌面 GUI、截图、键盘、鼠标、浏览器启动流程、前后台 Shell、文件回退处理与权限控制,并补充使用文档和测试。([#7828](https://github.com/AstrBotDevs/AstrBot/pull/7828))
- + 4 more
📦 优化
- 优化 Dashboard 扩展、知识库、MCP、技能和配置页面的布局、卡片样式、响应式表现与多语言文案。([#7903](https://github.com/AstrBotDevs/AstrBot/pull/7903))
- 优化会话历史中的工具调用渲染,工具消息不再作为普通气泡直接进行 Markdown 渲染,而是聚合到对应 assistant 的工具卡片中,避免大工具结果导致页面卡顿。([#7937](https://github.com/AstrBotDevs/AstrBot/pull/7937))
- 优化上下文管理与压缩策略,包括截断算法、用户消息删除问题修复、PPIO 上下文长度错误识别,以及配置界面对执行顺序的说明。([#7888](https://github.com/AstrBotDevs/AstrBot/pull/7888), [#7920](https://github.com/AstrBotDevs/AstrBot/pull/7920))
- 优化 Provider 模型添加逻辑、模型启用开关持久化、Provider 测试失败提示,以及默认 Provider 缺失或无效时的启动警告。([#7865](https://github.com/AstrBotDevs/AstrBot/pull/7865), [#7498](https://github.com/AstrBotDevs/AstrBot/pull/7498), [#7934](https://github.com/AstrBotDevs/AstrBot/pull/7934))
- 优化 `send_message_to_user` 在安全模式、cron 主动任务和无完整 session 格式场景下的提示与容错,并为 cron payload 增加 session 信息。([#7907](https://github.com/AstrBotDevs/AstrBot/pull/7907), [#7911](https://github.com/AstrBotDevs/AstrBot/pull/7911))
- 优化 list+options 配置项,改用 `v-autocomplete` 并缓存候选项,改善长列表选择体验。([#7884](https://github.com/AstrBotDevs/AstrBot/pull/7884), [#7885](https://github.com/AstrBotDevs/AstrBot/pull/7885))
- 优化命令与工具描述显示,WebUI 中被截断的描述现在可通过 tooltip 查看。([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838))
- 优化指标统计、日志可读性、知识库文档、系统提示词文档,以及 AGENTS.md 中的 pre-commit 开发说明。([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838), [#7962](https://github.com/AstrBotDevs/AstrBot/issues/7962))
📦 修复
- 修复 `send_message_to_user` 可被普通用户指定任意 session 发送消息的安全问题;普通用户只能发送到当前会话,管理员仍可指定 session。([#7822](https://github.com/AstrBotDevs/AstrBot/issues/7822), [#7824](https://github.com/AstrBotDevs/AstrBot/pull/7824))
- 修复 T2I 文本模板渲染回归,恢复原始文本渲染,默认注入 Shiki runtime,并调整内置模板和 WebUI 预览。([#7789](https://github.com/AstrBotDevs/AstrBot/pull/7789))
- 修复 IME 输入法组合状态下按 Enter 会误发送聊天的问题。([#7845](https://github.com/AstrBotDevs/AstrBot/pull/7845))
- 修复 Anthropic 并行工具结果合并、自定义请求头和 system prompt 兼容性,避免多 httpx 安装导致 client 类型不匹配,并使用列表格式 system 参数提升代理兼容性。([#7875](https://github.com/AstrBotDevs/AstrBot/pull/7875), [#7587](https://github.com/AstrBotDevs/AstrBot/pull/7587))
- 修复 OpenAI Provider 的 `http_client` 与 SDK httpx 类型兼容问题。([#7773](https://github.com/AstrBotDevs/AstrBot/pull/7773))
- 修复 `stop_event()` 后后续 handler 仍继续执行,以及 `clear_result()` 导致停止状态被重置的问题。([#7900](https://github.com/AstrBotDevs/AstrBot/pull/7900), [#7922](https://github.com/AstrBotDevs/AstrBot/pull/7922))
- 修复 `system_prompt` 为 `None` 时注入人格或 skills prompt 会报错的问题。([#7880](https://github.com/AstrBotDevs/AstrBot/pull/7880))
- 修复 Shipyard Neo 沙盒就绪检测和优雅清理,避免未就绪时继续运行或关闭流程异常。([#7881](https://github.com/AstrBotDevs/AstrBot/pull/7881))
- + 7 more
✨ New Features
- Added the CUA Computer Use sandbox runtime with desktop GUI, screenshots, keyboard, mouse, browser startup flow, foreground/background shell support, filesystem fallbacks, permission handling, docs, and tests. ([#7828](https://github.com/AstrBotDevs/AstrBot/pull/7828))
- Added Plugin Pages, allowing plugins to expose Dashboard pages through a `pages/` directory with asset authentication, bridge script, back-button behavior, docs, and security tests. ([#5940](https://github.com/AstrBotDevs/AstrBot/pull/5940))
- Added plugin internationalization support through `.astrbot-plugin/i18n`, including localized names, descriptions, config text, Dashboard integration, docs, and tests. ([#7919](https://github.com/AstrBotDevs/AstrBot/pull/7919))
- Added plugin-provided skills with synchronization, metadata enrichment, plugin detail display, and configuration-aware filtering. ([#7945](https://github.com/AstrBotDevs/AstrBot/pull/7945))
- Added the plugin detail page, plugin short descriptions, plugin pinning, and support for downloading plugins from AstrBot official plugin storage. ([#7896](https://github.com/AstrBotDevs/AstrBot/pull/7896), [#7918](https://github.com/AstrBotDevs/AstrBot/pull/7918), [#7930](https://github.com/AstrBotDevs/AstrBot/pull/7930), [#7931](https://github.com/AstrBotDevs/AstrBot/pull/7931))
- Added background shell command execution with output redirection and timeout support, and added a timeout parameter to the Python tool. ([#7835](https://github.com/AstrBotDevs/AstrBot/pull/7835), [#7953](https://github.com/AstrBotDevs/AstrBot/pull/7953))
- Added `fallback_max_context_tokens`, used when model metadata is missing and `max_context_tokens` is set to 0. ([#7942](https://github.com/AstrBotDevs/AstrBot/pull/7942))
- Added message-level Markdown control for QQ Official. ([#6980](https://github.com/AstrBotDevs/AstrBot/pull/6980))
- + 3 more
📦 Improvements
- Improved the Dashboard extension, knowledge base, MCP, skills, and config pages with better layouts, card styles, responsiveness, translations, and skill-file editing in WebUI. ([#7903](https://github.com/AstrBotDevs/AstrBot/pull/7903))
- Improved tool rendering in conversation history by grouping tool messages into the assistant tool card instead of rendering large tool results as normal Markdown bubbles. ([#7937](https://github.com/AstrBotDevs/AstrBot/pull/7937))
- Improved context management and compression, including truncation behavior, user-message retention, PPIO context-length error detection, and clearer UI copy for execution order. ([#7888](https://github.com/AstrBotDevs/AstrBot/pull/7888), [#7920](https://github.com/AstrBotDevs/AstrBot/pull/7920))
- Improved Provider model adding logic, model enable-toggle persistence, failed provider-test feedback, and startup warnings for missing or invalid default providers. ([#7865](https://github.com/AstrBotDevs/AstrBot/pull/7865), [#7498](https://github.com/AstrBotDevs/AstrBot/pull/7498), [#7934](https://github.com/AstrBotDevs/AstrBot/pull/7934))
- Improved `send_message_to_user` prompts and tolerance in safety mode, cron proactive tasks, and incomplete session formats; cron payloads now include session information. ([#7907](https://github.com/AstrBotDevs/AstrBot/pull/7907), [#7911](https://github.com/AstrBotDevs/AstrBot/pull/7911))
- Improved list+options config fields by switching to `v-autocomplete` and memoizing select items for better long-list selection. ([#7884](https://github.com/AstrBotDevs/AstrBot/pull/7884), [#7885](https://github.com/AstrBotDevs/AstrBot/pull/7885))
- Improved truncated command and tool descriptions in WebUI by adding tooltip access. ([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838))
- Improved metrics, log clarity, knowledge base docs, system prompt docs, and AGENTS.md pre-commit setup guidance. ([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838), [#7962](https://github.com/AstrBotDevs/AstrBot/issues/7962))
🐛 Bug Fixes
- Fixed a security issue where normal users could ask `send_message_to_user` to send messages to arbitrary sessions; normal users are now restricted to the current session while admins can still target other sessions. ([#7822](https://github.com/AstrBotDevs/AstrBot/issues/7822), [#7824](https://github.com/AstrBotDevs/AstrBot/pull/7824))
- Fixed T2I text template rendering by restoring raw text rendering, injecting Shiki runtime by default, and updating built-in templates and preview behavior. ([#7789](https://github.com/AstrBotDevs/AstrBot/pull/7789))
- Fixed Enter key handling during IME composition in chat input. ([#7845](https://github.com/AstrBotDevs/AstrBot/pull/7845))
- Fixed Anthropic parallel tool-result merging, custom headers, and system prompt compatibility by using `default_headers` and list-format system prompts. ([#7875](https://github.com/AstrBotDevs/AstrBot/pull/7875), [#7587](https://github.com/AstrBotDevs/AstrBot/pull/7587))
- Fixed OpenAI Provider `http_client` compatibility with SDK httpx. ([#7773](https://github.com/AstrBotDevs/AstrBot/pull/7773))
- Fixed `stop_event()` allowing later handlers to continue, and fixed stop-state reset caused by `clear_result()`. ([#7900](https://github.com/AstrBotDevs/AstrBot/pull/7900), [#7922](https://github.com/AstrBotDevs/AstrBot/pull/7922))
- Fixed persona and skills prompt injection when `system_prompt` is `None`. ([#7880](https://github.com/AstrBotDevs/AstrBot/pull/7880))
- Fixed Shipyard Neo readiness gating and graceful sandbox cleanup. ([#7881](https://github.com/AstrBotDevs/AstrBot/pull/7881))
- + 6 more
📋 What's Changed
- fix: restore T2I text template rendering by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7789
- feat: add message-level markdown control for QQ Official platform by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/6980
- docs: add pre-commit setup guide to AGENTS.md by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7838
- fix: prevent IME enter from sending chat by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7845
- feat: add CUA computer-use sandbox support by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7828
- feat: add one-line deploy script (deploy-cli.sh) by @EterUltimate in https://github.com/AstrBotDevs/AstrBot/pull/7631
- chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.3 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7857
- feat: add attachment saved event handling in chat and live chat routes by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7869
- + 32 more
✨ New Contributors
- @EterUltimate made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7631
- @ACAne0320 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7865
- @s11IM made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7498
- @10knamesmore made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7885
- @Fronut made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7934
- @Pleiades1726 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7942
- @AstralSolipsism made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7923
- @PinkYuDeer made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7587
- + 1 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- 新增插件自定义 WebUI 页面(Plugin Pages)能力,插件可通过 `pages/` 目录和注册 Web 路由来向 Dashboard 暴露自定义页面。详见开发文档。([#5940](https://github.com/AstrBotDevs/AstrBot/pull/5940))
- 新增插件国际化支持,插件可在 `.astrbot-plugin/i18n` 中提供多语言名称、描述和配置文本,Dashboard 组件会按当前语言解析展示。详见开发文档。([#7919](https://github.com/AstrBotDevs/AstrBot/pull/7919))
- 新增插件技能支持,插件可通过 `skills/` 提供 skills。([#7945](https://github.com/AstrBotDevs/AstrBot/pull/7945))。详见开发文档。
- 新增 `extra_user_content_parts` 临时内容标记,插件可使用 `TextPart(...).mark_as_temp()` 让追加内容只参与本轮 LLM 请求而不写入会话历史。([#7976](https://github.com/AstrBotDevs/AstrBot/pull/7976))。详见插件开发文档。
- 新增插件详情页、插件短描述、插件置顶,以及通过 AstrBot 官方插件存储下载插件的能力,改善插件安装与浏览体验。([#7896](https://github.com/AstrBotDevs/AstrBot/pull/7896), [#7918](https://github.com/AstrBotDevs/AstrBot/pull/7918), [#7930](https://github.com/AstrBotDevs/AstrBot/pull/7930), [#7931](https://github.com/AstrBotDevs/AstrBot/pull/7931))
- 新增 `fallback_max_context_tokens` 配置,当模型元数据缺失且 `max_context_tokens` 为 0 时,可使用默认上下文窗口上限参与压缩判断。该值默认为 `128k`。([#7942](https://github.com/AstrBotDevs/AstrBot/pull/7942))
- 支持在 WebUI Skills 页中查看并编辑技能文件。([#7903](https://github.com/AstrBotDevs/AstrBot/pull/7903))
- 新增 CUA Computer Use 沙盒运行时,支持桌面 GUI、截图、键盘、鼠标、浏览器启动流程、前后台 Shell、文件回退处理与权限控制,并补充使用文档和测试。([#7828](https://github.com/AstrBotDevs/AstrBot/pull/7828))
- + 4 more
📦 优化
- 优化 Dashboard 扩展、知识库、MCP、技能和配置页面的布局、卡片样式、响应式表现与多语言文案。([#7903](https://github.com/AstrBotDevs/AstrBot/pull/7903))
- 优化会话历史中的工具调用渲染,工具消息不再作为普通气泡直接进行 Markdown 渲染,而是聚合到对应 assistant 的工具卡片中,避免大工具结果导致页面卡顿。([#7937](https://github.com/AstrBotDevs/AstrBot/pull/7937))
- 优化上下文管理与压缩策略,包括截断算法、用户消息删除问题修复、PPIO 上下文长度错误识别,以及配置界面对执行顺序的说明。([#7888](https://github.com/AstrBotDevs/AstrBot/pull/7888), [#7920](https://github.com/AstrBotDevs/AstrBot/pull/7920))
- 优化 Provider 模型添加逻辑、模型启用开关持久化、Provider 测试失败提示,以及默认 Provider 缺失或无效时的启动警告。([#7865](https://github.com/AstrBotDevs/AstrBot/pull/7865), [#7498](https://github.com/AstrBotDevs/AstrBot/pull/7498), [#7934](https://github.com/AstrBotDevs/AstrBot/pull/7934))
- 优化 `send_message_to_user` 在安全模式、cron 主动任务和无完整 session 格式场景下的提示与容错,并为 cron payload 增加 session 信息。([#7907](https://github.com/AstrBotDevs/AstrBot/pull/7907), [#7911](https://github.com/AstrBotDevs/AstrBot/pull/7911))
- 优化 list+options 配置项,改用 `v-autocomplete` 并缓存候选项,改善长列表选择体验。([#7884](https://github.com/AstrBotDevs/AstrBot/pull/7884), [#7885](https://github.com/AstrBotDevs/AstrBot/pull/7885))
- 优化命令与工具描述显示,WebUI 中被截断的描述现在可通过 tooltip 查看。([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838))
- 优化指标统计、日志可读性、知识库文档、系统提示词文档,以及 AGENTS.md 中的 pre-commit 开发说明。([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838), [#7962](https://github.com/AstrBotDevs/AstrBot/issues/7962))
📦 修复
- 修复 `send_message_to_user` 可被普通用户指定任意 session 发送消息的安全问题;普通用户只能发送到当前会话,管理员仍可指定 session。([#7822](https://github.com/AstrBotDevs/AstrBot/issues/7822), [#7824](https://github.com/AstrBotDevs/AstrBot/pull/7824))
- 修复 T2I 文本模板渲染回归,恢复原始文本渲染,默认注入 Shiki runtime,并调整内置模板和 WebUI 预览。([#7789](https://github.com/AstrBotDevs/AstrBot/pull/7789))
- 修复 IME 输入法组合状态下按 Enter 会误发送聊天的问题。([#7845](https://github.com/AstrBotDevs/AstrBot/pull/7845))
- 修复 Anthropic 并行工具结果合并、自定义请求头和 system prompt 兼容性,避免多 httpx 安装导致 client 类型不匹配,并使用列表格式 system 参数提升代理兼容性。([#7875](https://github.com/AstrBotDevs/AstrBot/pull/7875), [#7587](https://github.com/AstrBotDevs/AstrBot/pull/7587))
- 修复 OpenAI Provider 的 `http_client` 与 SDK httpx 类型兼容问题。([#7773](https://github.com/AstrBotDevs/AstrBot/pull/7773))
- 修复 `stop_event()` 后后续 handler 仍继续执行,以及 `clear_result()` 导致停止状态被重置的问题。([#7900](https://github.com/AstrBotDevs/AstrBot/pull/7900), [#7922](https://github.com/AstrBotDevs/AstrBot/pull/7922))
- 修复 `system_prompt` 为 `None` 时注入人格或 skills prompt 会报错的问题。([#7880](https://github.com/AstrBotDevs/AstrBot/pull/7880))
- 修复 Shipyard Neo 沙盒就绪检测和优雅清理,避免未就绪时继续运行或关闭流程异常。([#7881](https://github.com/AstrBotDevs/AstrBot/pull/7881))
- + 7 more
✨ New Features
- Added the CUA Computer Use sandbox runtime with desktop GUI, screenshots, keyboard, mouse, browser startup flow, foreground/background shell support, filesystem fallbacks, permission handling, docs, and tests. ([#7828](https://github.com/AstrBotDevs/AstrBot/pull/7828))
- Added Plugin Pages, allowing plugins to expose Dashboard pages through a `pages/` directory with asset authentication, bridge script, back-button behavior, docs, and security tests. ([#5940](https://github.com/AstrBotDevs/AstrBot/pull/5940))
- Added plugin internationalization support through `.astrbot-plugin/i18n`, including localized names, descriptions, config text, Dashboard integration, docs, and tests. ([#7919](https://github.com/AstrBotDevs/AstrBot/pull/7919))
- Added plugin-provided skills with synchronization, metadata enrichment, plugin detail display, and configuration-aware filtering. ([#7945](https://github.com/AstrBotDevs/AstrBot/pull/7945))
- Added the plugin detail page, plugin short descriptions, plugin pinning, and support for downloading plugins from AstrBot official plugin storage. ([#7896](https://github.com/AstrBotDevs/AstrBot/pull/7896), [#7918](https://github.com/AstrBotDevs/AstrBot/pull/7918), [#7930](https://github.com/AstrBotDevs/AstrBot/pull/7930), [#7931](https://github.com/AstrBotDevs/AstrBot/pull/7931))
- Added background shell command execution with output redirection and timeout support, and added a timeout parameter to the Python tool. ([#7835](https://github.com/AstrBotDevs/AstrBot/pull/7835), [#7953](https://github.com/AstrBotDevs/AstrBot/pull/7953))
- Added `fallback_max_context_tokens`, used when model metadata is missing and `max_context_tokens` is set to 0. ([#7942](https://github.com/AstrBotDevs/AstrBot/pull/7942))
- Added message-level Markdown control for QQ Official. ([#6980](https://github.com/AstrBotDevs/AstrBot/pull/6980))
- + 3 more
📦 Improvements
- Improved the Dashboard extension, knowledge base, MCP, skills, and config pages with better layouts, card styles, responsiveness, translations, and skill-file editing in WebUI. ([#7903](https://github.com/AstrBotDevs/AstrBot/pull/7903))
- Improved tool rendering in conversation history by grouping tool messages into the assistant tool card instead of rendering large tool results as normal Markdown bubbles. ([#7937](https://github.com/AstrBotDevs/AstrBot/pull/7937))
- Improved context management and compression, including truncation behavior, user-message retention, PPIO context-length error detection, and clearer UI copy for execution order. ([#7888](https://github.com/AstrBotDevs/AstrBot/pull/7888), [#7920](https://github.com/AstrBotDevs/AstrBot/pull/7920))
- Improved Provider model adding logic, model enable-toggle persistence, failed provider-test feedback, and startup warnings for missing or invalid default providers. ([#7865](https://github.com/AstrBotDevs/AstrBot/pull/7865), [#7498](https://github.com/AstrBotDevs/AstrBot/pull/7498), [#7934](https://github.com/AstrBotDevs/AstrBot/pull/7934))
- Improved `send_message_to_user` prompts and tolerance in safety mode, cron proactive tasks, and incomplete session formats; cron payloads now include session information. ([#7907](https://github.com/AstrBotDevs/AstrBot/pull/7907), [#7911](https://github.com/AstrBotDevs/AstrBot/pull/7911))
- Improved list+options config fields by switching to `v-autocomplete` and memoizing select items for better long-list selection. ([#7884](https://github.com/AstrBotDevs/AstrBot/pull/7884), [#7885](https://github.com/AstrBotDevs/AstrBot/pull/7885))
- Improved truncated command and tool descriptions in WebUI by adding tooltip access. ([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838))
- Improved metrics, log clarity, knowledge base docs, system prompt docs, and AGENTS.md pre-commit setup guidance. ([#7838](https://github.com/AstrBotDevs/AstrBot/pull/7838), [#7962](https://github.com/AstrBotDevs/AstrBot/issues/7962))
🐛 Bug Fixes
- Fixed a security issue where normal users could ask `send_message_to_user` to send messages to arbitrary sessions; normal users are now restricted to the current session while admins can still target other sessions. ([#7822](https://github.com/AstrBotDevs/AstrBot/issues/7822), [#7824](https://github.com/AstrBotDevs/AstrBot/pull/7824))
- Fixed T2I text template rendering by restoring raw text rendering, injecting Shiki runtime by default, and updating built-in templates and preview behavior. ([#7789](https://github.com/AstrBotDevs/AstrBot/pull/7789))
- Fixed Enter key handling during IME composition in chat input. ([#7845](https://github.com/AstrBotDevs/AstrBot/pull/7845))
- Fixed Anthropic parallel tool-result merging, custom headers, and system prompt compatibility by using `default_headers` and list-format system prompts. ([#7875](https://github.com/AstrBotDevs/AstrBot/pull/7875), [#7587](https://github.com/AstrBotDevs/AstrBot/pull/7587))
- Fixed OpenAI Provider `http_client` compatibility with SDK httpx. ([#7773](https://github.com/AstrBotDevs/AstrBot/pull/7773))
- Fixed `stop_event()` allowing later handlers to continue, and fixed stop-state reset caused by `clear_result()`. ([#7900](https://github.com/AstrBotDevs/AstrBot/pull/7900), [#7922](https://github.com/AstrBotDevs/AstrBot/pull/7922))
- Fixed persona and skills prompt injection when `system_prompt` is `None`. ([#7880](https://github.com/AstrBotDevs/AstrBot/pull/7880))
- Fixed Shipyard Neo readiness gating and graceful sandbox cleanup. ([#7881](https://github.com/AstrBotDevs/AstrBot/pull/7881))
- + 6 more
📋 What's Changed
- fix: restore T2I text template rendering by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7789
- feat: add message-level markdown control for QQ Official platform by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/6980
- docs: add pre-commit setup guide to AGENTS.md by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7838
- fix: prevent IME enter from sending chat by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7845
- feat: add CUA computer-use sandbox support by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7828
- feat: add one-line deploy script (deploy-cli.sh) by @EterUltimate in https://github.com/AstrBotDevs/AstrBot/pull/7631
- chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.3 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7857
- feat: add attachment saved event handling in chat and live chat routes by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7869
- + 32 more
✨ New Contributors
- @EterUltimate made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7631
- @ACAne0320 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7865
- @s11IM made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7498
- @10knamesmore made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7885
- @Fronut made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7934
- @Pleiades1726 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7942
- @AstralSolipsism made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7923
- @PinkYuDeer made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7587
- + 1 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- 新增 `/stats` 命令,可查看当前会话的 Token 使用统计,并按总量、输入(缓存)、输入(其他)与输出拆分展示。([#7831](https://github.com/AstrBotDevs/AstrBot/pull/7831))
- 新增 Firecrawl Web 搜索与网页提取工具,支持搜索结果处理、网页内容提取、会话管理、请求校验与相关测试。([#7764](https://github.com/AstrBotDevs/AstrBot/pull/7764))
- 微信客服文本消息新增 15 秒内去重,减少重复消息处理。([#7788](https://github.com/AstrBotDevs/AstrBot/pull/7788))
📦 优化
- 优化 Provider 配置界面性能与响应式显示,改善相关组件的字体和布局体验。([#7772](https://github.com/AstrBotDevs/AstrBot/pull/7772))
- 优化统计页 TPM 计算逻辑,TPM 现在仅统计输出 Token,并更新相关文案。([#7827](https://github.com/AstrBotDevs/AstrBot/pull/7827))
- 优化 OpenAI 兼容 Provider 的空 assistant 消息过滤逻辑,流式与非流式路径统一处理空字符串和空列表内容,避免严格 Provider 拒绝历史消息。([#7758](https://github.com/AstrBotDevs/AstrBot/pull/7758))
📦 修复
- 修复 DeepSeek v4 与 reasoning content 相关处理,支持空字符串 reasoning 内容,并在 assistant 消息中保留 reasoning 字段。([#7823](https://github.com/AstrBotDevs/AstrBot/pull/7823), [#7830](https://github.com/AstrBotDevs/AstrBot/pull/7830))
- 修复 OpenRouter reasoning 字段属性名不正确的问题。([#7821](https://github.com/AstrBotDevs/AstrBot/pull/7821))
- 修复超大图片未压缩可能导致后续处理异常的问题,并复用图片最大尺寸检查工具。([#7807](https://github.com/AstrBotDevs/AstrBot/pull/7807))
- 修复 MiniMax TTS 默认输出 MP3 导致 QQ 官方平台语音转换出现 RIFF 错误的问题,默认输出格式改为 WAV。([#7797](https://github.com/AstrBotDevs/AstrBot/pull/7797))
- 修复 Computer 沙盒图片下载未按图片发送的问题。([#7785](https://github.com/AstrBotDevs/AstrBot/pull/7785))
- 修复 Windows 环境下部分 HTTPS 请求证书校验失败的问题,使用 certifi SSL context 提升兼容性。([#7778](https://github.com/AstrBotDevs/AstrBot/pull/7778))
- 修复非安全上下文或部分对话框中复制功能不可用的问题,抽取共享剪贴板工具并增加 fallback。([#7747](https://github.com/AstrBotDevs/AstrBot/pull/7747))
- 修复文件上传可能存在路径穿越的问题,并清理上传文件名中的 NUL 字节。([#7751](https://github.com/AstrBotDevs/AstrBot/pull/7751))
- + 1 more
✨ New Features
- Added a `/stats` command to show token usage for the current conversation, including total tokens, input cached tokens, input other tokens, and output tokens. ([#7831](https://github.com/AstrBotDevs/AstrBot/pull/7831))
- Added Firecrawl web search and web extract tools with result handling, content extraction, session management, payload validation, and tests. ([#7764](https://github.com/AstrBotDevs/AstrBot/pull/7764))
- Added 15-second deduplication for WeChat kefu text messages to reduce duplicate message handling. ([#7788](https://github.com/AstrBotDevs/AstrBot/pull/7788))
📦 Improvements
- Improved the Provider configuration UI performance and responsive layout, including font and component styling updates. ([#7772](https://github.com/AstrBotDevs/AstrBot/pull/7772))
- Updated stats-page TPM calculation so TPM only counts output tokens, with matching label updates. ([#7827](https://github.com/AstrBotDevs/AstrBot/pull/7827))
- Improved empty assistant message filtering for OpenAI-compatible providers by sharing the logic across streaming and non-streaming paths and handling empty string or empty list content. ([#7758](https://github.com/AstrBotDevs/AstrBot/pull/7758))
🐛 Bug Fixes
- Fixed DeepSeek v4 and reasoning content handling by supporting empty-string reasoning content and preserving the reasoning field in assistant messages. ([#7823](https://github.com/AstrBotDevs/AstrBot/pull/7823), [#7830](https://github.com/AstrBotDevs/AstrBot/pull/7830))
- Fixed the reasoning field attribute used for OpenRouter. ([#7821](https://github.com/AstrBotDevs/AstrBot/pull/7821))
- Fixed oversized image handling by downscaling large images and sharing the image max-size check helper. ([#7807](https://github.com/AstrBotDevs/AstrBot/pull/7807))
- Fixed MiniMax TTS output for QQ Official voice conversion by changing the default output format from MP3 to WAV. ([#7797](https://github.com/AstrBotDevs/AstrBot/pull/7797))
- Fixed Computer sandbox image downloads so they are sent as images. ([#7785](https://github.com/AstrBotDevs/AstrBot/pull/7785))
- Fixed HTTPS certificate verification issues on Windows by using a certifi SSL context. ([#7778](https://github.com/AstrBotDevs/AstrBot/pull/7778))
- Fixed copy actions in insecure contexts and dialogs by extracting a shared clipboard utility with fallback behavior. ([#7747](https://github.com/AstrBotDevs/AstrBot/pull/7747))
- Fixed path traversal risks in file uploads and removed embedded NUL bytes from upload filenames. ([#7751](https://github.com/AstrBotDevs/AstrBot/pull/7751))
📋 What's Changed
- fix: prevent path traversal in file uploads by @bugkeep in https://github.com/AstrBotDevs/AstrBot/pull/7751
- fix: 在非安全上下文中为 copyMessage 添加 execCommand 备用方案 by @alonguser in https://github.com/AstrBotDevs/AstrBot/pull/7747
- perf: improve provider config ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7772
- feat: add deduplication for WeChat kefu text messages within 15 seconds by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7788
- fix: use certifi ssl context on Windows by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/7778
- fix(computer): send sandbox image downloads as images by @RhoninSeiei in https://github.com/AstrBotDevs/AstrBot/pull/7785
- feat: add Firecrawl web search tools by @wjiajian in https://github.com/AstrBotDevs/AstrBot/pull/7764
- fix(openai): apply empty-assistant filter to streaming path by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7758
- + 7 more
✨ New Contributors
- @bugkeep made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7751
- @alonguser made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7747
- @lingyun14beta made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7778
- @wjiajian made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7764
- @enemywind-zm made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7797
- Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.5...v4.23.6
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- WebUI ChatUI 新增消息重新编辑、从重新生成 AI 回复、分支询问面板(划选 AI 回复内容即可看到)与会话 checkpoint 支持。([#7673](https://github.com/AstrBotDevs/AstrBot/pull/7673))
- WebUI ChatUI 适配思考时的工具调用的模式,并自动将该 Loop 过程合并到独立的侧边栏面板中,以时间线呈现,大幅提升用户体验。([#7742](https://github.com/AstrBotDevs/AstrBot/pull/7742))
- WebUI ChatUI 附件处理新增预览与 Dedup 校验,改善上传前的附件识别与展示体验,修复用户消息气泡无法正常显示图片的问题。([commit](https://github.com/AstrBotDevs/AstrBot/commit/0748f0a42))
- 知识库文档上传新增 EPUB 支持,并补充 EPUB 解析、文件读取与相关测试。([#7594](https://github.com/AstrBotDevs/AstrBot/pull/7594))
- 非流式 Agent Loop 新增中间工具调用消息过程折叠发送功能。([#7627](https://github.com/AstrBotDevs/AstrBot/pull/7627))
- 重新内置 `/provider` 命令,支持通过命令管理与查看 Provider 相关信息。([#7691](https://github.com/AstrBotDevs/AstrBot/pull/7691))
- 插件页新增“有新版本时置顶显示”能力,并支持保存该偏好设置。([#7665](https://github.com/AstrBotDevs/AstrBot/pull/7665))
📦 优化
- 优化 FileReadTool 描述,明确图片、PDF 与 DOCX 支持,并增强工具结果的模态能力检查。([#7506](https://github.com/AstrBotDevs/AstrBot/pull/7506))
- 统一多处文档链接,修正 CLI、配置、Dashboard 与知识库页面中的文档入口。([#7709](https://github.com/AstrBotDevs/AstrBot/pull/7709))
📦 修复
- 修复部分国内或自定义 OpenAI/Anthropic 兼容模型提供商因 TLS 证书链、代理或模型列表能力差异导致配置不可用的问题。([#7685](https://github.com/AstrBotDevs/AstrBot/pull/7685))
- 修复模型回复包含 reasoning content 时可能漏发普通回复的问题。([#7715](https://github.com/AstrBotDevs/AstrBot/pull/7715))
- 修复 QQ 官方 API 在 DNS 或连接瞬时异常下缺少重试导致请求失败的问题。([#7718](https://github.com/AstrBotDevs/AstrBot/pull/7718))
- 修复 `RegexFilter` 不能同时接受 `str` 与 `re.Pattern` 的问题。([#7633](https://github.com/AstrBotDevs/AstrBot/pull/7633))
- 修复备份导入器存在路径穿越风险的问题。([#7681](https://github.com/AstrBotDevs/AstrBot/pull/7681))
- 修复旧版 `documents_fts` 表残留时可能影响知识库 FTS 迁移的问题。([#7706](https://github.com/AstrBotDevs/AstrBot/pull/7706))
- 修复 MiniMax Token Plan Provider 在已配置模型不在硬编码列表中时直接阻塞的问题,改为警告提示。([#7692](https://github.com/AstrBotDevs/AstrBot/pull/7692))
- 修复 MCP schema 中无效 `required` 字段未被规范化导致工具 schema 异常的问题。([#6077](https://github.com/AstrBotDevs/AstrBot/pull/6077))
- + 2 more
✨ New Features
- Added inline message editing, regeneration from a selected message, a thread panel, and conversation checkpoint support to the WebUI chat page. ([#7673](https://github.com/AstrBotDevs/AstrBot/pull/7673))
- Added chat attachment previews and file signature checks in WebUI to improve attachment recognition and display before upload. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/0748f0a42))
- Added buffered intermediate messages for the non-streaming Agent Loop, allowing process messages such as tool calls to be surfaced in non-streaming scenarios. ([#7627](https://github.com/AstrBotDevs/AstrBot/pull/7627))
- Reintroduced `/provider` as a built-in command for viewing and managing Provider-related information. ([#7691](https://github.com/AstrBotDevs/AstrBot/pull/7691))
- Added an option to pin installed plugins with available updates to the top of the plugin page, with persisted preference storage. ([#7665](https://github.com/AstrBotDevs/AstrBot/pull/7665))
- Added EPUB support for knowledge-base document upload, including EPUB parsing, file reading support, and tests. ([#7594](https://github.com/AstrBotDevs/AstrBot/pull/7594))
📦 Improvements
- Updated the FileReadTool description to mention image, PDF, and DOCX support, and improved modality checks for tool results. ([#7506](https://github.com/AstrBotDevs/AstrBot/pull/7506))
- Unified documentation links across CLI output, configuration, Dashboard, and knowledge-base pages. ([#7709](https://github.com/AstrBotDevs/AstrBot/pull/7709))
🐛 Bug Fixes
- Fixed missing normal replies when model output contains reasoning content. ([#7715](https://github.com/AstrBotDevs/AstrBot/pull/7715))
- Added retries for transient DNS and connection errors in the QQ Official API flow. ([#7718](https://github.com/AstrBotDevs/AstrBot/pull/7718))
- Fixed `RegexFilter` so it accepts both `str` and `re.Pattern`. ([#7633](https://github.com/AstrBotDevs/AstrBot/pull/7633))
- Fixed a path traversal vulnerability in the backup importer. ([#7681](https://github.com/AstrBotDevs/AstrBot/pull/7681))
- Dropped legacy `documents_fts` tables when present to avoid knowledge-base FTS migration issues. ([#7706](https://github.com/AstrBotDevs/AstrBot/pull/7706))
- Fixed configuration failures for some domestic or custom OpenAI/Anthropic-compatible model providers caused by TLS certificate chains, proxy handling, or model-list capability differences. ([#7685](https://github.com/AstrBotDevs/AstrBot/pull/7685))
- Changed MiniMax Token Plan Provider behavior to warn instead of blocking when a configured model is not in the hardcoded model list. ([#7692](https://github.com/AstrBotDevs/AstrBot/pull/7692))
- Normalized invalid `required` flags in MCP schemas to avoid tool schema errors. ([#6077](https://github.com/AstrBotDevs/AstrBot/pull/6077))
- + 1 more
📋 What's Changed
- fix: handle video attachment for llm by @xunxiing in https://github.com/AstrBotDevs/AstrBot/pull/7679
- fix: normalize invalid MCP required flags in MCP schemas by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6077
- feat: add epub support for knowledge base document upload by @Aster-amellus in https://github.com/AstrBotDevs/AstrBot/pull/7594
- feat: 插件有新版本时置顶显示(可开关) by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7665
- fix: warn instead of blocking when configured model not in hardcoded list by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7692
- fix: 修复了国内配置一些模型不可用问题 by @hjdhnx in https://github.com/AstrBotDevs/AstrBot/pull/7685
- fix: drop legacy documents_fts table if exists by @Sisyphbaous-DT-Project in https://github.com/AstrBotDevs/AstrBot/pull/7706
- feat: re-establishing /provider as a built-in command by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7691
- + 11 more
✨ New Contributors
- @hjdhnx made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7685
- @Sisyphbaous-DT-Project made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7706
- @sebastiondev made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7681
- @ShadowLemoon made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7633
- Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.2...v4.23.5
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- 知识库稀疏检索阶段新增 SQLite FTS5 支持,大幅优化万到十万级别分块时造成的召回时的显著卡顿。([#7648](https://github.com/AstrBotDevs/AstrBot/pull/7648))
- KOOK 平台新增角色提及支持,包含角色记录、事件解析、API 类型与相关测试。([#7626](https://github.com/AstrBotDevs/AstrBot/pull/7626))
- 新增 MiniMax Token Plan Provider。([#7609](https://github.com/AstrBotDevs/AstrBot/pull/7609))
- 新增 `on_agent_begin`、`on_using_llm_tool`、`on_llm_tool_respond`、`on_agent_done` 插件事件钩子,并更新插件开发文档。([#7540](https://github.com/AstrBotDevs/AstrBot/pull/7540))
- 为 t2i 模板启用 Shiki 代码高亮,并新增 VitePress 风格模板。([#7501](https://github.com/AstrBotDevs/AstrBot/pull/7501))
📦 优化
- 优化 `EmptyModelOutputError` 处理,不再严格强制校验模型工具输出的名字是否符合工具集,采用引导的方式让模型输出正确的工具调用。([#7375](https://github.com/AstrBotDevs/AstrBot/pull/7375))
- 优化 `SendMessageToUserTool` 工具在本地 workspace root 内解析相对文件路径的问题。([#7668](https://github.com/AstrBotDevs/AstrBot/pull/7668))
📦 修复
- 修复 Bocha 搜索返回 Brotli 压缩内容时出现 `Can not decode content-encoding: br` 的问题。([#7655](https://github.com/AstrBotDevs/AstrBot/pull/7655))
- 修复微信个人号主动 Cron 发送时 `context_token` 未持久化的问题。([#7595](https://github.com/AstrBotDevs/AstrBot/pull/7595))
- 修复 Anthropic Provider 默认 `max_tokens` 偏小导致工具调用输出文件操作时造成大量截断的问题。([#7593](https://github.com/AstrBotDevs/AstrBot/pull/7593))
- 修复 Cron `last_run_at` 在 Dashboard 中未按本地时区显示的问题。([#7625](https://github.com/AstrBotDevs/AstrBot/pull/7625))
- 修复 Cron 工具调度失败时静默继续的问题,并在失败时返回明确错误给模型。([#7513](https://github.com/AstrBotDevs/AstrBot/pull/7513))
- 修复 Telegram 媒体组异常被静默吞掉的问题。([#7537](https://github.com/AstrBotDevs/AstrBot/pull/7537))
- 修复会话限流计数为 0 时可能触发 `IndexError` 的问题。([#7635](https://github.com/AstrBotDevs/AstrBot/pull/7635))
- 修复知识库上传错误处理与错误提示,提升失败时的可诊断性。([#7534](https://github.com/AstrBotDevs/AstrBot/pull/7534), [#7536](https://github.com/AstrBotDevs/AstrBot/pull/7536))
- + 6 more
✨ New Features
- Added SQLite FTS5 support to the knowledge-base sparse retrieval stage, greatly reducing recall latency for knowledge bases with tens of thousands to hundreds of thousands of chunks. ([#7648](https://github.com/AstrBotDevs/AstrBot/pull/7648))
- Added KOOK role mention support, including role records, event parsing, API types, and tests. ([#7626](https://github.com/AstrBotDevs/AstrBot/pull/7626))
- Added the MiniMax Token Plan Provider. ([#7609](https://github.com/AstrBotDevs/AstrBot/pull/7609))
- Added plugin event hooks for `on_agent_begin`, `on_using_llm_tool`, `on_llm_tool_respond`, and `on_agent_done`, with updated plugin development docs. ([#7540](https://github.com/AstrBotDevs/AstrBot/pull/7540))
- Enabled Shiki highlighting for t2i templates and added a VitePress-style template. ([#7501](https://github.com/AstrBotDevs/AstrBot/pull/7501))
📦 Improvements
- Improved `EmptyModelOutputError` handling by no longer strictly enforcing whether model tool output names match the tool set, and instead guiding the model toward valid tool calls. ([#7375](https://github.com/AstrBotDevs/AstrBot/pull/7375))
- Improved relative file path resolution within the local workspace root for `SendMessageToUserTool`. ([#7668](https://github.com/AstrBotDevs/AstrBot/pull/7668))
🐛 Bug Fixes
- Fixed Bocha search failures caused by Brotli-compressed responses reporting `Can not decode content-encoding: br`. ([#7655](https://github.com/AstrBotDevs/AstrBot/pull/7655))
- Fixed `context_token` persistence for proactive Cron sends in the Weixin OC adapter. ([#7595](https://github.com/AstrBotDevs/AstrBot/pull/7595))
- Increased the Anthropic Provider default `max_tokens` value to avoid heavy truncation during tool-call output for file operations. ([#7593](https://github.com/AstrBotDevs/AstrBot/pull/7593))
- Displayed Cron `last_run_at` in the local timezone in Dashboard. ([#7625](https://github.com/AstrBotDevs/AstrBot/pull/7625))
- Returned explicit errors to the model when Cron tool scheduling fails instead of continuing silently. ([#7513](https://github.com/AstrBotDevs/AstrBot/pull/7513))
- Prevented Telegram media group exceptions from being silently swallowed. ([#7537](https://github.com/AstrBotDevs/AstrBot/pull/7537))
- Fixed an `IndexError` when session `rate_limit_count` is 0. ([#7635](https://github.com/AstrBotDevs/AstrBot/pull/7635))
- Improved knowledge-base upload error handling and error messages for better diagnostics. ([#7534](https://github.com/AstrBotDevs/AstrBot/pull/7534), [#7536](https://github.com/AstrBotDevs/AstrBot/pull/7536))
- + 5 more
📋 What's Changed
- chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7524
- perf(ci): improve dashboard and docs ci to pnpm and cache by @kyangconn in https://github.com/AstrBotDevs/AstrBot/pull/7522
- fix: improve knowledge base upload error messages by @catDforD in https://github.com/AstrBotDevs/AstrBot/pull/7534
- fix: improve error handling for knowledge base upload by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/7536
- feat: enable shiki highlighting for t2i templates and add a template by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7501
- feat: add on_agent_begin, on_using_llm_tool, on_llm_tool_respond, on_agent_done event hooks by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7540
- fix(dashboard): resolve chat attachment 401 by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7569
- fix: prevent numeric input from resetting to zero on blur without edit by @3351163616 in https://github.com/AstrBotDevs/AstrBot/pull/7560
- + 18 more
✨ New Contributors
- @3351163616 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7560
- @SweetenedSuzuka made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7595
- @Hongbro886 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7513
- @Blueteemo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7609
- @alicesainta made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7602
- @bobo-xxx made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7635
- @MostimaBridges made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7667
- @MagicSun7940 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7655
- + 2 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📋 What's Changed
- *这是 v4.23.0 的热修复版本:v4.23.1*
- 将 `python-ripgrep` 依赖降级到 `0.0.8`,修复 Python 3.13, 3.14 版本无法正常启动的问题。([#7514](https://github.com/AstrBotDevs/AstrBot/pull/7514))
- 修复会话 ID 包含冒号 `:` 时,平台路由在 Dashboard 中无法显示的问题。([#7517](https://github.com/AstrBotDevs/AstrBot/pull/7517))
- 适配 DeerFlow 2.0,更新 DeerFlow Runner、API Client、会话命令、Provider 管理逻辑、配置文档与相关测试。([#7500](https://github.com/AstrBotDevs/AstrBot/pull/7500))
- 移除 Dashboard `v-main` 不必要的 margin,额外的外边距会把背景色显露出来,因此视觉上看起来像右侧多了一条边框。([#7481](https://github.com/AstrBotDevs/AstrBot/pull/7481))
- 修复插件安装状态检查时格式不一致导致的判断问题。([#7493](https://github.com/AstrBotDevs/AstrBot/pull/7493))
- Dashboard 代码块高亮切换到 Shiki,并同步暗色/亮色主题渲染,优化 README、更新日志与聊天消息中的代码块显示效果。([#7497](https://github.com/AstrBotDevs/AstrBot/pull/7497))
📦 新增 (v4.23.0)
- 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- 微信个人号适配器支持引用消息的解析。([#7380](https://github.com/AstrBotDevs/AstrBot/pull/7380))
- 新增 Brave Search 网页搜索工具,移除旧的默认网页搜索实现。([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- 新增 Mattermost 平台适配器支持。([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- 新增 NVIDIA Rerank Provider。([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- 新增 LongCat LLM Provider。([#7360](https://github.com/AstrBotDevs/AstrBot/pull/7360))
- 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。([#6505](https://github.com/AstrBotDevs/AstrBot/pull/6505))
- + 2 more
📦 优化 (v4.23.0)
- 重构 ChatUI 样式、消息渲染与输入体验,改善聊天界面的整体可维护性与交互一致性。([#7485](https://github.com/AstrBotDevs/AstrBot/pull/7485))
- 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- 移除了大部分低频内置命令并整合命令功能,将这些指令挪至 [builtin-command-extension](https://github.com/AstrBotDevs/builtin_commands_extension) 插件,同时更新文档。([#7478](https://github.com/AstrBotDevs/AstrBot/pull/7478))
- 移除默认网页搜索实现,改由新的搜索工具链路提供能力。([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- 移除 `lxml` 与 `beautifulsoup4` 依赖,降低安装体积与依赖复杂度。([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- 新增 MCP stdio 配置校验,降低无效配置导致的启动失败与排查成本。([#7477](https://github.com/AstrBotDevs/AstrBot/pull/7477))
- Docker 运行配置启用 `no-new-privileges`,提升容器默认安全性。([commit](https://github.com/AstrBotDevs/AstrBot/commit/68a195e12))
- + 4 more
📦 修复 (v4.23.0)
- 修复 STT 或 TTS Provider 在配置中禁用时仍可能被取用的问题。([#7363](https://github.com/AstrBotDevs/AstrBot/pull/7363))
- 修复 Gemini 空模型输出误触发错误处理的问题。([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- 修复 Gemini FunctionResponse 中不支持的 `id` 字段导致请求失败的问题。([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- 修复仅存在原生工具时仍传递 `FunctionCallingConfig` 的问题。([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- 修复工具结果断言与动态阈值不一致的问题。([commit](https://github.com/AstrBotDevs/AstrBot/commit/8c6c00ae6))
- 修复 Bailian Rerank 对不同 URL 端点返回格式的兼容性问题。([#7250](https://github.com/AstrBotDevs/AstrBot/pull/7250))
- 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- 修复 Telegram 网络异常后的轮询恢复问题,并补充相关测试。([#7468](https://github.com/AstrBotDevs/AstrBot/pull/7468))
- + 19 more
📋 What's Changed (EN)
- *hotfix of v4.23.0*
- Fixed inconsistent format handling when checking whether a plugin is installed. ([#7493](https://github.com/AstrBotDevs/AstrBot/pull/7493))
- Downgraded `python-ripgrep` to `0.0.8` to fix dependency compatibility issues. ([#7514](https://github.com/AstrBotDevs/AstrBot/pull/7514))
- Fixed platform routes not being displayed in Dashboard when the session ID contains a colon `:`. ([#7517](https://github.com/AstrBotDevs/AstrBot/pull/7517))
- Switched Dashboard code-block highlighting to Shiki, synchronized dark/light theme rendering, and improved code-block display in README, changelog, and chat messages. ([#7497](https://github.com/AstrBotDevs/AstrBot/pull/7497))
- Aligned the DeerFlow runner with DeerFlow 2.0, including updates to the runner, API client, conversation commands, provider management, documentation, and tests. ([#7500](https://github.com/AstrBotDevs/AstrBot/pull/7500))
- Removed unnecessary `v-main` margins in Dashboard for more consistent layout across viewports. ([#7481](https://github.com/AstrBotDevs/AstrBot/pull/7481))
- Updated the smoke test workflow to cover multiple operating systems and Python versions, and added a startup check script. ([#7514](https://github.com/AstrBotDevs/AstrBot/pull/7514))
✨ New Features (v4.23.0)
- Added the LongCat LLM Provider. ([#7360](https://github.com/AstrBotDevs/AstrBot/pull/7360))
- Added missing Matrix platform constants, platform logo, and documentation updates. ([#7368](https://github.com/AstrBotDevs/AstrBot/pull/7368))
- Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. ([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- Added the Brave Search web search tool, replacing the old default web search implementation. ([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- Added Mattermost platform support. ([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- Added the NVIDIA Rerank Provider. ([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- Added audio input support across OpenAI and Gemini providers, and fixed ChatUI recording issues. ([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Added reply component support for the Weixin OC adapter. ([#7380](https://github.com/AstrBotDevs/AstrBot/pull/7380))
- + 3 more
📦 Improvements (v4.23.0)
- Refactored ChatUI styling, message rendering, and input interactions for better maintainability and UI consistency. ([#7485](https://github.com/AstrBotDevs/AstrBot/pull/7485))
- Merged Cron tools into a unified management tool and added Cron task editing. ([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- Refactored built-in tool management to improve registration and maintenance. ([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- Removed rarely used built-in commands, consolidated command functionality, and updated command documentation. ([#7478](https://github.com/AstrBotDevs/AstrBot/pull/7478))
- Removed the old default web search implementation in favor of the new search tool flow. ([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- Removed `lxml` and `beautifulsoup4` dependencies to reduce dependency weight and installation complexity. ([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- Added MCP stdio configuration validation to reduce startup failures caused by invalid configs. ([#7477](https://github.com/AstrBotDevs/AstrBot/pull/7477))
- Enabled `no-new-privileges` in Docker runtime configuration to improve default container security. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/68a195e12))
- + 4 more
🐛 Bug Fixes (v4.23.0)
- Returned `None` when STT or TTS providers are disabled in config instead of still resolving them. ([#7363](https://github.com/AstrBotDevs/AstrBot/pull/7363))
- Fixed empty model output handling that could misfire when using Gemini. ([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- Removed the unsupported `id` field from Gemini FunctionResponse payloads. ([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- Skipped `FunctionCallingConfig` when only native tools are present. ([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- Updated tool-result assertions to match dynamic threshold values. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/8c6c00ae6))
- Fixed Bailian Rerank compatibility with different response formats based on URL endpoint. ([#7250](https://github.com/AstrBotDevs/AstrBot/pull/7250))
- Cleaned up QQ Official WebSocket shutdown handling. ([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- Fixed Telegram polling recovery after network failures and added related tests. ([#7468](https://github.com/AstrBotDevs/AstrBot/pull/7468))
- + 19 more
📦 新增
- 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- 微信个人号适配器支持引用消息的解析。([#7380](https://github.com/AstrBotDevs/AstrBot/pull/7380))
- 新增 Brave Search 网页搜索工具,移除旧的默认网页搜索实现。([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- 新增 Mattermost 平台适配器支持。([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- 新增 NVIDIA Rerank Provider。([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- 新增 LongCat LLM Provider。([#7360](https://github.com/AstrBotDevs/AstrBot/pull/7360))
- 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。([#6505](https://github.com/AstrBotDevs/AstrBot/pull/6505))
- + 2 more
📦 优化
- 重构 ChatUI 样式、消息渲染与输入体验,改善聊天界面的整体可维护性与交互一致性。([#7485](https://github.com/AstrBotDevs/AstrBot/pull/7485))
- 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- 移除了大部分低频内置命令并整合命令功能,将这些指令挪至 [builtin-command-extension](https://github.com/AstrBotDevs/builtin_commands_extension) 插件,同时更新文档。([#7478](https://github.com/AstrBotDevs/AstrBot/pull/7478))
- 移除默认网页搜索实现,改由新的搜索工具链路提供能力。([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- 移除 `lxml` 与 `beautifulsoup4` 依赖,降低安装体积与依赖复杂度。([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- 新增 MCP stdio 配置校验,降低无效配置导致的启动失败与排查成本。([#7477](https://github.com/AstrBotDevs/AstrBot/pull/7477))
- Docker 运行配置启用 `no-new-privileges`,提升容器默认安全性。([commit](https://github.com/AstrBotDevs/AstrBot/commit/68a195e12))
- + 4 more
📦 修复
- 修复 STT 或 TTS Provider 在配置中禁用时仍可能被取用的问题。([#7363](https://github.com/AstrBotDevs/AstrBot/pull/7363))
- 修复 Gemini 空模型输出误触发错误处理的问题。([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- 修复 Gemini FunctionResponse 中不支持的 `id` 字段导致请求失败的问题。([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- 修复仅存在原生工具时仍传递 `FunctionCallingConfig` 的问题。([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- 修复工具结果断言与动态阈值不一致的问题。([commit](https://github.com/AstrBotDevs/AstrBot/commit/8c6c00ae6))
- 修复 Bailian Rerank 对不同 URL 端点返回格式的兼容性问题。([#7250](https://github.com/AstrBotDevs/AstrBot/pull/7250))
- 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- 修复 Telegram 网络异常后的轮询恢复问题,并补充相关测试。([#7468](https://github.com/AstrBotDevs/AstrBot/pull/7468))
- + 19 more
✨ New Features
- Added the LongCat LLM Provider. ([#7360](https://github.com/AstrBotDevs/AstrBot/pull/7360))
- Added missing Matrix platform constants, platform logo, and documentation updates. ([#7368](https://github.com/AstrBotDevs/AstrBot/pull/7368))
- Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. ([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- Added the Brave Search web search tool, replacing the old default web search implementation. ([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- Added Mattermost platform support. ([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- Added the NVIDIA Rerank Provider. ([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- Added audio input support across OpenAI and Gemini providers, and fixed ChatUI recording issues. ([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Added reply component support for the Weixin OC adapter. ([#7380](https://github.com/AstrBotDevs/AstrBot/pull/7380))
- + 3 more
📦 Improvements
- Refactored ChatUI styling, message rendering, and input interactions for better maintainability and UI consistency. ([#7485](https://github.com/AstrBotDevs/AstrBot/pull/7485))
- Merged Cron tools into a unified management tool and added Cron task editing. ([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- Refactored built-in tool management to improve registration and maintenance. ([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- Removed rarely used built-in commands, consolidated command functionality, and updated command documentation. ([#7478](https://github.com/AstrBotDevs/AstrBot/pull/7478))
- Removed the old default web search implementation in favor of the new search tool flow. ([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- Removed `lxml` and `beautifulsoup4` dependencies to reduce dependency weight and installation complexity. ([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- Added MCP stdio configuration validation to reduce startup failures caused by invalid configs. ([#7477](https://github.com/AstrBotDevs/AstrBot/pull/7477))
- Enabled `no-new-privileges` in Docker runtime configuration to improve default container security. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/68a195e12))
- + 4 more
🐛 Bug Fixes
- Returned `None` when STT or TTS providers are disabled in config instead of still resolving them. ([#7363](https://github.com/AstrBotDevs/AstrBot/pull/7363))
- Fixed empty model output handling that could misfire when using Gemini. ([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- Removed the unsupported `id` field from Gemini FunctionResponse payloads. ([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- Skipped `FunctionCallingConfig` when only native tools are present. ([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- Updated tool-result assertions to match dynamic threshold values. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/8c6c00ae6))
- Fixed Bailian Rerank compatibility with different response formats based on URL endpoint. ([#7250](https://github.com/AstrBotDevs/AstrBot/pull/7250))
- Cleaned up QQ Official WebSocket shutdown handling. ([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- Fixed Telegram polling recovery after network failures and added related tests. ([#7468](https://github.com/AstrBotDevs/AstrBot/pull/7468))
- + 18 more
📋 What's Changed (Details)
- chore: switch dashboard code blocks highlight to shiki by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7497
- fix: inconsistent format issue when checking if the plugin is installed by @Waterwzy in https://github.com/AstrBotDevs/AstrBot/pull/7493
- fix: remove unnecessary margins from v-main for consistent layout by @Saramanda9988 in https://github.com/AstrBotDevs/AstrBot/pull/7481
- fix: align deerflow runner with deerflow 2.0 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7500
- fix: downgrade python-ripgrep version to 0.0.8 in dependencies by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7514
- fix: routing not displayed when session id includes `:` by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7517
- docs: add usage of `select_knowledgebase` in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
- feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
- + 66 more
✨ New Contributors
- @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
- @Neko-Yukari made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7221
- @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
- @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
- @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
- @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
- @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278
- @KagurazakaNyaa made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7369
- + 11 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- 微信个人号适配器支持引用消息的解析。([#7380](https://github.com/AstrBotDevs/AstrBot/pull/7380))
- 新增 Brave Search 网页搜索工具,移除旧的默认网页搜索实现。([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- 新增 Mattermost 平台适配器支持。([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- 新增 NVIDIA Rerank Provider。([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- 新增 LongCat LLM Provider。([#7360](https://github.com/AstrBotDevs/AstrBot/pull/7360))
- 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。([#6505](https://github.com/AstrBotDevs/AstrBot/pull/6505))
- + 2 more
📦 优化
- 重构 ChatUI 样式、消息渲染与输入体验,改善聊天界面的整体可维护性与交互一致性。([#7485](https://github.com/AstrBotDevs/AstrBot/pull/7485))
- 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- 移除了大部分低频内置命令并整合命令功能,将这些指令挪至 [builtin-command-extension](https://github.com/AstrBotDevs/builtin_commands_extension) 插件,同时更新文档。([#7478](https://github.com/AstrBotDevs/AstrBot/pull/7478))
- 移除默认网页搜索实现,改由新的搜索工具链路提供能力。([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- 移除 `lxml` 与 `beautifulsoup4` 依赖,降低安装体积与依赖复杂度。([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- 新增 MCP stdio 配置校验,降低无效配置导致的启动失败与排查成本。([#7477](https://github.com/AstrBotDevs/AstrBot/pull/7477))
- Docker 运行配置启用 `no-new-privileges`,提升容器默认安全性。([commit](https://github.com/AstrBotDevs/AstrBot/commit/68a195e12))
- + 4 more
📦 修复
- 修复 STT 或 TTS Provider 在配置中禁用时仍可能被取用的问题。([#7363](https://github.com/AstrBotDevs/AstrBot/pull/7363))
- 修复 Gemini 空模型输出误触发错误处理的问题。([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- 修复 Gemini FunctionResponse 中不支持的 `id` 字段导致请求失败的问题。([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- 修复仅存在原生工具时仍传递 `FunctionCallingConfig` 的问题。([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- 修复工具结果断言与动态阈值不一致的问题。([commit](https://github.com/AstrBotDevs/AstrBot/commit/8c6c00ae6))
- 修复 Bailian Rerank 对不同 URL 端点返回格式的兼容性问题。([#7250](https://github.com/AstrBotDevs/AstrBot/pull/7250))
- 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- 修复 Telegram 网络异常后的轮询恢复问题,并补充相关测试。([#7468](https://github.com/AstrBotDevs/AstrBot/pull/7468))
- + 19 more
✨ New Features
- Added the LongCat LLM Provider. ([#7360](https://github.com/AstrBotDevs/AstrBot/pull/7360))
- Added missing Matrix platform constants, platform logo, and documentation updates. ([#7368](https://github.com/AstrBotDevs/AstrBot/pull/7368))
- Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. ([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- Added the Brave Search web search tool, replacing the old default web search implementation. ([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- Added Mattermost platform support. ([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- Added the NVIDIA Rerank Provider. ([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- Added audio input support across OpenAI and Gemini providers, and fixed ChatUI recording issues. ([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Added reply component support for the Weixin OC adapter. ([#7380](https://github.com/AstrBotDevs/AstrBot/pull/7380))
- + 3 more
📦 Improvements
- Refactored ChatUI styling, message rendering, and input interactions for better maintainability and UI consistency. ([#7485](https://github.com/AstrBotDevs/AstrBot/pull/7485))
- Merged Cron tools into a unified management tool and added Cron task editing. ([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- Refactored built-in tool management to improve registration and maintenance. ([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- Removed rarely used built-in commands, consolidated command functionality, and updated command documentation. ([#7478](https://github.com/AstrBotDevs/AstrBot/pull/7478))
- Removed the old default web search implementation in favor of the new search tool flow. ([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- Removed `lxml` and `beautifulsoup4` dependencies to reduce dependency weight and installation complexity. ([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- Added MCP stdio configuration validation to reduce startup failures caused by invalid configs. ([#7477](https://github.com/AstrBotDevs/AstrBot/pull/7477))
- Enabled `no-new-privileges` in Docker runtime configuration to improve default container security. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/68a195e12))
- + 4 more
🐛 Bug Fixes
- Returned `None` when STT or TTS providers are disabled in config instead of still resolving them. ([#7363](https://github.com/AstrBotDevs/AstrBot/pull/7363))
- Fixed empty model output handling that could misfire when using Gemini. ([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- Removed the unsupported `id` field from Gemini FunctionResponse payloads. ([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- Skipped `FunctionCallingConfig` when only native tools are present. ([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- Updated tool-result assertions to match dynamic threshold values. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/8c6c00ae6))
- Fixed Bailian Rerank compatibility with different response formats based on URL endpoint. ([#7250](https://github.com/AstrBotDevs/AstrBot/pull/7250))
- Cleaned up QQ Official WebSocket shutdown handling. ([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- Fixed Telegram polling recovery after network failures and added related tests. ([#7468](https://github.com/AstrBotDevs/AstrBot/pull/7468))
- + 18 more
📋 What's Changed (Details)
- docs: add usage of `select_knowledgebase` in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
- feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
- fix(core): Record.path was incorrectly treated as required under Pydantic v2 by @No-22-Github in https://github.com/AstrBotDevs/AstrBot/pull/7048
- fix: improve number input UX in config renderer by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/7153
- fix: send SSE heartbeat to prevent WebChat disconnect during compression by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7003
- perf: improve ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7178
- chore(deps): bump codecov/codecov-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7209
- Fix cached_tokens handling in _extract_usage method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/6719
- + 60 more
✨ New Contributors
- @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
- @Neko-Yukari made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7221
- @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
- @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
- @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
- @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
- @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278
- @KagurazakaNyaa made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7369
- + 10 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- 新增 Brave Search 网页搜索工具,替代旧的默认网页搜索实现。([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- 新增 Mattermost 平台适配器支持。([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- 新增 NVIDIA Rerank Provider。([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。([#6505](https://github.com/AstrBotDevs/AstrBot/pull/6505))
- 新增 LLM 对重复工具调用的引导能力,减少模型陷入重复调用工具的情况。([#7388](https://github.com/AstrBotDevs/AstrBot/pull/7388))
📦 优化
- 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- 移除默认网页搜索实现,改由新的搜索工具链路提供能力。([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- 移除 `lxml` 与 `beautifulsoup4` 依赖,降低安装体积与依赖复杂度。([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- 降低 MCP Server 状态轮询频率,减少后台请求开销。([#7399](https://github.com/AstrBotDevs/AstrBot/pull/7399))
- 修正文档中的路径拼接示例,避免插件开发存储文档误导使用者。([#7448](https://github.com/AstrBotDevs/AstrBot/pull/7448))
📦 修复
- 修复 Windows 桌面端插件依赖加载不安全或失败的问题。([#7446](https://github.com/AstrBotDevs/AstrBot/pull/7446))
- 修复 Telegram 长消息最终分段过长的问题。([#7432](https://github.com/AstrBotDevs/AstrBot/pull/7432))
- 修复 Telegram `sendMessageDraft` 发送空文本导致 400 错误刷屏的问题。([#7398](https://github.com/AstrBotDevs/AstrBot/pull/7398))
- 修复 Telegram 收集命令时插件 handler 不在 `star_map` 中导致 `KeyError` 的问题。([#7405](https://github.com/AstrBotDevs/AstrBot/pull/7405))
- 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- 修复 Gemini FunctionResponse 中不支持的 `id` 字段导致请求失败的问题。([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- 修复 Gemini 空模型输出误触发错误处理的问题。([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- 修复仅存在原生工具时仍传递 `FunctionCallingConfig` 的问题。([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- + 7 more
✨ New Features
- Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. ([#7402](https://github.com/AstrBotDevs/AstrBot/pull/7402))
- Added the Brave Search web search tool, replacing the old default web search implementation. ([#6847](https://github.com/AstrBotDevs/AstrBot/pull/6847))
- Added Mattermost platform support. ([#7369](https://github.com/AstrBotDevs/AstrBot/pull/7369))
- Added the NVIDIA Rerank Provider. ([#7227](https://github.com/AstrBotDevs/AstrBot/pull/7227))
- Added audio input support across providers and fixed ChatUI recording issues. ([#7378](https://github.com/AstrBotDevs/AstrBot/pull/7378))
- Added configurable Discord bot-message filtering, including support for receiving messages from other bots. ([#6505](https://github.com/AstrBotDevs/AstrBot/pull/6505))
- Added LLM guidance for repeated tool calls to reduce repetitive tool-call loops. ([#7388](https://github.com/AstrBotDevs/AstrBot/pull/7388))
📦 Improvements
- Merged Cron tools into a unified management tool and added Cron task editing. ([#7445](https://github.com/AstrBotDevs/AstrBot/pull/7445))
- Refactored built-in tool management to improve registration and maintenance. ([#7418](https://github.com/AstrBotDevs/AstrBot/pull/7418))
- Removed the old default web search implementation in favor of the new search tool flow. ([#7416](https://github.com/AstrBotDevs/AstrBot/pull/7416))
- Removed `lxml` and `beautifulsoup4` dependencies to reduce dependency weight and installation complexity. ([#7449](https://github.com/AstrBotDevs/AstrBot/pull/7449))
- Reduced MCP Server status polling frequency to lower background request overhead. ([#7399](https://github.com/AstrBotDevs/AstrBot/pull/7399))
- Fixed a path concatenation example in the plugin storage docs. ([#7448](https://github.com/AstrBotDevs/AstrBot/pull/7448))
- Updated the README logo. ([commit](https://github.com/AstrBotDevs/AstrBot/commit/e34d9504))
🐛 Bug Fixes
- Fixed safer desktop plugin dependency loading on Windows. ([#7446](https://github.com/AstrBotDevs/AstrBot/pull/7446))
- Fixed overly long final Telegram message segments. ([#7432](https://github.com/AstrBotDevs/AstrBot/pull/7432))
- Fixed Telegram `sendMessageDraft` 400 spam caused by empty text. ([#7398](https://github.com/AstrBotDevs/AstrBot/pull/7398))
- Fixed a `KeyError` in Telegram command collection when a plugin handler is missing from `star_map`. ([#7405](https://github.com/AstrBotDevs/AstrBot/pull/7405))
- Cleaned up QQ Official WebSocket shutdown handling. ([#7395](https://github.com/AstrBotDevs/AstrBot/pull/7395))
- Removed the unsupported `id` field from Gemini FunctionResponse payloads. ([#7386](https://github.com/AstrBotDevs/AstrBot/pull/7386))
- Fixed empty model output handling that could misfire when using Gemini. ([#7377](https://github.com/AstrBotDevs/AstrBot/pull/7377))
- Skipped `FunctionCallingConfig` when only native tools are present. ([#7407](https://github.com/AstrBotDevs/AstrBot/pull/7407))
- + 6 more
📋 What's Changed
- docs: add usage of `select_knowledgebase` in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
- feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
- fix(core): Record.path was incorrectly treated as required under Pydantic v2 by @No-22-Github in https://github.com/AstrBotDevs/AstrBot/pull/7048
- fix: improve number input UX in config renderer by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/7153
- fix: send SSE heartbeat to prevent WebChat disconnect during compression by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7003
- perf: improve ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7178
- chore(deps): bump codecov/codecov-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7209
- Fix cached_tokens handling in _extract_usage method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/6719
- + 47 more
✨ New Contributors
- @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
- @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
- @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
- @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
- @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
- @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278
- @KagurazakaNyaa made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7369
- @Aster-amellus made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7400
- + 5 more
📋 Changes
- [更新日志(简体中文)](#chinese)
- [Changelog(English)](#english)
📦 新增
- 新增 `vllm_rerank` 提供商支持可配置的 `rerank_api_suffix`,可灵活适配不同 API 路径。([#7278](https://github.com/AstrBotDevs/AstrBot/pull/7278))
- 适配 llama.cpp 的 token 用量提取支持,增强 token 统计与计费分析能力。([#7358](https://github.com/AstrBotDevs/AstrBot/pull/7358))
- WebUI 捆绑 Monaco Editor 的 worker 文件,防止从 CDN 下载失败。([#7249](https://github.com/AstrBotDevs/AstrBot/pull/7249))
- 全新的模型/平台总览统计面板。([#7152](https://github.com/AstrBotDevs/AstrBot/pull/7152))
📦 优化
- 优化 OpenAI 消息处理,若 `content` 列表为空时将其置为 `None`,并降低空内容下的异常率。([#6551](https://github.com/AstrBotDevs/AstrBot/pull/6551))
- 优化 provider page 布局与样式,提升整体设置页面排版一致性。([#7248](https://github.com/AstrBotDevs/AstrBot/pull/7248))
- 用户已登录时将直接跳转欢迎页,减少再次进入登录页的步骤。([commit](https://github.com/AstrBotDevs/AstrBot/commit/9896b48c))
📦 修复
- 修复 Windows 下 MCP runner 未继承完整系统环境变量导致启动异常的问题。([#7054](https://github.com/AstrBotDevs/AstrBot/pull/7054))
- 修复 Gemini 思考片段泄露到用户可见消息链路的问题。([#7196](https://github.com/AstrBotDevs/AstrBot/pull/7196))
- 修复 Gemini(OpenAI 兼容 API) 下,`function_response` 格式要求导致的 `400 Invalid argument` 错误。([#7216](https://github.com/AstrBotDevs/AstrBot/pull/7216)
- 修复知识库初始化失败时的错误提示与恢复问题。([#7243](https://github.com/AstrBotDevs/AstrBot/pull/7243))
- 修复 Bailian Rerank 对新旧响应格式兼容性,避免解析失败。([#7217](https://github.com/AstrBotDevs/AstrBot/pull/7217))
- Docker 镜像补充 AMR 编码器依赖,修复部分部署场景下的音频转码缺失问题。([#7247](https://github.com/AstrBotDevs/AstrBot/pull/7247))
- 修复 pip 安装缺少 `pysocks` 依赖导致的 SOCKS5 代理不可用问题。([#7221](https://github.com/AstrBotDevs/AstrBot/pull/7221))
- 修复 `cached_tokens` 在 `_extract_usage` 中的处理逻辑,避免 token 统计错乱。([#6719](https://github.com/AstrBotDevs/AstrBot/pull/6719))
- + 6 more
✨ New Features
- Added configurable `rerank_api_suffix` for the `vllm_rerank` provider to support custom API paths.([#7278](https://github.com/AstrBotDevs/AstrBot/pull/7278))
- Added token usage extraction support for llama.cpp to improve token accounting.([#7358](https://github.com/AstrBotDevs/AstrBot/pull/7358))
- Bundled Monaco Editor workers in WebUI so code editing does not depend on external CDN downloads.([#7249](https://github.com/AstrBotDevs/AstrBot/pull/7249))
- Added a new statistics overview for model and platform usage.([#7152](https://github.com/AstrBotDevs/AstrBot/pull/7152))
- Redirected logged-in users to the welcome page instead of the login page.([commit](https://github.com/AstrBotDevs/AstrBot/commit/9896b48c))
📦 Improvements
- Improved OpenAI message handling by setting message `content` to `None` when content lists are empty, reducing empty-payload edge cases.([#6551](https://github.com/AstrBotDevs/AstrBot/pull/6551))
- Improved provider page layout and styling to keep settings pages consistent.([#7248](https://github.com/AstrBotDevs/AstrBot/pull/7248))
- Refined connection-success handling and messaging when users are already logged in.([commit](https://github.com/AstrBotDevs/AstrBot/commit/2de23184))
🐛 Bug Fixes
- Inherited all system environment variables in Windows MCP runner to fix environment-dependent launch issues.([#7054](https://github.com/AstrBotDevs/AstrBot/pull/7054))
- Filtered Gemini thinking parts from user-facing message chains.([#7196](https://github.com/AstrBotDevs/AstrBot/pull/7196))
- Fixed Gemini `function_response` compatibility to prevent `400 Invalid argument` responses.([#7216](https://github.com/AstrBotDevs/AstrBot/pull/7216))
- Improved knowledge base initialization error handling.([#7243](https://github.com/AstrBotDevs/AstrBot/pull/7243))
- Fixed Bailian rerank parsing for both old and new response formats.([#7217](https://github.com/AstrBotDevs/AstrBot/pull/7217))
- Added AMR encoder support in Docker builds to fix missing audio codec support.([#7247](https://github.com/AstrBotDevs/AstrBot/pull/7247))
- Added the `pysocks` dependency so pip installs can use SOCKS5 proxy correctly.([#7221](https://github.com/AstrBotDevs/AstrBot/pull/7221))
- Fixed `_extract_usage` cached token handling.([#6719](https://github.com/AstrBotDevs/AstrBot/pull/6719))
- + 5 more
📋 What's Changed
- docs: add usage of `select_knowledgebase` in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
- feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
- fix(core): Record.path was incorrectly treated as required under Pydantic v2 by @No-22-Github in https://github.com/AstrBotDevs/AstrBot/pull/7048
- fix: improve number input UX in config renderer by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/7153
- fix: send SSE heartbeat to prevent WebChat disconnect during compression by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7003
- perf: improve ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7178
- chore(deps): bump codecov/codecov-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7209
- Fix cached_tokens handling in _extract_usage method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/6719
- + 18 more
✨ New Contributors
- @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
- @Neko-Yukari made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7221
- @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
- @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
- @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
- @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
- @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278
- Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.22.2...v4.22.3
