Commit Graph

5132 Commits

Author SHA1 Message Date
Soulter e9ae69f93a fix: prevent SharedPreferences deadlocks (#9649)
* fix: avoid blocking shared preference access

* docs: clarify shared preference cache roles

* docs: explain shared preference cache purpose

* docs: link cache rationale to pull request
2026-08-13 00:44:42 +08:00
lxfight 95181b6c27 fix(kb): support UUID fallback in get_kb_by_name and warn on missing KBs (#9636)
Fixes #9529.

When kb_names contains UUIDs instead of names, get_kb_by_name() would
return None and check_all_kb() would silently skip retrieval with only
a DEBUG-level log.

Modifications:
- get_kb_by_name() now falls back to UUID lookup when name match fails
- check_all_kb() distinguishes None (not found) from empty KBs and logs
  a WARNING with the count of missing KBs
- Add regression tests covering UUID lookup, name preference, and logging
2026-08-13 00:43:05 +08:00
Soulter dd9da23965 feat(qqofficial): add chunked file uploads (#9646)
Add a dedicated chunked uploader for large local QQ Official media. Keep C2C and group endpoints explicit, support server-provided part index bases, and retry transient upload operations.

Co-authored-by: Fuyan Yuan <33221728+TheRainstorm@users.noreply.github.com>
2026-08-12 23:25:24 +08:00
Soulter a9a1000e59 fix: propagate QQ media upload failures (#9644) 2026-08-12 23:11:21 +08:00
Soulter fbf5284aec fix: improve dark theme text contrast (#9643) 2026-08-12 22:38:34 +08:00
C₂₂H₂₅NO₆ 5e40eb4b52 feat: add download-count sorting to plugin marketplace (#9570)
* feat: 插件市场支持按下载量排序

为插件市场现有的前端本地排序补充下载量选项,复用已规范化的 download_count,不改变默认推荐顺序、后端接口和 OpenAPI。

新增稳定且不修改输入的下载量排序工具:支持升降序、未知值双向置底、非法值兜底及相同值原始顺序保留;接入市场排序控件并补齐中、英、俄三语文案。

新增 9 项专项单元测试,覆盖正常排序、零值、缺失与非法值、负数、数字字符串、小数、稳定性和输入不可变。验证通过 45 项 Dashboard Node 测试、额外性质检查、三语 JSON 校验、Vue 类型检查和生产构建。

* Delete dashboard/tests/marketPluginSort.test.mjs

* refactor: 内联插件市场下载量排序

删除独立的市场下载量排序工具,将下载量比较逻辑直接放在现有市场排序分支。

缺失下载量使用默认值 0,保持前端本地排序与现有排序行为一致。

验证:vue-tsc --noEmit;pnpm run build;node --test dashboard/tests/*.test.mjs;git diff --check。

---------

Co-authored-by: C₂₂H₂₅NO₆ <Sisyphbaous-DT-Project@users.noreply.github.com>
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
2026-08-12 21:41:12 +08:00
Wei Chengqian 123439d098 feat: support PowerShell 7 for Windows local shell (#9622)
* feat(config): add Windows PowerShell version option

* feat(computer): honor Windows PowerShell version in local runtime

* fix(computer): correct stale shell comment for configurable PowerShell

* refactor(computer): inline windows shell resolution per AGENTS.md

* test(computer): assert windows_shell in exec_managed call

* test: make shell tests cross-platform

Co-authored-by: Donoym <prober13c14@gmail.com>

* refactor(computer): auto-detect Windows shell instead of config

* fix(computer): drop stale cmd.exe references after shell auto-detect

* style: apply ruff format and import order

* Update astrbot/core/astr_main_agent.py

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: Donoym <prober13c14@gmail.com>
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-08-12 21:01:42 +08:00
Soulter fc353ab342 chore: update readme 2026-08-12 19:20:37 +08:00
Soulter a9bb8a64ca fix: stabilize OpenAI HTTP client test 2026-08-12 10:42:17 +08:00
Zeyu Zhang 889feb908b fix: fix: restore missing WebChat sessions (#9607) 2026-08-12 10:33:50 +08:00
Trainingcqy 91ee487131 fix: convert Telegram video notes into a Video component (#9627) 2026-08-12 10:27:03 +08:00
VIOLET dbc0e7113f refactor(core): add type hints to pipeline scheduler (#9621)
* refactor(core): add type hints to pipeline scheduler

* docs(stage): 修正 process 方法注释
2026-08-12 10:26:06 +08:00
Wei Chengqian 79959bb97c fix: treat empty config schema as no config items (#9619)
* fix: treat empty config schema as no config items

* docs: clarify empty schema handling
2026-08-12 10:25:11 +08:00
dependabot[bot] 8ab30ba487 chore(deps): bump the github-actions group with 2 updates (#9620)
Bumps the github-actions group with 2 updates: [pnpm/action-setup](https://github.com/pnpm/action-setup) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `pnpm/action-setup` from 6.0.9 to 6.0.10
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v6.0.9...v6.0.10)

Updates `github/codeql-action` from 4.37.4 to 4.37.6
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v4.37.4...v4.37.6)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: 6.0.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action
  dependency-version: 4.37.6
  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-08-12 10:23:53 +08:00
Trainingcqy 939bdce0df fix(telegram): use static thumbnail for animated stickers (#9610) 2026-08-10 21:24:46 +08:00
lxfight aeccd857e1 fix(kb): restore complete knowledge base retrieval results (#9618)
* fix(kb): calibrate dense scores across knowledge bases

* fix(kb): retain distinct chunks from source documents
2026-08-10 21:21:36 +08:00
Soulter 30e20318cb fix: cancel stopped agent runs immediately (#9602)
* fix: cancel stopped agent runs immediately

* refactor: simplify stopped run history
2026-08-08 17:10:04 +08:00
Soulter b3949f97bd feat(webui): add plugin config default reset (#9599) 2026-08-08 15:44:26 +08:00
Wei Chengqian 40c8d1ad03 fix: capture agent end_time before emitting agent_stats (#9597) 2026-08-08 12:05:40 +08:00
Soulter 2418c6a0c7 fix: sync plugin skill state across the dashboard (#9596)
* fix: hide skills from disabled plugins

* fix: show disabled plugin skills in personas

* fix: align skill list query types

* fix: show disabled plugin skills in skills page

* style: dim inactive skills

* docs: regenerate public OpenAPI spec

* refactor: always include plugin skills
2026-08-08 12:05:14 +08:00
KazusaUwU 516c22ede9 fix: warn when an explicitly configured WebUI dist is stale (#9518)
* fix: warn when an explicitly configured WebUI dist is stale

resolve_dashboard_dist() returns an explicitly configured --webui-dir
immediately, without checking the version it declares. Every other branch in
the same function verifies compatibility and warns on a mismatch, so this is
the one way to end up serving assets that do not match the running core with
no diagnostic at all.

That is the case a packaged distribution hits: when the launcher updates the
backend but keeps its bundled WebUI directory, the dashboard silently stays on
the previous release. Features added by the new core are simply missing from
the UI and nothing explains why.

Behaviour is unchanged -- the directory is still served, since refusing to
serve it would be worse than serving an old one. It is just no longer silent.

* refactor: tidy the explicit WebUI dist resolution

Build the Path once instead of twice, and hold the version read for the
warning in a local so the log call only carries values.
2026-08-08 09:28:07 +08:00
Wei Chengqian f534c4fd5f fix: sanitize MCP tool names for LLM API (#9534) 2026-08-08 09:25:50 +08:00
Wei Chengqian 09459a49fa fix: prevent transient project session in ChatUI session list (#9587)
* fix: prevent transient project session in ChatUI session list (#9567)

* style: simplify session list refresh comment
2026-08-08 09:24:27 +08:00
Enterpr1se 609e576b31 fix: refresh in-memory provider config after deletion (#9568)
ProviderManager.delete_provider removed the provider from the persisted
config but left self.providers_config pointing at the stale list, so the
dashboard kept showing deleted providers until a reload or restart.

Sync self.providers_config with the just-saved config after deletion so
the API/provider list reflects the removal immediately.
2026-08-07 18:04:21 +08:00
lxfight 0024a5da46 fix(kb): distinguish loading errors from empty states (#9578)
* fix(kb): distinguish loading errors from empty states

* fix(kb): reset loading errors before retries
2026-08-07 17:36:27 +08:00
Wei Chengqian de4cbbcbc1 feat: expand webchat drag-and-drop upload to the whole chat area (#9564)
* feat(webchat): expand drag-and-drop upload to the whole chat area

* fix(webchat): restore drag-and-drop upload in project mode

The full-area drop handler was only attached to .conversation-stack (the
non-project branch), and ChatInput's own handlers were removed, so project
mode lost drag-and-drop upload entirely. Hoist dragEvents and the overlay
to .chat-main so all three branches (provider / project / conversation)
are covered; guard the drop and hide the overlay while the provider
workspace is active.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(webchat): clear drag-leave timeout on unmount

Use onScopeDispose so a timeout left pending when the component unmounts
mid-drag can't write to the composable's state afterwards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-07 17:36:02 +08:00
Wei Chengqian 1d2acb3574 fix: use favicon as default plugin icon (#9547) 2026-08-07 17:33:47 +08:00
lxfight ea6f1e17f1 fix(kb): stabilize document search behavior (#9577) 2026-08-07 17:21:48 +08:00
Soulter ba2064455c feat: support passwordless desktop sessions (#9585) 2026-08-07 17:15:51 +08:00
Ruochen Pan 6da067c3bd refactor: migrate config preferences to async (#9584)
* refactor: migrate config preferences to async

* refactor: centralize config mapping persistence
2026-08-07 17:12:07 +08:00
Ruochen Pan 9fa0a198a4 refactor: remove sync shared preferences (#9582)
* refactor: migrate async session preference calls

* refactor: migrate internal preference calls to async

* perf: reuse tool permissions when listing tools
2026-08-07 12:20:18 +08:00
Ruochen Pan 78214cac5a feat: show effective AstrBot time in settings (#9581) 2026-08-07 11:25:51 +08:00
Ruochen Pan 5259c4b9c5 fix: inherit configured timezone for cron jobs (#9579) 2026-08-07 10:28:05 +08:00
Soulter 346b85db9d docs: complete RainYun deployment guide 2026-08-06 02:01:15 +08:00
Soulter ad4fbfa90c chore: bump version to 4.27.2 (#9553)
Prepare the AstrBot 4.27.2 patch release.
v4.27.2
2026-08-05 11:18:29 +08:00
QingFeng bb9b187847 fix: remove invalid file types (#9544) 2026-08-04 15:17:39 +08:00
QingFeng 03a6edb29e chore: refactor issue template (#9536)
* chore: refactor issue template

* chore: Remove invalid `<br>`

* chore: allow uploading archive files for issue reproduction
2026-08-04 11:26:22 +08:00
dependabot[bot] 68eab0f3db chore(deps): bump the github-actions group with 3 updates (#9532)
Bumps the github-actions group with 3 updates: [github/codeql-action](https://github.com/github/codeql-action), [docker/login-action](https://github.com/docker/login-action) and [actions/stale](https://github.com/actions/stale).


Updates `github/codeql-action` from 4 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v4...v4.37.4)

Updates `docker/login-action` from 4.5.1 to 4.6.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v4.5.1...v4.6.0)

Updates `actions/stale` from 10 to 11
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: docker/login-action
  dependency-version: 4.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: actions/stale
  dependency-version: '11'
  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-08-04 11:22:39 +08:00
Wei Chengqian adce0e59cd fix: use current favicon on login page (#9537) 2026-08-04 11:22:15 +08:00
Soulter 253d1ab5b2 fix(dashboard): refine capability and welcome styling (#9541)
Remove the custom capability source chip and refine welcome card styling.
2026-08-04 10:55:46 +08:00
Ruochen Pan 6e63474c13 test: isolate API key admin configuration (#9539) 2026-08-04 09:51:04 +08:00
Ruochen Pan 573367b7f3 fix: accept bearer token for backup downloads (#9525)
* fix: accept bearer token for backup downloads

* fix: parse backup bearer scheme case-insensitively
2026-08-03 15:12:45 +08:00
Soulter ba7b315749 chore: bump version to 4.27.1 (#9520)
* test: support latest OpenAI usage schema

* chore: bump version to 4.27.1
v4.27.1
2026-08-03 00:01:00 +08:00
Soulter 6c19f34bd4 feat: add built-in skill creator and document skills (#9517)
* feat: add builtin skill creator

* feat: add builtin PDF skill

* feat: add builtin office skills

* fix: align closed capability status labels
2026-08-02 23:38:46 +08:00
Soulter 20c294fcaf feat: add stateless Responses API provider (#9515)
* feat: add stateless Responses API provider

* Potential fix for pull request finding 'CodeQL / Incomplete URL substring sanitization'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* fix: use versioned DeepSeek Responses API base URL

* style: format Responses API provider

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-08-02 23:15:50 +08:00
Soulter e4cf9b1681 fix: correct dark theme capability chip colors 2026-08-02 23:13:14 +08:00
Soulter c68a2ea83b feat: add yes option to init command (#9514) 2026-08-02 22:52:15 +08:00
Soulter 9bb294d8cc chore: bump version to 4.27.0 (#9509)
* chore: bump version to 4.27.0

* docs: add built-in skills to 4.27.0 changelog

* docs: add v4.27.0 release epigraph
v4.27.0
2026-08-02 17:53:20 +08:00
lxfight 6f9e22b0f5 perf: improve knowledge base retrieval quality (#9455)
* perf: improve knowledge base score fusion

* perf: diversify knowledge base source documents
2026-08-02 17:28:03 +08:00
Soulter 2be0b20541 fix: defer cleanup of outbound audio files (#9506) 2026-08-02 16:07:58 +08:00