雪語
3597726aad
fix(core): terminate active events on reset/new/del to prevent stale responses ( #5225 )
...
* fix(core): terminate active events on reset/new/del to prevent stale responses
Closes #5222
* style: fix import sorting in scheduler.py
2026-02-19 19:26:47 +08:00
Soulter
a4a37c268d
docs: update related repo links
2026-02-19 18:11:07 +08:00
NanoRocky
651a0645c5
fix: 修复仅发送 JSON 消息段时的空消息回复报错 ( #5208 )
...
* Fix Register_Stage
· 补全 JSON 消息判断,修复发送 JSON 消息时遇到 “消息为空,跳过发送阶段” 的问题。
· 顺带补全其它消息类型判断。
Co-authored-by: Pizero <zhaory200707@outlook.com >
* Fix formatting and comments in stage.py
* Format stage.py
---------
Co-authored-by: Pizero <zhaory200707@outlook.com >
2026-02-19 17:47:08 +08:00
Dream Tokenizer
bf3fa3e918
fix: 改进微信公众号被动回复处理机制,引入缓冲与分片回复,并优化超时行为 ( #5224 )
...
* 修复wechat official 被动回复功能
* ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-02-19 17:42:38 +08:00
Soulter
3b2ce9f500
feat: add admin permission checks for Python and Shell execution ( #5214 )
2026-02-19 01:48:48 +08:00
Soulter
20d6ff4620
chore: bump version to 4.17.5
v4.17.5
2026-02-18 22:04:43 +08:00
Chiu Chun-Hsien
a2b61e2ab8
refactor: extract Voice_messages_forbidden fallback into shared helper with typed BadRequest exception ( #5204 )
...
- Add _send_voice_with_fallback helper to deduplicate voice forbidden handling
- Catch telegram.error.BadRequest instead of bare Exception with string matching
- Add text field to Record component to preserve TTS source text
- Store original text in Record during TTS conversion for use as document caption
- Skip _send_chat_action when chat_id is empty to avoid unnecessary warnings
2026-02-18 21:45:19 +08:00
sanyekana
c6289d8f75
feat(core): add plugin error hook for custom error routing ( #5192 )
...
* feat(core): add plugin error hook for custom error routing
* fix(core): align plugin error suppression with event stop state
2026-02-18 21:38:27 +08:00
Soulter
567390e27c
feat: add LINE support to multiple language README files
2026-02-18 21:35:27 +08:00
Soulter
0c0f8bf484
chore: ruff format
2026-02-18 18:22:06 +08:00
Soulter
ae0a9cb591
docs: update readme
2026-02-18 18:20:08 +08:00
Soulter
3f4d7255a0
feat: supports aihubmix
2026-02-18 18:11:13 +08:00
Soulter
b8d2499475
feat: add MarketPluginCard component and integrate random plugin feature in ExtensionPage ( #5190 )
...
* feat: add MarketPluginCard component and integrate random plugin feature in ExtensionPage
* feat: update random plugin selection logic to use pluginMarketData and refresh on relevant events
2026-02-18 17:29:04 +08:00
SnowNightt
8cb26d886f
fix: 修复选择配置文件进入配置文件管理弹窗直接关闭弹窗显示的配置文件不正确 ( #5174 )
2026-02-18 16:33:18 +08:00
時壹
3ca8dd204f
fix: prevent duplicate error message when all LLM providers fail ( #5183 )
2026-02-18 16:29:35 +08:00
Soulter
3476afce41
feat: supports send markdown message in qqofficial ( #5173 )
...
* feat: supports send markdown message in qqofficial
closes : #1093 #918 #4180 #4264
* ruff format
2026-02-18 00:35:52 +08:00
Soulter
9b0e24ec49
chore: bump version to 4.17.4
v4.17.4
2026-02-17 21:19:53 +08:00
Soulter
92d71fffe9
feat: add announcement section to WelcomePage and localize announcement title
2026-02-17 21:15:12 +08:00
Soulter
80c22f4f72
feat: add FAQ link to vertical sidebar and update navigation for localization
2026-02-17 21:01:29 +08:00
Soulter
6e22d266dd
feat: implement search functionality in configuration components and update UI ( #5168 )
2026-02-17 20:47:24 +08:00
Soulter
4c285fb521
feat: add unsaved changes notice to configuration page and update messages
2026-02-17 20:32:25 +08:00
Helian Nuits
51c3521aaa
ui(CronJobPage): fix action column buttons overlapping in CronJobPage ( #5163 )
...
- 修改前:操作列容器仅使用 `d-flex`,在页面宽度变窄时,子元素(开关和删除按钮)会因为宽度挤压而发生视觉重叠,甚至堆叠在一起。
- 修改后:
1. 为容器添加了 `flex-nowrap`,强制禁止子元素换行。
2. 设置了 `min-width: 140px`,确保该列拥有固定的保护空间,防止被其他长文本列挤压。
3. 增加了 `gap: 12px` 间距,提升了操作辨识度并优化了点击体验。
2026-02-17 18:58:05 +08:00
Soulter
32112a3326
feat: enhance PersonaForm component with responsive design and improved styling ( #5162 )
...
fix : #5159
2026-02-17 18:46:52 +08:00
Soulter
f22221f781
fix: improve permission denied message for local execution in Python and shell tools
2026-02-17 18:02:41 +08:00
Soulter
4250d997b3
feat: enhance provider sources panel with styled menu and mobile support
2026-02-17 16:14:35 +08:00
Soulter
153d8cef6b
feat: add NVIDIA provider template ( #5157 )
...
fixes : #5156
2026-02-17 16:08:35 +08:00
Soulter
c9cdf47603
chore: ruff format
v4.17.3
2026-02-17 14:33:27 +08:00
Soulter
55ac878648
chore: bump version to 4.17.3
2026-02-17 14:09:10 +08:00
Soulter
60abddada3
fix: enhance handle_result to support event context and webchat image sending
2026-02-17 14:03:29 +08:00
Soulter
bbc583cc8d
fix: enhance plugin metadata handling by injecting attributes before instantiation ( #5155 )
2026-02-17 14:01:31 +08:00
Soulter
7906030037
fix: 'Plain' object has no attribute 'text' when using python 3.14 ( #5154 )
2026-02-17 13:51:25 +08:00
エイカク
06b385697d
fix(desktop): include runtime deps for builtin plugins in backend build ( #5146 )
2026-02-17 11:43:19 +09:00
Raven95676
059008a903
fix: prevent updates for AstrBot launched via launcher
2026-02-17 09:33:45 +08:00
Soulter
97c9e95211
chore: ruff format
2026-02-17 02:31:38 +08:00
Soulter
a4be369e43
chore: bump version to 4.17.1
v4.17.2
2026-02-17 02:30:13 +08:00
Soulter
bdaca78750
fix: add support for collecting data from builtin stars in electron pyinstaller build ( #5145 )
2026-02-17 02:27:07 +08:00
Soulter
6326d7e4ba
fix: add MCP tools to function tool set in _plugin_tool_fix ( #5144 )
2026-02-17 02:19:36 +08:00
Soulter
a809a09e55
docs: Added instructions for deploying AstrBot using AstrBot Launcher. ( #5136 )
...
Added instructions for deploying AstrBot using AstrBot Launcher.
2026-02-16 17:06:56 +08:00
Soulter
52c4ef2d87
chore: bump version to 4.17.1
v4.17.1
2026-02-15 23:45:34 +08:00
Soulter
52c31fabe2
fix: update retention logic in LogManager to handle backup count correctly
2026-02-15 23:42:12 +08:00
NayukiMeko
79e239ad97
fix: handle list format content from OpenAI-compatible APIs ( #5128 )
...
* fix: handle list format content from OpenAI-compatible APIs
Some LLM providers (e.g., GLM-4.5V via SiliconFlow) return content as
list[dict] format like [{'type': 'text', 'text': '...'}] instead of
plain string. This causes the raw list representation to be displayed
to users.
Changes:
- Add _normalize_content() helper to extract text from various content formats
- Use json.loads instead of ast.literal_eval for safer parsing
- Add size limit check (8KB) before attempting JSON parsing
- Only convert lists that match OpenAI content-part schema (has 'type': 'text')
to avoid collapsing legitimate list-literal replies like ['foo', 'bar']
- Add strip parameter to preserve whitespace in streaming chunks
- Clean up orphan </think> tags that may leak from some models
Fixes #5124
* fix: improve content normalization safety
- Try json.loads first, fallback to ast.literal_eval for single-quoted
Python literals to avoid corrupting apostrophes (e.g., "don't")
- Coerce text values to str to handle null or non-string text fields
2026-02-15 23:30:47 +08:00
Soulter
8abaf1015d
chore: bump version to 4.17.0
v4.17.0
2026-02-15 21:51:00 +08:00
Soulter
9a0c814fd4
feat: add SSL configuration options for WebUI and update related logging ( #5117 )
2026-02-15 17:43:36 +08:00
Soulter
c64e1b42a4
feat: replace colorlog with loguru for enhanced logging support ( #5115 )
2026-02-15 17:11:03 +08:00
Soulter
2d23c36067
feat: add Afdian support card to resources section in WelcomePage
2026-02-15 16:20:34 +08:00
Soulter
754144ad99
feat: add fallback chat model chain in tool loop runner ( #5109 )
...
* feat: implement fallback provider support for chat models and update configuration
* feat: enhance provider selection display with count and chips for selected providers
* feat: update fallback chat providers to use provider settings and add warning for non-list fallback models
2026-02-15 11:51:34 +08:00
Waterwzy
0faf109c2a
feat: support hot reload after plugin load failure ( #5043 )
...
* add :Support hot reload after plugin load failure
* Apply suggestions from code review
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* fix:reformat code
* fix:reformat code
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-02-13 18:37:20 +08:00
evpeople
7d1eff3ec4
fix #5089 : add uv lock step in Dockerfile before export ( #5091 )
...
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
2026-02-13 18:34:26 +08:00
Soulter
e295c470a5
fix: remove unnecessary frozen flag from requirements export in Dockerfile
...
fixes : #5089
2026-02-13 18:09:49 +08:00
Li-shi-ling
935168c024
fix-correct-FIRST_NOTICE.md-locale-path-resolution ( #5083 ) ( #5082 )
...
* fix:修改配置文件目录
* fix:添加备选的FIRST_NOTICE.zh-CN.md用于兼容
2026-02-13 13:15:08 +08:00