LIghtJUNction
9528f1ca95
fix service command root path helpers
2026-05-22 17:17:30 +08:00
LIghtJUNction
96d189fadc
Merge remote-tracking branch 'origin/feat/service-command' into dev
2026-05-22 16:51:59 +08:00
Soulter
250baccf5b
feat(service): update Windows service command to use PowerShell and enhance task XML configuration
2026-05-22 15:37:38 +08:00
LIghtJUNction
7c224ebbd2
ruff check && format
2026-05-22 15:23:24 +08:00
LIghtJUNction
944afc4b33
Merge remote-tracking branch 'origin' into dev
...
# Conflicts:
# astrbot/builtin_stars/astrbot/main.py
# astrbot/cli/__main__.py
# astrbot/cli/commands/__init__.py
# astrbot/core/provider/sources/openai_source.py
2026-05-22 15:19:54 +08:00
Soulter
97f0fd3de3
feat: add CLI commands documentation and service management features
...
- Updated the VitePress configuration to include links to CLI commands in both English and Chinese.
- Enhanced the AstrBot deployment documentation with instructions for installing it as a system service.
- Created comprehensive CLI commands documentation covering initialization, service management, configuration, and plugin management.
- Added tests for CLI command aliases and service functionalities to ensure proper command registration and behavior.
- Implemented service log management features, including enabling application logging and controlling log visibility.
2026-05-21 23:44:28 +08:00
LIghtJUNction
3f4f171530
fix: resolve type warnings across core modules
2026-05-21 22:45:44 +08:00
lingyun14
0711172fa7
Fix/stale command hints ( #8245 )
...
* Update stage.py
* fix: remove stale slash command hints
* fix: remove stale slash command hints
* fix: remove stale slash command hints
* Update openai_source.py
2026-05-21 21:45:57 +08:00
Weilong Liao
d15606d202
feat(password): add command to change AstrBot dashboard password ( #8272 )
...
closes : #8268
2026-05-21 21:37:10 +08:00
LIghtJUNction
fb4f76af63
Merge remote-tracking branch 'origin/master' into dev
2026-05-21 19:17:37 +08:00
LIghtJUNction
4098303658
refactor: miscellaneous updates across modules
2026-05-21 19:10:02 +08:00
LIghtJUNction
01aafc21dd
fix: resolve circular import in updator.py
2026-05-21 19:08:45 +08:00
M1LKT
165933545d
feat: Automate generation of the MDI icon font subset during dashboard dev and build workflows ( #8264 )
...
* feat: ignore字体集的生成文件,并在编译时自动生成
* 移除preview的前置运行
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-05-21 08:48:12 +08:00
Yufeng He
c4693fa68e
fix: support rst and adoc knowledge uploads ( #8255 )
2026-05-20 14:38:16 +08:00
LIghtJUNction
0b4cf94414
chore: fix zip_updator lint errors and allowlist existing frontend violations
2026-05-19 21:44:03 +08:00
LIghtJUNction
03b337395f
fix: add missing Any import in zip_updator
2026-05-19 21:26:56 +08:00
LIghtJUNction
ec0baa4dc0
Merge remote-tracking branch 'origin' into dev
2026-05-19 21:23:04 +08:00
LIghtJUNction
92c58f8a2a
fix: resolve merge follow-ups (typing, imports, frontend tests)
2026-05-19 21:16:25 +08:00
LIghtJUNction
987099d4cb
chore: merge origin/master into dev
2026-05-19 21:15:22 +08:00
Jianyu Li
7a9fb33dd9
docs: fix typo of the count in FAQ deletion instructions ( #8235 )
...
Correct the number of fields to be deleted from five to six in the instructions.
2026-05-19 14:41:58 +08:00
dependabot[bot]
de0a7afdcf
chore(deps): bump pnpm/action-setup in the github-actions group ( #8233 )
...
Bumps the github-actions group with 1 update: [pnpm/action-setup](https://github.com/pnpm/action-setup ).
Updates `pnpm/action-setup` from 6.0.7 to 6.0.8
- [Release notes](https://github.com/pnpm/action-setup/releases )
- [Commits](https://github.com/pnpm/action-setup/compare/v6.0.7...v6.0.8 )
---
updated-dependencies:
- dependency-name: pnpm/action-setup
dependency-version: 6.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
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-05-19 13:21:03 +09:00
Yufeng He
5bbcdced0f
fix: skip empty llm summaries ( #8195 )
2026-05-19 09:38:55 +08:00
Soulter
dceacd5a87
docs: update release version instructions in AGENTS.md
2026-05-17 15:07:39 +08:00
Soulter
d609f23b71
chore: bump version to 4.25.1
v4.25.1
2026-05-17 15:01:59 +08:00
Soulter
a1e95081be
feat: add random suffix for weixin and dingtalk id
2026-05-17 14:56:15 +08:00
Midwich
b3381c6448
fix(webui): add Noto Sans to global font-family stack for Cyrillic text ( #8205 )
...
PR #8015 added 'Noto Sans' to the Google Fonts link and CJK fallback list,
but the font was placed at the end of $cjk-sans-fallback where browsers
never reach it for Cyrillic text. The global $body-font-family also lacked
'Outfit' entirely, causing Vuetify to use CJK fonts as the primary face.
Changes:
- Remove 'Noto Sans' from the end of $cjk-sans-fallback (it is not a CJK font)
- Add 'Outfit' and 'Noto Sans' to $body-font-family before CJK fallbacks
- Update .Outfit class in _container.scss to match the new stack
This ensures:
- Latin text → Outfit
- Cyrillic text → Noto Sans (loaded by vite-plugin-webfont-dl)
- CJK text → Noto Sans SC / PingFang SC etc.
Fixes follow-up to #8015 .
2026-05-16 22:03:13 +08:00
Soulter
02291a3217
chore: bump version to 4.25.0
v4.25.0
2026-05-16 01:39:04 +08:00
Yufeng He
1d69626421
fix: pass image inputs through active replies ( #8119 )
...
* fix(core): pass images through active replies
* fix: harden active reply image collection
* test: avoid logger coupling in active reply test
* Delete tests/unit/test_builtin_astrbot_main.py
---------
Co-authored-by: Weilong Liao <37870767+Soulter@users.noreply.github.com >
2026-05-16 01:34:03 +08:00
Tom8266
871b932785
fix: detect Tencent SILK (\x02 prefix) in audio magic bytes to avoid ffmpeg failure ( #8009 )
...
* fix: detect Tencent SILK (\x02 prefix) in audio magic bytes to avoid ffmpeg failure
QQ official bot sends voice in Tencent SILK format (leading \x02 byte before
#!SILK_V3 magic). _get_audio_magic_type() had two off-by-one slice errors:
1. Standard SILK: header[:8] vs b'#!SILK_V3' (8 != 9 bytes) — never matched
2. Tencent SILK: not detected at all
Fixes:
- Standard SILK: header[:9] == b'#!SILK_V3' (correct 9-byte slice)
- Tencent SILK: header[:1] == b"\x02" and header[1:10] == b'#!SILK_V3'
- ensure_wav() routes detected silk to tencent_silk_to_wav()
Before: QQ voice → ffmpeg → 'Invalid data found'
After: QQ voice → magic detects silk → tencent_silk_to_wav → WAV OK
* refactor: use startswith() for SILK magic byte detection
Replace manual slice comparisons with startswith() — cleaner, less
error-prone, and immune to off-by-one slice errors.
Suggested by: sourcery-ai
2026-05-16 01:20:52 +08:00
Weilong Liao
c88025c2a3
feat(dingtalk): implement one-click QR registration and polling mechanism ( #8198 )
2026-05-15 18:43:21 +08:00
lingyun14
094aef6241
fix: drop **kwargs bug in two register funcs ( #8141 )
2026-05-15 17:00:03 +08:00
Weilong Liao
6982ef7d94
feat(weixin_oc): handle session timeout and clear login state ( #8196 )
2026-05-15 15:30:56 +08:00
Midwich
1a0306343a
fix(webui): add Noto Sans font support for Cyrillic text ( #8015 )
...
The WebUI only loaded Noto Sans SC (Simplified Chinese), which lacks
Cyrillic glyphs. Russian text fell back to system sans-serif, causing
poor rendering depending on the OS.
Changes:
- Load Noto Sans (regular) from Google Fonts alongside Noto Sans SC
- Add 'Noto Sans' at the END of $cjk-sans-fallback (after CJK fonts)
so Chinese text still renders with system CJK fonts first,
while Cyrillic text falls through to Noto Sans.
This ensures both Chinese and Cyrillic text render correctly.
2026-05-15 13:36:37 +08:00
千岚之夏
a09657e620
fix: handle MiniMax TTS timber weight configuration more robustly to avoid crashes on invalid or empty values
...
* fix: add comments and await asyncio.sleep(0) for startup signal
* fix: [Bug] 修复 MiniMax TTS 空字符串配置解析报错
* fix: 采纳AI审查建议,添日志+提取默认配置变量
* fix: 移除误加的core_lifecycle.py改动
---------
Co-authored-by: RainBot-Ai <qianlanzhiya@gmail.com >
2026-05-15 13:01:36 +08:00
Weilong Liao
aace90daab
feat: supports scan QR code to configure feishu / lark ( #8191 )
...
* feat(lark): implement app registration and bot info retrieval
- Add app registration functionality for Lark and Feishu platforms, including endpoints and request handling.
- Introduce polling mechanism for app registration status.
- Create bot info retrieval functionality to fetch bot details after successful registration.
- Enhance dashboard with new UI components for one-click QR setup and manual setup options.
- Update internationalization files to support new features and actions.
- Add unit tests for app registration endpoint resolution and data handling.
* feat(weixin_oc): add WeChat login registration and QR code handling
2026-05-15 13:00:26 +08:00
Yufeng He
094c2de85a
fix: surface weixin media send failures ( #8175 )
...
* fix: surface weixin media send failures
* fix: include weixin send failure context
* Delete tests/unit/test_weixin_oc_adapter.py
---------
Co-authored-by: Weilong Liao <37870767+Soulter@users.noreply.github.com >
2026-05-14 12:17:59 +08:00
counhopig
7d402fa16a
fix: add ollama and nvidia embedding ( #8104 )
...
* fix: add ollama and nvidia embedding
* fix: address code review feedback for embedding providers
- Remove redundant proxy branch in NvidiaEmbeddingProvider._get_client
- Change ClientError handling to re-raise instead of wrapping in Exception
- Add exc_info=True for better error diagnostics
- Remove redundant isinstance check in OllamaEmbeddingProvider._build_payload
2026-05-14 12:16:35 +08:00
lingyun14
3a1d6c8f89
fix: handle None tool arguments from Claude API for no-parameter tools ( #8136 )
...
* fix: handle None tool arguments returned by Claude API for no-parameter tools
* fix: handle None tool arguments from Claude API for no-parameter tools
* fix: generalize None tool args comment
* fix: generalize None tool args comment
* 去除空格,以保证格式正确
2026-05-14 12:01:19 +08:00
Chang Lee
35f5d7e710
perf: enhance AMR audio quality and simplify opus logic ( #8153 )
...
* chore: streamline convert_audio_to_opus logic
- Route Opus conversion directly through the underlying convert_audio_format.
- Remove redundant FFmpeg processing chains to improve code reusability.
* perf: optimize AMR voice encoding parameters
- Enhance AMR audio quality via built-in FFmpeg filters.
2026-05-14 11:57:14 +08:00
M1LKT
720d384b44
fix: synchronize the autoScroll state of the consoleDisplayer component using $refs ( #8186 )
2026-05-14 11:44:42 +08:00
Yufeng He
3290d75519
fix: prefer bundled dashboard over stale data dist ( #8172 )
...
* fix: prefer bundled dashboard over stale dist
* fix: harden dashboard dist version checks
2026-05-14 09:00:16 +08:00
lingyun14
ef73d2da33
docs: Clarify and expand the LLM tool registration guidance in the AI plugin documentation ( #8178 )
...
* docs(zh/ai): fix misleading tool registration guide and add warnings
* docs(en/ai): add tool registration section with deprecation warnings
2026-05-14 08:58:37 +08:00
Soulter
c77cb0f4e2
chore: bump version to 4.24.5
v4.24.5
2026-05-14 01:16:26 +08:00
Soulter
0e6ad1c443
feat: cli supports ASTRBOT_DASHBOARD_INITIAL_PASSWORD env
2026-05-14 01:13:46 +08:00
Soulter
e05dd650ab
feat(auth): add legacy password login failure message and FAQ guidance for upgrade issues
2026-05-14 00:48:15 +08:00
Soulter
93428a7976
feat: add initial dashboard password resolution from environment variable
2026-05-14 00:45:37 +08:00
Soulter
37142fd253
feat: enhance update dialog with progress tracking and localization updates
...
- Added advanced settings option in update dialog for better user control.
- Implemented detailed progress tracking for update stages including download size and speed.
- Updated localization files for English, Russian, and Chinese to include new strings for update progress and advanced settings.
- Improved UI for update dialog with better layout and responsiveness.
- Enhanced test coverage for update process including progress tracking.
2026-05-14 00:40:24 +08:00
Tsukumi
1b09132e4a
fix: respect explicit Shipyard Neo profile ( #8167 )
2026-05-13 14:38:11 +08:00
NayukiMeko
22ba831a31
fix(message_tools): throw exception and block message sending when path does not exist ( #8149 )
...
* fix(message_tools): 路径不存在时抛出异常并阻止消息发送
- _resolve_path_from_sandbox 在所有解析路径均失败时改为抛出 FileNotFoundError,而非静默返回原始路径,避免将无效路径传递给下游组件
- 新增 component_type 关键字参数,使错误信息能明确指出是 image/record/video/file 哪类资源路径缺失
- 在 call 方法中捕获 FileNotFoundError 并提前返回错误字符串,确保路径无效时不会继续构建或发送任何消息组件
- 补充单元测试,验证缺失图片路径场景下 send_message 不会被调用
* Update tests/unit/test_message_tools.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* fix(tools): propagate sandbox error instead of masking as FileNotFoundError
---------
Co-authored-by: Ruochen Pan <badbatch0x01@gmail.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: RC-CHN <1051989940@qq.com >
2026-05-13 11:50:06 +08:00
Soulter
4672a04eb7
docs: update FAQ to clarify default password usage for first-time login
2026-05-13 01:50:37 +08:00