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
Soulter
f44961d065
feat: add LINE platform support with adapter and configuration ( #5085 )
2026-02-13 13:01:48 +08:00
Soulter
0c7a95ccd8
chore: bump version to 4.16.0 ( #5074 )
2026-02-12 22:55:42 +08:00
Soulter
09215bad57
fix: add config tabs and routing for normal and system configurations
2026-02-12 22:48:17 +08:00
エイカク
4ff07e3c74
fix: 完善转发引用解析与图片回退并支持配置化控制 ( #5054 )
...
* feat: support fallback image parsing for quoted messages
* fix: fallback parse quoted images when reply chain has placeholders
* style: format network utils with ruff
* test: expand quoted parser coverage and improve fallback diagnostics
* fix: fallback to text-only retry when image requests fail
* fix: tighten image fallback and resolve nested quoted forwards
* refactor: simplify quoted message extraction and dedupe images
* fix: harden quoted parsing and openai error candidates
* fix: harden quoted image ref normalization
* refactor: organize quoted parser settings and logging
* fix: cap quoted fallback images and avoid retry loops
* refactor: split quoted message parser into focused modules
* refactor: share onebot segment parsing logic
* refactor: unify quoted message parsing flow
* feat: move quoted parser tuning to provider settings
* fix: add missing i18n metadata for quoted parser settings
* chore: refine forwarded message setting labels
2026-02-12 23:42:29 +09:00
stevessr
473e01aadd
feat: add i18n supports for custom platform adapters ( #5045 )
...
* Feat: 为插件提供的适配器的元数据&i18n提供数据通路
* chore: update docstrings with pull request references
Added references to pull request 5045 in docstrings.
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
2026-02-12 21:49:12 +08:00
Soulter
cd5312ba77
fix: chunk err when using openrouter deepseek ( #5069 )
2026-02-12 19:26:12 +08:00
Soulter
d87bfb0d5d
perf: 优化分段回复间隔时间的初始化逻辑 ( #5068 )
...
fixes : #5059
2026-02-12 19:18:23 +08:00
Soulter
d2de0ea5ad
feat: QQ 官方机器人平台支持主动推送消息、私聊场景下支持接收文件 ( #5066 )
...
* feat: QQ 官方机器人平台支持主动推送消息、私聊场景下支持接收文件
* feat: enhance QQOfficialWebhook to remember session scenes for group, channel, and friend messages
2026-02-12 19:07:53 +08:00
xzj0898
4af064fd17
fix: 修复备份时缺失的人格文件夹映射 ( #5042 )
2026-02-12 16:40:45 +08:00
letr
8ab2b515f6
docs: sync and fix readme typo ( #5055 )
...
* docs: fix index typo
* docs: fix typo in README_en.md
- 移除英文README中意外出现的俄语,并替换为英语
* docs: fix html typo
- remove unused '</p>'
* docs: sync table with README
* docs: sync README header format
- keep the README header format consistent
* doc: sync key features
* style: format files
- Fix formatting issues from previous PR
* fix: correct md anchor link
* docs: correct typo in README_fr.md
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* docs: correct typo in README_zh-TW.md
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-02-12 16:37:25 +08:00
SnowNightt
51a1c0e375
fix: 修复更新日志、官方文档弹窗双滚动条问题 ( #5060 )
2026-02-12 16:36:05 +08:00
evpeople
30a0098b2a
feat: add send_chat_action for Telegram platform adapter ( #5037 )
...
* feat: add send_chat_action for Telegram platform adapter
Add typing/upload indicator when sending messages via Telegram.
- Added _send_chat_action helper method for sending chat actions
- Send appropriate action (typing, upload_photo, upload_document, upload_voice)
before sending different message types
- Support streaming mode with typing indicator
- Support supergroup with message_thread_id
* refactor(telegram): extract chat action helpers and add throttling
- Add ACTION_BY_TYPE mapping for message type to action priority
- Add _get_chat_action_for_chain() to determine action from message chain
- Add _send_media_with_action() for upload → send → restore typing pattern
- Add _ensure_typing() helper for typing status
- Add chat action throttling (0.5s) in streaming mode to avoid rate limits
- Update type annotation to ChatAction | str for better static checking
* feat(telegram): implement send_typing method for Telegram platform
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-02-12 14:46:06 +08:00
Soulter
e3cb9eb8af
chore: ruff format
2026-02-12 13:56:33 +08:00
Soulter
b0de33c801
fix: provider extra param dialog key display error
2026-02-12 13:09:34 +08:00
letr
bcdd8c463c
docs: clean and sync README ( #5014 )
...
* fix: close missing div in README
* fix: sync README_zh-TW with README
* fix: sync README
* fix: correct typo
correct url in README_en README_fr README_ru
* docs: sync README_en with README
* Update README_en.md
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
2026-02-12 01:17:15 +08:00
Soulter
336e2a2c40
fix: update error logging message for connection failures
2026-02-12 01:14:49 +08:00
Limitless
338d8a6610
fix: close unawaited reset coroutine on early return ( #5033 )
...
When an OnLLMRequestEvent hook stops event propagation, the
reset_coro created by build_main_agent was never awaited, causing
a RuntimeWarning. Close the coroutine explicitly before returning.
Fixes #5032
Co-authored-by: Limitless2023 <limitless@users.noreply.github.com >
2026-02-12 01:07:13 +08:00