時壹
47f78be378
fix: display cron last_run_at in local timezone ( #7625 )
2026-04-17 18:36:47 +08:00
SaintaToken
a1a7de1c57
fix: correct minor text inconsistencies in README files and document ( #7602 )
...
* fix: correct minor text inconsistencies in README files and documentation
* Update README_zh.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* feat: add buffered intermediate messages for non-streaming agent loop
* Revert "feat: add buffered intermediate messages for non-streaming agent loop"
This reverts commit 803762c99a .
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-17 17:20:13 +08:00
千岚之夏
0ca6ba91b1
feat: add MiniMax Token Plan provider with hardcoded model list ( #7609 )
...
* feat: add MiniMax Token Plan provider with hardcoded model list (fix #7585 )
- Add new provider 'minimax_token_plan' for MiniMax Token Plan users
- Inherit ProviderAnthropic to reuse all chat/completion logic
- Hardcode api_base to https://api.minimaxi.com/anthropic
- get_models() returns hardcoded list: MiniMax-M2.7, M2.5, M2.1, M2
- Highspeed models excluded (require premium tier)
- Reason for hardcoding: Token Plan API does not expose /models endpoint
- Fixes: https://github.com/AstrBotDevs/AstrBot/issues/7585
* fix: remove api_base from config template and add model validation
- Remove api_base from default_config_tmpl (always overridden, misleading)
- Add model validation against MINIMAX_TOKEN_PLAN_MODELS
- Raise clear ValueError if user configures an unsupported model
Addressed Sourcery AI review comments.
* fix: use custom_headers for Bearer token auth instead of auth_header
MiniMax Token Plan requires Authorization: Bearer <token> header.
Use custom_headers to inject the correct auth header instead of
the non-functional auth_header key.
Addressed Gemini Code Assist review comment.
* fix: update MiniMax Token Plan provider adapter and documentation to English
* feat: add MiniMax Token Plan configuration and icon support
* feat: remove default configuration template from MiniMax Token Plan provider adapter
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-04-17 16:48:52 +08:00
エイカク
5be6536f0e
fix: support SOCKS proxies in updater requests ( #7615 )
...
* fix: support SOCKS proxies in updater requests
* fix: log updater HTTP status details
* fix: clean partial updater downloads on failure
* test: lock updater httpx client options
* refactor: harden updater httpx configuration
2026-04-17 13:13:21 +09:00
Soulter
087c793615
revert "fix: scss import warning ( #7528 )" ( #7616 )
...
This reverts commit ee85a4e50f .
2026-04-17 11:58:47 +08:00
Hongbro886
89096411d2
docs: correct documentation URL from astrbot.app to docs.astrbot.app ( #7612 )
...
* docs: correct documentation URL from astrbot.app to docs.astrbot.app
* docs: correct documentation URL from astrbot.app to docs.astrbot.app
2026-04-17 11:07:48 +09:00
Hongbro886
22e8cbd10d
fix: return an explicit erro from the cron tool when scheduling a task fails instead of processing silently( #7513 )
...
* fix: 定时任务创建失败时返回错误信息而非静默处理
* fix: test and format
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-04-16 20:14:55 +08:00
Kangyang Ji
ee85a4e50f
fix: scss import warning ( #7528 )
...
* chore(dashboard): 将 Sass @import 迁移到 @use
Dart Sass 3.0.0 将移除 @import,迁移到 @use 以消除弃用警告
* add new import into style.scss
---------
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
2026-04-16 20:05:37 +08:00
SweetenedSuzuka
a8660ff21e
fix(weixin_oc): persist context_token for proactive cron sends ( #7595 )
...
* fix(weixin_oc): persist context_token for proactive cron sends
* test(weixin_oc): add safety coverage for context token persistence
* fix(weixin_oc): address review on context token state
* chore: delete tests/unit/test_weixin_oc_adapter_state.py
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
2026-04-16 20:03:59 +08:00
Soulter
469f498428
fix: increase anthropic default max tokens ( #7593 )
2026-04-16 14:51:36 +08:00
XiaoYang
34cf4014e6
fix: prevent numeric input from resetting to zero on blur without edit ( #7560 )
...
When a numeric input field was focused but not edited, the blur handler
called toNumber(null) which returned 0 via parseFloat(null) → NaN → 0.
Now we skip emitting the update when numericTemp is null (no edits made).
2026-04-16 08:48:13 +08:00
時壹
7c39abc6b5
fix(dashboard): resolve chat attachment 401 ( #7569 )
...
* fix(dashboard): resolve chat attachment 401 by restoring axios blob URL fetch
* chore: cache blob URL promises to prevent duplicate requests and memory leaks
2026-04-15 15:52:14 +08:00
Soulter
cb91dfb6f7
docs: update installation instructions to require Python 3.12 for uv deployment
2026-04-14 19:50:54 +08:00
Soulter
49531da91d
feat: add on_agent_begin, on_using_llm_tool, on_llm_tool_respond, on_agent_done event hooks ( #7540 )
...
* feat: add on_agent_begin, on_using_llm_tool, on_llm_tool_respond, on_agent_done event hooks
* docs: add version requirement for event hooks in message event guide
* Update astrbot/core/star/star_handler.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update astrbot/core/astr_agent_hooks.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* feat: rename event types to include 'Event' suffix for consistency
* chore: ruff format
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-14 18:55:05 +08:00
若月千鸮
625eab223f
feat: enable shiki highlighting for t2i templates and add a template ( #7501 )
...
* fix: enable shiki highlighting for t2i templates
* fix: t2i templates cr
* feat: add new t2i template astrbot_vitepress.html
2026-04-14 16:46:32 +08:00
Ruochen Pan
207eb34ba2
fix: improve error handling for knowledge base upload ( #7536 )
...
* fix: improve error handling for knowledge base upload
- Log details field in KnowledgeBaseUploadError for better debugging
- Distinguish between empty pre-chunked text and empty chunking result
with appropriate error messages
* style: format code
2026-04-14 16:44:14 +08:00
Gargantua
cc72c01c0e
fix: improve knowledge base upload error messages ( #7534 )
...
* fix: improve knowledge base upload error messages
* fix: deduplicate knowledge base upload logs
* fix: handle type errors in kb embedding validation
2026-04-14 16:27:06 +08:00
Kangyang Ji
11dedf3802
improve dashboard and docs ci to pnpm and cache ( #7522 )
2026-04-14 16:10:43 +08:00
Soulter
631e5fe152
docs: update supported IM platforms
2026-04-14 10:27:47 +08:00
dependabot[bot]
b342cf9997
chore(deps): bump the github-actions group with 3 updates ( #7524 )
...
Bumps the github-actions group with 3 updates: [docker/build-push-action](https://github.com/docker/build-push-action ), [actions/github-script](https://github.com/actions/github-script ) and [pnpm/action-setup](https://github.com/pnpm/action-setup ).
Updates `docker/build-push-action` from 7.0.0 to 7.1.0
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v7.0.0...v7.1.0 )
Updates `actions/github-script` from 8 to 9
- [Release notes](https://github.com/actions/github-script/releases )
- [Commits](https://github.com/actions/github-script/compare/v8...v9 )
Updates `pnpm/action-setup` from 5.0.0 to 6.0.0
- [Release notes](https://github.com/pnpm/action-setup/releases )
- [Commits](https://github.com/pnpm/action-setup/compare/v5.0.0...v6.0.0 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: 7.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: github-actions
- dependency-name: actions/github-script
dependency-version: '9'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
- dependency-name: pnpm/action-setup
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 08:48:15 +08:00
Soulter
1292faa446
chore: bump version to 4.23.1
v4.23.1
2026-04-13 23:39:34 +08:00
Soulter
abd11d5579
fix: routing not displayed when session id includes : ( #7517 )
...
* fix: routing not displayed when session id includes `:`
fixes : #7515
2026-04-13 23:32:40 +08:00
Soulter
afeda9b82a
fix: downgrade python-ripgrep version to 0.0.8 in dependencies ( #7514 )
...
* fix: downgrade python-ripgrep version to 0.0.8 in dependencies
* fix: update smoke test workflow to support multiple OS and Python versions
2026-04-13 20:54:18 +08:00
エイカク
533a0bde6a
fix: align deerflow runner with deerflow 2.0 ( #7500 )
...
* fix: align deerflow runner with deerflow 2.0
* fix: address deerflow review feedback
2026-04-13 12:47:27 +09:00
LunaRain_079
35ce281cbe
fix: remove unnecessary margins from v-main for consistent layout ( #7481 )
...
* fix: remove unnecessary margins from v-main for consistent layout
* fix: remove media query for v-main margin to simplify layout
2026-04-13 08:47:37 +08:00
Waterwzy
80c7ebae8a
fix: inconsistent format issue when checking if the plugin is installed ( #7493 )
...
* fix: inconsistent format issue when checking if the plugin is installed
* Update dashboard/src/views/extension/useExtensionPage.js
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update dashboard/src/views/extension/useExtensionPage.js
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-13 08:45:27 +08:00
若月千鸮
5f0178bc73
chore: switch dashboard code blocks highlight to shiki ( #7497 )
...
* fix: switch dashboard code blocks to shiki and sync theme rendering
* fix: harden and optimize dashboard shiki highlighting
2026-04-13 08:43:36 +08:00
Soulter
6131386893
chore: bump version to 4.23.0
v4.23.0
2026-04-13 00:36:04 +08:00
Kangyang Ji
3b2435875c
fix: type use of defineStore in @/stores ( #7490 )
2026-04-12 23:47:40 +08:00
Kangyang Ji
2a229c4beb
fix: wrong image name in compose ( #7488 )
...
* fix: wrong image name in compose
2026-04-12 22:07:58 +08:00
Soulter
d1913b5950
fix: update tool call icons from mdi-code-braces to mdi-code-json
2026-04-12 22:06:08 +08:00
Soulter
7172281436
feat: add MessageList component and update MDI icon subset
2026-04-12 21:55:10 +08:00
Soulter
bd08273640
refactor: chatui style ( #7485 )
2026-04-12 20:47:51 +08:00
Soulter
baaad2a69e
perf: add 'dashboard_update' to the list of ignored effective commands in HelpCommand
2026-04-12 17:34:57 +08:00
Sascha Buehrle
9a65873424
fix: use UMO-bound config for group_icl_enable in on_message ( #7397 )
...
* fix: read group_icl_enable from UMO-bound config (fixes #7305 )
* chore: ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-04-12 16:42:48 +08:00
Soulter
f50f6cd49f
refactor: remove rarely-used builtin commands and consolidate functionality ( #7478 )
...
* refactor: remove rarely-used builtin commands and consolidate functionality
* docs: update docs
* Update astrbot/builtin_stars/builtin_commands/commands/admin.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* chore: remove /op, /deop
* chore: ruff format
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-12 16:40:08 +08:00
Soulter
5d2b29f8f8
perf: add validation for MCP stdio configuration ( #7477 )
...
* perf: add validation for MCP stdio configuration
* Update astrbot/core/agent/mcp_client.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update astrbot/core/agent/mcp_client.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* chore: ruff format
* fix: correct regex pattern for shell meta characters
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-12 15:04:46 +08:00
Soulter
68a195e12b
perf: make no-new-privileges true when use docker
2026-04-12 14:37:33 +08:00
NekoYukari
2274e0efc9
fix: support both Bailian Rerank API formats based on URL endpoint ( #7250 )
...
* fix: support both Bailian Rerank API formats based on URL endpoint
阿里云百炼有两个不同的 rerank API 端点:
- /compatible-api/v1/reranks: 使用扁平请求格式 {model, query, documents}
- /api/v1/services/rerank/...: 需要 input 包装 {model, input: {...}}
之前代码只根据模型名判断格式,导致 qwen3-rerank + compatible-api 组合失败。
修复内容:
- _build_payload(): 根据 URL 是否含 'compatible-api' 决定请求格式
- _parse_results(): 根据 URL 判断响应中 results 的位置
Fixes #7161
* refactor: reduce duplication in bailian rerank payload and results handling
- Extract params building outside the if-else branch
- Add back empty results warning log
- Simplify error handling variable assignment
* fix: simplify bailian rerank payload to use model-based logic only
qwen3-rerank always uses flat format regardless of API endpoint.
Other models (gte-rerank-v2, etc.) use input wrapper format.
This simplifies the logic and correctly handles all model/URL combinations.
Tested: qwen3-rerank accepts both formats, gte-rerank-v2 only supports input wrapper.
---------
Co-authored-by: root <root@localhost.localdomain >
Co-authored-by: Fix Bot <fix@example.com >
2026-04-12 14:23:15 +08:00
Sagiri777
f1f1720c58
feat(weixin_oc): support reply components ( #7380 )
...
* feat(weixin_oc): support reply parsing
* fix: harden weixin oc reply parsing
* fix: correct weixin oc reply cache matching
* fix: harden weixin oc reply parsing
* chore: remove test
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-04-12 14:22:07 +08:00
yuanqiuye
6691411550
fix(discord): prevent 10062 Unknown interaction error by deferring slash commands immediately ( #7474 )
...
* fix(discord): prevent 10062 Unknown interaction error by deferring slash commands immediately
* fix(discord): early return if deferral fails
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* chore: ruff format
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Soulter <905617992@qq.com >
2026-04-12 14:12:07 +08:00
Soulter
8d28693e32
fix: ensure JSON response is encoded with non-ASCII characters for shell command execution ( #7475 )
...
fixes : #7452
2026-04-12 14:01:20 +08:00
Soulter
5f95bbc422
fix: Update plugin version check logic to support pre-releases
...
fixes : #7473
2026-04-12 13:59:16 +08:00
時壹
a7ce8df024
feat: implement retry mechanism for QQ Official API file uploads ( #7430 )
...
* feat: implement retry mechanism for QQ Official API file uploads
* fix: update error logging message for media file upload retries
2026-04-12 13:47:44 +08:00
Misaka Mikoto
09848956e2
fix: align function tool module path with plugin main module ( #7462 )
2026-04-12 13:44:05 +08:00
Shujakuin
f5207d840c
fix: telegram polling recovery after network failures ( #7468 )
2026-04-12 13:42:51 +08:00
Soulter
b801003801
chore: bump version to 4.23.0-beta.1
v4.23.0-beta.1
2026-04-11 21:15:30 +08:00
Soulter
2472a12671
feat: filesystem grep, read, write, edit file and workspace support ( #7402 )
...
* feat: filesystem grep, read, edit file
* feat: add file write tool and enhance file read functionality
* feat: enhance tool prompt formatting and add escaped text decoding for file editing
* feat: remove redundant safe path tests from security restrictions
* feat: implement file read tool with support for text and image files, including validation for large files
* feat: add file read utilities and integrate with filesystem tools
* refactor: move computer tools to builtin tools registry
* refactor: remove unused plugin_context parameter from _apply_sandbox_tools
* feat: supports to display enabled builtin tools in configs
* feat: add tooltip for disabled builtin tools and update localization strings
* feat: add workspace extra prompt handling in message processing
* feat: add ripgrep installation to Dockerfile
* perf: shell executed in workspace dir in local env
* feat: enhance file reading capabilities to support PDF and DOCX parsing, including workspace storage for long documents
* feat: update converted text notice to suggest using grep for large files
* feat: implement handling for large tool results with overflow file writing and read tool integration
* fix: test
* feat: enhance onboarding steps to include computer access configuration and related help information
* feat: add support for additional temporary path in restricted environment checks
* feat: update computer access hints and add detailed configuration instructions
2026-04-11 17:01:54 +08:00
MinaraAgent
b8ccfe3f64
feat(discord): add configurable bot message filtering, allow bot to receive other bots' messages ( #6505 )
...
* feat(discord): add configurable bot message filtering
Add `discord_allow_bot_messages` config option to allow receiving
messages from other Discord bots. This is useful for bot-to-bot
communication scenarios like message forwarding between channels.
By default, bot messages are still ignored (backward compatible).
Usage: Set `discord_allow_bot_messages: true` in your Discord
platform configuration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* feat(discord): add WebUI config for discord_allow_bot_messages
Add configuration option to the dashboard for the new
discord_allow_bot_messages feature. Users can now enable/disable
this option through the WebUI in all supported languages
(zh-CN, en-US, ru-RU).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* refactor(discord): use typed constructor argument for allow_bot_messages
Address code review feedback:
- Add `allow_bot_messages` as a typed constructor argument in DiscordBotClient
- Simplify the on_message check by using the instance attribute directly
- Pass the parameter in constructor instead of using setattr
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
Co-authored-by: MinaraAgent <minara-agent@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-11 01:27:46 +08:00
2doright
574e5089ba
docs: fix path concatenation error in storage.md ( #7448 )
...
* docs: 修复 storage.md 中路径拼接的错误示例
get_astrbot_data_path() 返回的是 str 类型,直接使用 / 运算符会导致 TypeError。修改文档示例,添加 Path() 包裹
* docs: 修复 storage.md 中路径拼接的错误示例
get_astrbot_data_path() 返回的是 str 类型,直接使用 / 运算符会导致 TypeError。修改文档示例,添加 Path() 包裹。
2026-04-10 18:41:54 +08:00