Commit Graph

4959 Commits

Author SHA1 Message Date
LIghtJUNction
0b07409016 fix(dashboard): completely eliminate all vuetify theme change warnings 2026-04-04 18:39:19 +08:00
LIghtJUNction
6675a95752 fix(dashboard): completely resolve vuetify deprecation warning for theme switching 2026-04-04 18:38:49 +08:00
LIghtJUNction
607735e55b fix(dashboard): resolve missing translations and autocomplete warnings 2026-04-04 18:37:05 +08:00
LIghtJUNction
b4f3718413 fix(dashboard): restore beautiful glassmorphism login UI lost during master branch merge 2026-04-04 18:33:45 +08:00
LIghtJUNction
3b8a77b053 fix(dashboard): use correctly intercepted axios in VerticalHeader.vue to respect API base url 2026-04-04 18:11:55 +08:00
LIghtJUNction
5012475c29 style: remove redundant empty lines and unused exception variables 2026-04-04 17:53:05 +08:00
LIghtJUNction
6bff35d40c fix(dashboard): resolve JSON syntax errors and BOM in auth.json 2026-04-04 17:22:39 +08:00
LIghtJUNction
f429c7203a test: update dashboard password resolution and fix mock loggers 2026-04-04 17:00:12 +08:00
LIghtJUNction
8f62ad5b73 feat(auth): merge challenge-proof authentication and argon2 hashing from fix branch 2026-04-04 16:54:19 +08:00
Soulter
a64d4e7e6e fix(auth): update md5 import syntax for consistency 2026-04-04 16:44:35 +08:00
LIghtJUNction
3d2ff938f5 fix(cli): use raise from e in exception clauses 2026-04-04 16:34:56 +08:00
Soulter
5c27cf1b30 chore: ruff format 2026-04-04 16:31:59 +08:00
Soulter
a47e39d7c4 feat(auth): implement secure login challenge and proof verification 2026-04-04 16:30:57 +08:00
LIghtJUNction
4308580039 chore: ruff 2026-04-04 16:29:00 +08:00
LIghtJUNction
c4dee9091a refactor(cli): unify password encryption logic in cmd_conf.py 2026-04-04 16:27:53 +08:00
Soulter
b749f62e90 fix(security): increase PBKDF2 iterations 2026-04-04 15:34:33 +08:00
LIghtJUNction
fe0e235c22 Merge remote-tracking branch 'origin/master' into dev 2026-04-04 15:25:33 +08:00
Soulter
a3abb28ce3 test: adapt dashboard auth fixtures for hashed default password 2026-04-03 17:44:38 +08:00
Soulter
a0159c8a36 fix(i18n): update password policy hints and validation rules for improved security 2026-04-03 17:40:33 +08:00
Soulter
90b79d53fa fix(webui): enforce 12-char dashboard password policy with backend+frontend validation 2026-04-03 17:37:03 +08:00
SoloLevelingAI
77d5d5cc6a fix(windows): inherit all system environment variables into MCP runner for Windows (#7054)
- Merge environment variables case‑insensitively
- Auto‑configure dotnet PATH and suppress console window
- Keep PATHEXT inheritance (from old implementation)

Replaces the minimal PATHEXT fix with a robust solution that resolves
common Windows subprocess issues, especially for .NET servers.

* fix(stdio): improve Windows environment setup for subprocesses

- Merge environment variables case‑insensitively
- Auto‑configure dotnet PATH and suppress console window
- Keep PATHEXT inheritance (from old implementation)
-Add `show_console` option to control `CREATE_NO_WINDOW` flag.Default remains hidden (backward compatible) but can be overridden.

Replaces the minimal PATHEXT fix with a robust solution that resolves
common Windows subprocess issues, especially for .NET servers.

* fix(stdio): improve Windows environment setup for subprocesses 修复(标准输入输出):改进 Windows 环境设置以支持子进程

- Merge environment variables case‑insensitively
- Auto‑configure dotnet PATH and suppress console window
- Keep PATHEXT inheritance (from old implementation)
-Add `show_console` option to control `CREATE_NO_WINDOW` flag.Default remains hidden (backward compatible) but can be overridden.

Replaces the minimal PATHEXT fix with a robust solution that resolves
common Windows subprocess issues, especially for .NET servers.

* fix(stdio): improve Windows environment setup for subprocesses 修复(标准输入输出):改进 Windows 环境设置以支持子进程

- Merge environment variables case‑insensitively
- Auto‑configure dotnet PATH and suppress console window
- Keep PATHEXT inheritance (from old implementation)
-Add `no_console` option to control `CREATE_NO_WINDOW` flag.Default remains hidden (backward compatible) but can be overridden.

Replaces the minimal PATHEXT fix with a robust solution that resolves
common Windows subprocess issues, especially for .NET servers.

* fix(stdio): improve Windows environment setup for subprocesses 修复(标准输入输出):改进 Windows 环境设置以支持子进程

- Merge environment variables case‑insensitively
- Auto‑configure dotnet PATH and suppress console window
- Keep PATHEXT inheritance (from old implementation)
-Add `no_console` option to control `CREATE_NO_WINDOW` flag.Default remains hidden (backward compatible) but can be overridden.

Replaces the minimal PATHEXT fix with a robust solution that resolves
common Windows subprocess issues, especially for .NET servers.

* fix(windows): inherit all system environment variables for subprocesses

- Merge environment variables case‑insensitively
- Auto‑configure dotnet PATH and suppress console window
- Keep PATHEXT inheritance (from old implementation)
- No longer handle as a special case for C#.

Replaces the minimal PATHEXT fix with a robust solution that resolves
common Windows subprocess issues, especially for .NET servers.

* chore: ruff format

---------

Co-authored-by: Soulter <905617992@qq.com>
2026-04-03 16:51:20 +08:00
Yufeng He
1408a8449e perf: Set content to None when the OpenAI message content list is empty (#6551)
_finally_convert_payload 提取 think 部分后,如果 assistant 消息的
所有 content 都是 think 类型,new_content 会变成空列表 []。
Grok 等 provider 不接受空 content list,直接报 400。

改为 new_content or None,空列表时回退到 None(OpenAI 兼容 API
普遍接受 null content 的 assistant 消息)。

Fixes #6447

Co-authored-by: Yufeng He <40085740+universeplayer@users.noreply.github.com>
2026-04-03 16:38:22 +08:00
Yufeng He
8f95ca9d98 fix: filter Gemini thinking parts from user-facing message chain (#7196)
Gemini 3 models return thinking parts (part.thought=True) alongside the
actual response text.  _process_content_parts was including these thinking
parts in the message chain sent to the user, effectively leaking internal
reasoning into the output.  On platforms that split long messages (e.g.
aiocqhttp with realtime segmenting), this caused duplicate or triple
replies since the thinking text often mirrors the actual response.

The streaming path already handled this correctly via chunk.text which
skips thinking parts, but the non-streaming path and the final-chunk
processing in streaming both went through _process_content_parts.

Also switch the Gemini 3 model name matching from an exhaustive list to
prefix matching (gemini-3- / gemini-3.) so new variants like gemini-3.1
get proper thinkingLevel config without code changes.

Fixes #7183
2026-04-03 16:35:25 +08:00
Yufeng He
5e78a24d63 fix: satisfy Google Gemini's function_response requirements to avoid 400 Invalid argument errors (#7216)
Gemini API requires function_response to be a google.protobuf.Struct
(JSON object). When tool results are plain text strings, the API
returns 400 Invalid argument. Detect non-JSON tool content for Gemini
models and wrap it in {"result": content} before sending.

Fixes #7134
2026-04-03 16:32:49 +08:00
Soulter
6a7b622c48 fix: resolve Discord/Misskey hot reload issue by fixing client_self_id misuse (#7331)
* fix: resolve Discord/Misskey hot reload issue by fixing client_self_id misuse

fixes: #7187
closes: #7188

* fix: english logging
2026-04-03 14:03:23 +08:00
Soulter
5886c43752 fix: add qrcode package for QR code generation support
closes: #7327
2026-04-03 13:15:04 +08:00
氕氙
88d70a8013 docs: 在 uv 部署文档中添加不支持 WebUI 升级的说明 (#7298)
* docs: 在 uv 部署文档中添加不支持 WebUI 升级的说明

通过 astrbot run(CLI 模式)启动时,会设置 ASTRBOT_CLI 环境变量,
updator 会拒绝 WebUI 触发的升级操作以避免版本管理混乱。
用户需要通过命令行执行 uv tool upgrade astrbot 来更新。

Closes #7291

* Update README.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update README_fr.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update README_ja.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update README_ru.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update README_zh-TW.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update README_zh.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-03 09:03:29 +08:00
LIghtJUNction
26ff632831 chore: remove astrbot-rs 2026-04-03 01:26:25 +08:00
LIghtJUNction
8310ade509 Update pyproject.toml 2026-04-03 01:13:09 +08:00
LIghtJUNction
6918ebe740 fix: revert shell execution logic back to master implementation 2026-04-03 01:06:37 +08:00
LIghtJUNction
252c62379e feat: rename CORS_ALLOW_ORIGIN to ASTRBOT_CORS_ALLOW_ORIGIN and add it to .env.example 2026-04-03 01:01:31 +08:00
LIghtJUNction
7b11f90d7b chore(deps): bump lodash from 4.17.23 to 4.18.1 in dashboard 2026-04-03 00:50:35 +08:00
LIghtJUNction
2126002b7a fix: 修复 Vue 样式穿透警告并更新 tsconfig 解析模式 2026-04-02 23:16:09 +08:00
LIghtJUNction
d9e91bb41e style: 修复 Webchat 浅色模式字体颜色及更新数据统计面板样式 2026-04-02 22:58:55 +08:00
LIghtJUNction
59c0e744c3 fix(dashboard): use @/utils/request instance of axios globally 2026-04-02 22:27:29 +08:00
LIghtJUNction
5f701a75c7 fix(dashboard): use global.name.value for Vuetify 3 theme change 2026-04-02 22:22:34 +08:00
LIghtJUNction
582a63b79e fix(dashboard): mount pinia before router to avoid white screen on start 2026-04-02 22:20:11 +08:00
LIghtJUNction
d3a429a11f fix(dashboard): remove unused join import in vite config 2026-04-02 22:15:00 +08:00
LIghtJUNction
422d3c169c chore(dashboard): silence Sass if-function deprecation warnings 2026-04-02 22:13:27 +08:00
LIghtJUNction
c867dac40b fix(deps): dompurify version conflict 2026-04-02 21:58:44 +08:00
LIghtJUNction
ea5d5736ff chore(vite): silence Sass import deprecation warnings 2026-04-02 21:58:33 +08:00
LIghtJUNction
22606f3510 Restore original dev frontend request handling 2026-04-02 21:45:02 +08:00
LIghtJUNction
74849b4936 fix auth store defineStore arguments 2026-04-02 21:43:34 +08:00
LIghtJUNction
005b836fea Merge remote-tracking branch 'origin/master' into dev
# Conflicts:
#	astrbot/core/knowledge_base/kb_helper.py
#	astrbot/core/knowledge_base/kb_mgr.py
#	dashboard/src/components/extension/PinnedPluginItem.vue
#	dashboard/src/components/provider/ProviderModelsPanel.vue
#	dashboard/src/components/provider/ProviderSourcesPanel.vue
#	dashboard/src/components/shared/ConsoleDisplayer.vue
#	dashboard/src/main.ts
#	dashboard/src/stores/auth.ts
#	dashboard/src/views/ConversationPage.vue
#	dashboard/src/views/ProviderPage.vue
#	dashboard/src/views/authentication/auth/LoginPage.vue
#	dashboard/src/views/knowledge-base/KBList.vue
#	requirements.txt
2026-04-02 21:37:21 +08:00
LIghtJUNction
3af00b90bd chore: cmd_run 2026-04-02 21:30:59 +08:00
LIghtJUNction
ca4923dec6 refactor: remove TUI from cmd_run 2026-04-02 21:28:37 +08:00
LIghtJUNction
868c81bbc7 chore: commit all changes 2026-04-02 21:23:23 +08:00
LIghtJUNction
0883437c1a chore: remove dashboard dist symlink 2026-04-02 19:38:26 +08:00
LIghtJUNction
310fdf3c14 fix: handle broken dashboard dist symlink in hatch build hook for AUR compatibility 2026-04-02 19:38:17 +08:00
氕氙
9d4472cb2d fix: 改进知识库的初始化错误处理 (#7243)
* fix: 改进 KnowledgeBaseManager 和 KBHelper 中的初始化错误处理

* fix: 改进知识库初始化和重排序错误处理,增强日志记录

* fix: 改进知识库模块初始化和检索错误处理

* fix(ui): handle kb init errors in list cards

display a dedicated error state for knowledge base cards that fail
initialization, including a visible badge and error details

prevent navigation and edit actions for failed cards while keeping
delete available, and hide normal stats/description for error items

add list.initError locale strings for en-US, ru-RU, and zh-CN

* fix(kb): avoid replacing helper on init failure

Initialize a new KB helper before swapping instances so a failed re-init
does not break the active knowledge base service.

If initialization fails, restore in-memory KB settings and keep the
existing helper and previous init error state.

Also clear stale init_error after successful vector DB initialization to
prevent outdated error reporting.

* test(kb): add kb manager resilience tests

cover initialization failure and recovery scenarios to guard
against regressions in kb error handling

include reference assets under refs for test validation

---------

Co-authored-by: RC-CHN <1051989940@qq.com>
2026-04-02 16:16:22 +08:00