Releases: AstrBotDevs/AstrBot
Releases · AstrBotDevs/AstrBot
Release list
v4.26.3
What's Changed
Features
- Support installing local plugins (#8448)
Fixes
- Preserve fallback models for future tasks (#9054)
- Validate plugin install sources (#9061)
- Paginate knowledge base dashboard lists (#9055)
Styles
- Standardize dashboard dialog styling (#9062)
中文翻译
功能
- 支持安装本地插件 (#8448)
修复
样式
- 统一仪表盘对话框样式 (#9062)
v4.26.2
What's Changed
Fixes
- Preserve image formats and JPEG quality during media conversion (#9019, #9031)
- Fix
DashboardRequestcompatibility for dashboard requests, resolving some IM webhook errors (#9021, #9023) - Normalize streamed message whitespace and strip trailing buffers before sending (#9029)
- Prevent plugin detail marketplace mismatches (#9028)
- Reliably kill shell process trees on Windows timeout (#8822)
- Guard
_KeyRotatorindex bounds (#9040) - Track plugin install source for update checks (#9037)
- Handle MiMo STT audio and reasoning output (#8938)
- Only show plugin updates for newer market versions
- Sanitize orphaned
tool_resultblocks in the Anthropic provider (#8952) - Preserve assistant messages that contain
reasoning_contentwithout content or tool calls (#8483) - Recognize DeepSeek V4 proxy model names with substring matching (#9015)
- Clear KV storage when uninstalling plugins and update related i18n text (#8291)
- Separate plugin and tool activation state (#9048)
- Keep Tab navigation within reset-password inputs in the account dialog (#9049)
- Align OpenAI tool message sanitization (#8350)
- Avoid duplicate
send_message_to_userreplies (#9051)
Documentation
Chores
- Remove the plugin publish issue template (#9050)
中文翻译
修复
- 在媒体转换过程中保留图片格式和 JPEG 质量 (#9019, #9031)
- 修复
DashboardRequest对仪表盘请求的兼容性,解决部分 IM webhook 报错问题 (#9021, #9023) - 统一流式消息片段中的空白字符处理,并在发送前移除尾部缓存 (#9029)
- 防止插件详情与插件市场信息不匹配 (#9028)
- 在 Windows 超时场景下可靠终止 shell 进程树 (#8822)
- 修复
_KeyRotator索引边界检查 (#9040) - 跟踪插件安装来源,用于更新检查 (#9037)
- 处理 MiMo STT 音频和推理输出 (#8938)
- 仅在插件市场版本更新时显示插件更新提示
- 清理 Anthropic 提供商中的孤立
tool_result块 (#8952) - 保留只包含
reasoning_content、但没有内容或工具调用的 assistant 消息 (#8483) - 通过子字符串匹配识别 DeepSeek V4 代理模型名称 (#9015)
- 卸载插件时清理 KV 存储,并更新相关 i18n 文案 (#8291)
- 分离插件和工具的启用状态 (#9048)
- 在账号对话框中,将 Tab 导航限制在重置密码输入框内 (#9049)
- 对齐 OpenAI 工具消息清理逻辑 (#8350)
- 避免重复发送
send_message_to_user回复 (#9051)
文档
杂项
- 移除插件发布 issue 模板 (#9050)
What's Changed
- fix: preserve image formats in media handling by @Soulter in #9019
- docs: update Python requirement to 3.12 by @1sunxiaoshou in #9022
- Docs/add spanish readme by @Fay521 in #9020
- fix: 'DashboardRequest' object has no attribute 'get_data' (#9021) by @moemoli in #9023
- fix: unify handling of whitespace in streamed message segments and ensure trailing buffers are stripped before sending. by @NayukiChiba in #9029
- fix: prevent plugin detail marketplace mismatches by @FuShang114 in #9028
- fix: preserve jpeg quality during conversion by @Soulter in #9031
- fix: reliably kill shell process tree on Windows timeout by @muhamedfazalps in #8822
- fix: _KeyRotator index bounds check by @fan-67 in #9040
- fix: track plugin install source for updates by @Soulter in #9037
- fix: handle MiMo STT audio and reasoning output by @FuShang114 in #8938
- fix: only show plugin update for newer market versions by @FloranceYeh in #9033
- fix: sanitize orphaned tool_result blocks in Anthropic provider by @EmilyCheoh in #8952
- fix: prevent API 400 errors by ensuring assistant messages with reasoning_content but no content or tool_calls are preserved with a placeholder content value by @renchonghan in #8483
- fix: DeepSeek V4 proxy model recognition — substring match instead of exact set match for reasoning_content injection by @irmia2026 in #9015
- Fix: KV storage not cleared on plugin uninstall. Improved cleanup logic and updated i18n strings to indicate database KV data removal. by @leafliber in #8291
- chore: remove plugin publish issue template by @Soulter in #9050
- fix: separate plugin and tool activation state by @Soulter in #9048
- fix: keep Tab navigation within reset-password inputs in account dialog by @Soulter with @Copilot in #9049
- fix: remove tool messages whose tool_call_id no longer matches any preceding assistant tool_calls after context truncation, avoiding 400 errors from unexpected tool_use_ids by @EmilyCheoh in #8350
- fix: avoid duplicate send_message_to_user replies by @Soulter in #9051
- chore: bump version to 4.26.2 by @Soulter in #9052
New Contributors
- @1sunxiaoshou made their first contribution in #9022
- @Fay521 made their first contribution in #9020
- @fan-67 made their first contribution in #9040
- @FloranceYeh made their first contribution in #9033
- @renchonghan made their first contribution in #8483
- @irmia2026 made their first contribution in #9015
- @leafliber made their first contribution in #8291
Full Changelog: v4.26.1...v4.26.2
v4.26.1
What's Changed
修复
What's Changed (EN)
Bug Fixes
v4.26.0
Note:
- WebUI “Config -> System Config” has moved to “Settings” at the bottom of the WebUI sidebar.
- It's recommended to update to v4.25.6 before updating to this version.
提醒:
- WebUI 的“配置 -> 系统配置”已迁移至 WebUI 侧边栏下方的“设置”。
- 建议先升级到 v4.25.6 再升级到此版本。
What's Changed
✨ 新功能
- 后端架构从 Quart 迁移至 FastAPI。新增多个 AstrBot OpenAPI。(#8688)
- 统一全平台消息媒体文件的处理逻辑,提升图片、音频、文件和引用消息媒体的解析一致性,对腾讯系 Silk 格式的语音文件不再使用 pilk 库。(#8764)
- 支持配置模型调用出错时的重试次数,增强稳定性。
- WebUI 新增函数工具的逐工具权限管理,支持在工具面板中查看和切换工具权限。(#8693)
- WebUI 新增浅色、深色、跟随系统三种主题模式,并集中处理系统主题同步。(#8648)
- 重组 WebUI 系统配置页面,将系统配置入口迁移到侧边栏下方的设置区域,并优化相关设置项、自动保存和重启提示体验。(#8777)
- 新增 QQ 官方机器人 WebSocket 适配器扫码绑定流程,可通过 WebUI 一键扫码获取并回填 AppID 与 Secret,同时将 WebSocket 模板标记为推荐。(#8821)
- 增强 QQ 官方机器人群聊能力,支持群消息创建类型,并允许 Webhook 适配器在无缓存
msg_id时主动发送群消息。(#8838, #8841) - 为 OpenAI、Gemini、Anthropic 等模型请求加入可配置的重试机制,并新增请求最大重试次数配置,提升临时网络错误与 5xx 服务端错误下的稳定性。(#8893)
- 现在更新项目时,下载 AstrBot Core 会走 AstrBot 官方托管地址,提高网络稳定性。(#8888)
- 支持在请求中加载 workspace skills,并加固 workspace skill 发现流程。(#8884)
- 新增 Exa Web Search 提供商。(#8973)
- 新增 ElevenLabs TTS API Provider。(commit)
- 新增启动时重置 WebUI 密码的命令行开关,便于无法登录时恢复访问。(commit)
- 新增预发布版本可见性开关。(commit)
- 登录页新增公开版本详情展示。(#8986)
- 备份功能现在会包含 skills 目录。(#8700)
优化
- 加强未来任务所有者校验,避免越权访问定时任务。(#8881)
- 优化知识库上传文件名路径穿越风险。(#8971)
- 优化插件上传文件名路径穿越风险。(#8968)
- 在受限本地文件系统工具中拒绝 hardlink 文件,避免通过工作区 hardlink 别名读写允许目录外的文件。
- 加固沙箱文件传输与 CUA 健康检查流程,降低异常环境下的文件操作风险。(#8840)
- 消息组件日志输出现在会截断过长的 base64 字段,避免日志中出现大体积内联媒体内容。(#8591)
- 群聊上下文现在会展示被引用消息的内容。(commit)
- 对话上下文新增当前星期信息。(#8669)
- 使用原子写入方式保存配置文件,降低写入中断导致配置损坏的概率。(#8793)
- 新增 GitHub 代理
gh.dpik.top,并移除失效代理gh.llkk.cc。(#8772, #8761)
修复
- 修复 aiocqhttp 平台适配器与消息事件处理器在多处 API 调用中缺少
self_id路由参数的问题。(#8779) - 修复生成平台 ID 时可能包含空白字符的问题。(#8768)
- 修复 Gemini Provider 工具定义没有正确传回模型,导致重复工具调用的问题。(#8833)
- 修复提供商源修改 ID 后保存被静默还原的问题。(#8915)
- 修复插件 LLM Tools 开关的归属校验问题,避免误操作其他插件的工具配置。(commit)
- 完善插件命名模式校验和边界场景处理。(commit)
- 修复插件重装后仓库来源丢失的问题。(commit)
- 修复子目录工具的
handler_module_path不一致问题。(#8578) - 修复 run-based tools 的保护逻辑,避免受保护工具在注册流程中被错误丢失。(#8790)
- 修复 persona 工具列表场景下系统工具被移除的问题。(#8908)
- 修复人格设定中将工具和 Skills 从指定列表切回“默认使用全部”后不生效的问题。(#8835)
- 修复新版 MCP 中 Streamable HTTP client 重命名导致的兼容问题,并保持
mcp依赖小于 2。 - 修复本地 Python 工具没有在当前 session workspace 中运行的问题。(#8792)
- 修复静态资源缺失时仍显示 WebUI ready banner 的问题。(#8804)
- 修复 Dashboard 创建文件夹时按 Enter 无法提交的问题。(#8597)
- 修复聊天输入框在非末尾位置使用输入法组合输入时可能丢失字符的问题。(#8811)
- 修复 changelog 弹窗中的锚点链接处理。(#8750)
- 修复 onboarding 平台配置与备份上传相关问题。(#8834)
- 将知识库上下文作为临时 user 内容注入,修复模型请求中知识库上下文角色不准确的问题。(#8904)
- 修复 cron 星期调度规范化问题。(#8984)
- 修复 QQ 官方平台发送消息时 At 组件被丢失的问题。(#8983)
- 修复引用消息中的 image caption 可能重复显示的问题。(#8718)
- 修复 Embedding API version 后缀被错误截断的问题。(#8736)
- 延迟导入 FAISS C 库,避免部分环境启动时进程卡住。(#8696)
- 关闭时主动释放数据库 engine,减少会话和测试环境中的资源残留。(#8650)
- 修复 CLI 版本来源不正确的问题。(#8692)
- 修复执行
astrbot命令时不必要地创建 data 目录的问题。(#8932) - 修复 sdist 构建产物路径,确保 Dashboard artifact 可被包含。(#8933)
- 修复插件页资源 token fallback。(#8970)
- 更新
max_context_length与dequeue_context_length默认值。 - 稳定 FastAPI Dashboard 路由注册测试,兼容 included router 节点。(commit)
- 稳定 Dashboard 路由相关测试,兼容最新 FastAPI 行为。(commit)
What's Changed (EN)
✨ New Features
- Migrated the backend architecture from Quart to FastAPI and added multiple OpenAPI definitions. (#8688)
- Unified media file handling across platforms, improving consistency for images, audio, files, and quoted-message media. Tencent Silk voice files no longer use the pilk library. (#8764)
- Added per-tool permission management for function tools in WebUI, with support for viewing and toggling tool permissions from the tools panel. (#8693)
- Added light, dark, and system theme modes to WebUI, with centralized system theme synchronization. (#8648)
- Reorganized the WebUI system configuration page. The system configuration entry has moved to the Settings area at the bottom of the sidebar, with improved settings, autosave, and restart notices. (#8777)
- Added a QR binding flow for the QQ Official Bot WebSocket adapter. WebUI can now fetch and autofill AppID and Secret through one-click QR setup, and the WebSocket template is marked as recommended. (#8821)
- Enhanced QQ Official Bot group chat support by adding group message creation types and allowing the Webhook adapter to proactively send group messages without a cached
msg_id. (#8838, #8841) - Added configurable retry handling for OpenAI, Gemini, Anthropic, and related model requests, including a maximum request retry setting for better stability during temporary network errors and 5xx server errors. (#8893)
- AstrBot Core downloads now use AstrBot's officially hosted source during project updates, improving network stability. (#8888)
- Added support for loading workspace skills in requests and hardened workspace skill discovery. (#8884)
- Added Exa as a web search provider. (#8973)
- Added the ElevenLabs TTS API provider. (commit)
- Added a startup flag to reset the WebUI password, making it easier to recover access when login is unavailable. (commit)
- Added a prerelease visibility toggle. (commit)
- Added public version details to the login page. (#8986)
- Backups now include the skills directory. (#8700)
Improvements
- Strengthened Future Task owner checks to prevent unauthorized scheduled-task access. (#8881)
- Hardened knowledge base upload filename handling against path traversal risks. (#8971)
- Hardened plugin upload filename handling against path traversal risks. (#8968)
- Rejected hardlinked files in restricted local filesystem tools to prevent workspace hardlink aliases from reading or writing files outside allowed directories.
- Hardened sandbox file transfers and CUA health checks to reduce file-operation risks in abnormal environments. ([#8840](https://githu...
v4.26.0-beta.12
What's Changed
- fix: respect existing provider source IDs in config so that manually edited IDs are preserved on save instead of being silently reset. (#8915) (42ca89d)
- fix: created unnecessary data dir when executing astrbot command (#8932) (39d4253)
- fix: add sdist build artifact path to allow dashboard artifact to be included (#8933) (05148df)
v4.25.6-rc.3
v4.25.6-rc.2
Release v4.25.6-rc.2
v4.25.6-rc.1
Release v4.25.6-rc.1
v4.25.6
What's Changed
- 优化更新过程的稳定性,减少更新出错的概率。
- AstrBot Core 更新包优先从 AstrBot Registry 下载,失败时回退到 GitHub zipball。
- 修复 pip 包体未正确包含 Dashboard 构建资源的问题。
What's Changed (EN)
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.