dependabot[bot]
437adead28
chore(deps): bump the github-actions group with 2 updates ( #6461 )
...
Bumps the github-actions group with 2 updates: [ncipollo/release-action](https://github.com/ncipollo/release-action ) and [actions/github-script](https://github.com/actions/github-script ).
Updates `ncipollo/release-action` from 1.20.0 to 1.21.0
- [Release notes](https://github.com/ncipollo/release-action/releases )
- [Commits](https://github.com/ncipollo/release-action/compare/v1.20.0...v1.21.0 )
Updates `actions/github-script` from 7 to 8
- [Release notes](https://github.com/actions/github-script/releases )
- [Commits](https://github.com/actions/github-script/compare/v7...v8 )
---
updated-dependencies:
- dependency-name: ncipollo/release-action
dependency-version: 1.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: github-actions
- dependency-name: actions/github-script
dependency-version: '8'
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-03-17 13:53:37 +08:00
Rhonin Wang
d5b98b353c
fix: parse multiline frontmatter description in SKILL.md ( #6460 )
...
* fix(skills): support multiline frontmatter descriptions
* fix(skills): 修复多行 frontmatter 描述解析
* style(skills): clean up frontmatter parser follow-ups
---------
Co-authored-by: RhoninSeiei <RhoninSeiei@users.noreply.github.com >
2026-03-17 13:53:16 +08:00
Yufeng He
acbc5150cf
fix: SQLite 'database is locked' by adding busy timeout ( #6474 )
...
The async engine is created without a busy timeout, so concurrent
writes (agent responses, metrics, session updates) fail instantly
with 'database is locked' instead of waiting for the lock.
Add connect_args={'timeout': 30} for SQLite engines so the driver
waits up to 30 seconds for the write lock. Combined with the existing
WAL journal mode, this handles the typical concurrent write bursts
from agent + metrics + session operations.
Fixes #6443
2026-03-17 12:56:34 +08:00
Ruochen Pan
85cfd62014
feat: localize session management group & interval method texts ( #6471 )
...
* fix(ui): localize session management group texts
Replace hardcoded Chinese strings in SessionManagementPage with i18n
lookups for group management labels, dialogs, and action feedback.
Add and align translation keys in en-US, ru-RU, and zh-CN for group
management and batch operation messages to ensure consistent multilingual
UI behavior.
* fix(ui): localize interval method hint text
2026-03-17 10:21:55 +08:00
LIghtJUNction
1c7c2ee0cd
chore: Delete .github/workflows/pr-checklist-check.yml
2026-03-17 10:18:08 +08:00
Soulter
ed47420678
ci: add pr check
2026-03-17 01:07:22 +08:00
Soulter
6d687691a2
chore: bump version to 4.20.1
v4.20.1
2026-03-17 00:35:57 +08:00
Soulter
0c71d351ee
chore: revise PULL_REQUEST_TEMPLATE
2026-03-16 22:20:48 +08:00
LIghtJUNction
f00ba5adc6
chore(github): 更新 PR 模板以区分 dev 和 master 提交规则
2026-03-16 21:43:14 +08:00
LIghtJUNction
d3d4e1db7b
Merge branch 'master' of https://github.com/AstrBotDevs/AstrBot
2026-03-16 19:17:42 +08:00
LIghtJUNction
78b3e12c66
chore: update astrbot.service configuration
2026-03-16 19:15:44 +08:00
Futureppo
c42ac87ee1
feat: Add OpenRouter chat completion provider adapter with custom headers. ( #6436 )
2026-03-16 19:11:43 +08:00
QuietStars
3fbd16b211
docs: update rainyun.md with backup access instructions ( #6427 )
...
Added a note about using a backup address if the management panel cannot be accessed.
2026-03-16 15:38:01 +08:00
qingyun
e77500ff69
fix(provider): sync providers_config after creating new provider ( #6388 )
...
Fixes #6283
When adding a new embedding provider, the knowledge base creation page
did not show the new provider until restart.
Root cause: create_provider() did not update self.providers_config,
which is used by get_provider_config_list() to return provider lists.
This fix syncs the in-memory config after loading the new provider,
consistent with how reload() handles config updates.
Co-authored-by: ccsang <ccsang@users.noreply.github.com >
2026-03-16 15:29:51 +08:00
lppsuixn
2c49ac0dcf
Refactor _extract_session_id for chat type handling ( #5775 )
...
Update session ID extraction to handle group and single chat types.
2026-03-16 15:27:16 +08:00
Soulter
65decfbe87
chore: remove unused scripts for closing duplicate plugin publish issues and generating changelog
2026-03-16 12:39:39 +08:00
stevessr
92c31192de
perf: enhance umo processing compatibility ( #5996 )
2026-03-16 12:34:21 +08:00
LIghtJUNction
b795f804a7
更新 pr-checklist-check.yml
2026-03-16 02:51:39 +08:00
LIghtJUNction
bc3b5e58a4
更新 pr-checklist-check.yml
2026-03-16 02:44:05 +08:00
LIghtJUNction
7e3c32b828
更新 pr-checklist-check.yml
2026-03-16 02:29:33 +08:00
LIghtJUNction
ceb32dce9f
更新 pr-checklist-check.yml
2026-03-16 02:24:01 +08:00
LIghtJUNction
84e880af5f
更新 pr-checklist-check.yml
2026-03-16 02:21:05 +08:00
LIghtJUNction
9909d774ed
Merge pull request #6400 from AstrBotDevs/copilot/implement-modifications-summary
...
feat: auto-close PRs when author checks "did not read" checklist item
2026-03-16 02:13:20 +08:00
LIghtJUNction
6b3868b4be
Update pr-checklist-check.yml
2026-03-16 02:11:15 +08:00
LIghtJUNction
11c840953a
更新 pr-checklist-check.yml
2026-03-16 01:49:49 +08:00
LIghtJUNction
2bbca887ce
Refine PR checklist validation and closure message
...
Updated the checklist validation script and modified the comment for PR closure.
2026-03-16 01:46:07 +08:00
copilot-swe-agent[bot]
dd89a4b334
feat: add PR checklist enforcement workflow
...
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
2026-03-15 17:30:29 +00:00
copilot-swe-agent[bot]
a3fa8a5a7c
Initial plan
2026-03-15 17:28:39 +00:00
LIghtJUNction
aa60467782
Merge pull request #6399 from AstrBotDevs/LIghtJUNction-patch-1
...
Refactor checklist items in PR template
2026-03-16 01:24:30 +08:00
LIghtJUNction
d936bb0a10
Refactor checklist items in PR template
...
Duplicated checklist items in the pull request template for clarity and emphasis.
2026-03-16 01:23:51 +08:00
Stable Genius
64e0183b55
fix: drop Groq reasoning_content from assistant history ( #6065 )
...
Co-authored-by: Stable Genius <259448942+stablegenius49@users.noreply.github.com >
2026-03-15 22:51:52 +08:00
Soulter
420d82df11
chore: ruff format
2026-03-15 22:43:29 +08:00
Yufeng He
d87cf897da
Fix TypeError when API returns null choices ( #6313 )
...
* Fix CreateSkillPayloadTool array schema missing items field
The payload parameter's anyOf array variant lacked an items field,
causing Gemini API to reject the tool declaration with 400 Bad Request:
'parameters.properties[payload].any_of[1].items: missing field.'
Add items: {type: object} to the array variant to satisfy the Gemini
API requirement for array type schemas.
Fixes #6279
* Fix TypeError when OpenAI-compatible API returns null choices
Some providers (e.g. OpenRouter) may return a completion where
choices is None rather than an empty list — for instance on rate
limiting, content filtering, or transient errors. The existing code
used len(completion.choices) which throws TypeError on None.
Replace all len(...choices) == 0 checks with 'not ... .choices' which
handles both None and empty list. Affects _query_stream, _parse_openai_completion,
and _extract_reasoning_content.
Fixes #6252
2026-03-15 22:28:26 +08:00
時壹
2f51916a73
fix: deduplicate repeated QQ webhook retry callbacks ( #6320 )
2026-03-15 22:18:37 +08:00
Rin
b0e10cf479
fix: add null check for delta in streaming mode to prevent AttributeError when tool calls are returned ( #6365 )
2026-03-15 22:17:12 +08:00
Simon
20efaa5320
fix: revise link to model service configuration ( #6296 )
2026-03-15 22:03:52 +08:00
洛薇Lovie
3ccd70cd4e
Fix: AI fails to send media files when tool-calling mode is set to "skills-like". ( #6317 )
...
* fix: improve send_message_to_user tool description for skills_like mode
* fix: enhance description for send_message_to_user tool to clarify usage
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-03-15 21:46:01 +08:00
xwsjjctz
da520e573a
feat(provider): add MiniMax ( #6318 )
...
* feat(provider): add MiniMax
* feat(provider): reintroduce MiniMax provider configuration and remove deprecated source
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-03-15 21:37:44 +08:00
Trainingcqy
6d055e81e9
fix: GIF sent as static image in Telegram adapter ( #6329 )
...
* fix(telegram): route GIF files to send_animation instead of send_photo
* fix: narrow exception in _is_gif to OSError
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* refactor: simplify image send dispatch in send_with_client
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* refactor: simplify image dispatch in _process_chain_items
* 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-03-15 21:33:30 +08:00
Xial
d41ccb70c5
fix: replace npm registry URLs with jsdelivr CDN for provider icons ( #6340 )
2026-03-15 21:15:04 +08:00
qingyun
18a99a25c2
fix(platform): parse QQ official face messages to readable text ( #6355 )
...
Fixes #6294
QQ official bot receives emoji/sticker messages as raw XML-like tags:
`<faceType=4,faceId="",ext="eyJ0ZXh0IjoiW+a7oeWktOmXruWPt10ifQ==">`
This made the LLM unable to understand the emoji content.
Changes:
- Added `_parse_face_message()` method to parse face message format
- Decode base64 `ext` field to get emoji description text
- Replace face tags with `[表情:描述]` format for readability
Example:
- Input: `<faceType=4,faceId="",ext="eyJ0ZXh0IjoiW+a7oeWktOmXruWPt10ifQ==">`
- Output: `[表情:[满头问号]]`
Co-authored-by: ccsang <ccsang@users.noreply.github.com >
2026-03-15 21:05:47 +08:00
LIghtJUNction
96cafe001d
Merge pull request #6293 from AstrBotDevs/LIghtJUNction-patch-1
...
Update package.md
2026-03-15 03:15:10 +08:00
LIghtJUNction
29d100dd83
Update package.md
2026-03-15 02:55:34 +08:00
Soulter
14f3701c4a
fix: update Discord invite link in community documentation
...
closes : #6188
2026-03-14 23:48:13 +08:00
Stable Genius
1044fc48ca
fix: avoid webchat stream result crash on queue errors ( #6123 )
...
Co-authored-by: stablegenius49 <185121704+stablegenius49@users.noreply.github.com >
2026-03-14 23:41:28 +08:00
Soulter
693c2ca818
refactor: improve chat component behavior, use shiki to represent code block ( #6286 )
2026-03-14 23:37:17 +08:00
Soulter
b1c486ba98
feat: add send shortcut configuration and localization support for chat input ( #6272 )
2026-03-14 21:25:12 +08:00
Soulter
9363fb824a
chore: ruff format
2026-03-14 21:12:00 +08:00
Flartiny
044b361ac5
feat: add conversation batch deletion for webchat ( #6160 )
...
* feat: add conversation batch deletion for webchat
* fix: security issues in batch_delete_sessions and better handle batch select
* feat: enhance batch selection UI with animated checkbox visibility in ConversationSidebar
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-03-14 21:09:36 +08:00
Frank
06fd2d2428
fix: preserve subagent handoff tools during plugin filtering ( #6155 )
2026-03-14 20:55:15 +08:00