RC-CHN
cf9a7235f7
fix(computer): return none for unsupported browser capability
...
set the base booter browser property to return None instead of
raising NotImplementedError so callers can handle missing browser
support through capability checks
2026-02-17 16:59:05 +08:00
RC-CHN
d62a6f107b
fix(computer): mask bay api key in logs
...
Also add shipyard-neo-sdk dependency for neo support
2026-02-17 16:40:55 +08:00
Ruochen Pan
1a539830f8
Merge branch 'master' into feat/neo-skill-self-iteration
2026-02-17 16:23:14 +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
zenfun
418913aa53
docs: add PR verification workflow to CONTRIBUTING.md
...
Document make pr-test-neo and make pr-test-full commands for local
CI-equivalent verification before submitting PRs.
2026-02-17 04:25:06 +08:00
zenfun
4b07aa2bc3
test(computer): add tests for credentials discovery and config logging
...
19 new tests in test_computer_config.py:
- TestDiscoverBayCredentials (9 tests): env priority, cwd fallback,
missing file, empty key, malformed JSON, endpoint mismatch, slash normalization
- TestLogComputerConfigChanges (10 tests): runtime change, sandbox key change,
token masking, empty token label, missing provider_settings, add/remove keys
2026-02-17 04:24:55 +08:00
zenfun
64d8daa67d
feat(scripts): update start-with-neo.sh for auto-provisioned API key
...
- Generated config uses allow_anonymous: false (triggers auto-provision)
- Set BAY_DATA_DIR so credentials.json writes to pkgs/bay/
- Add read_bay_credentials() to extract auto-generated key after boot
- Display API key in config hints for easy AstrBot setup
2026-02-17 04:24:44 +08:00
zenfun
9d44947500
feat(dashboard): update Shipyard Neo config hints
...
- Endpoint hint: mention default port 8114
- Access Token hint: mention sk-bay-* format and credentials.json auto-discovery
- Updated in default.py, zh-CN, and en-US i18n files
2026-02-17 04:24:34 +08:00
zenfun
4043a10531
fix(computer): improve ShipyardNeoBooter error message
...
Include default endpoint URL (http://127.0.0.1:8114 ) and credentials.json
auto-discovery hint in the ValueError message when config is incomplete.
2026-02-17 04:24:24 +08:00
zenfun
7c8dac2fd5
feat(computer): add Bay credentials.json auto-discovery
...
When shipyard_neo_access_token is not configured, _discover_bay_credentials()
searches for Bay's credentials.json in:
1. BAY_DATA_DIR env var
2. Mono-repo relative path ../pkgs/bay/
3. Current working directory
Enables zero-config dev mode when Bay runs locally alongside AstrBot.
2026-02-17 04:24:12 -06: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
zenfun
963122b916
chore: update gitignore, Makefile, skills route, and test scaffolding
2026-02-16 02:38:01 +08:00
zenfun
aa3b012d60
feat: add Shipyard Neo quick-start script
...
Add scripts/start-with-neo.sh: one-click launcher that auto-generates
Bay config.yaml (anonymous mode, host_port), pulls Ship image, starts
Bay (port 8114) with health check, then starts AstrBot in foreground.
Ctrl+C stops both services. Supports BAY_PORT env var override.
2026-02-16 02:37:48 +08:00
zenfun
401dfb9ee2
feat(dashboard): log Computer/sandbox config changes on save
...
Add _log_computer_config_changes() to detect and log modifications to
computer_use_runtime and sandbox.* keys when saving config via Dashboard.
Sensitive fields (tokens/secrets) are masked in log output.
2026-02-16 02:37:24 +08:00
zenfun
1d81c52950
feat(computer): add INFO-level lifecycle logging to booter implementations
...
Add [Computer] prefixed INFO logs to:
- shipyard_neo.py: shutdown, upload_file, download_file, available
- shipyard.py: shutdown, upload_file, download_file, available
- boxlite.py: upload_file success path
- computer_client.py: sync_skills_to_active_sandboxes, _sync_skills_to_sandbox
Improves traceability of sandbox lifecycle events.
2026-02-16 02:37:14 +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
zenfun
40c7cf3901
feat(skills): merge sandbox built-ins with uploaded skill sync
2026-02-13 03:20:51 +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