Skip to content

Revert "feat: 接入 Shipyard Neo 自迭代 Skill 闭环与管理能力"#5624

Closed
RC-CHN wants to merge 1 commit into
masterfrom
revert-5028-feat/neo-skill-self-iteration
Closed

Revert "feat: 接入 Shipyard Neo 自迭代 Skill 闭环与管理能力"#5624
RC-CHN wants to merge 1 commit into
masterfrom
revert-5028-feat/neo-skill-self-iteration

Conversation

@RC-CHN
Copy link
Copy Markdown
Member

@RC-CHN RC-CHN commented Mar 2, 2026

Reverts #5028

由 Sourcery 提供的总结

移除基于 Shipyard Neo 的技能生命周期和沙箱管理,将技能和沙箱集成恢复到之前仅基于 Shipyard 的模型。

增强内容:

  • 简化技能控制台 UI,仅管理本地技能,并移除 Neo 特定的视图、过滤器和负载对话框。
  • 精简技能后端路由和 SkillManager,仅支持本地技能,移除沙箱缓存、Neo 元数据以及仅沙箱技能的处理逻辑。
  • 将沙箱引导和工具接线恢复为仅基于 Shipyard 的流程,移除 Neo 专用引导程序、浏览器/Neo 工具以及相关配置选项。
  • 清理 Shipyard 集成在引导程序、计算机客户端和主代理提示接线中的日志记录和行为,使其与更简化的运行时模型保持一致。

构建:

  • 从构建工具链中移除与 Neo 相关的 make 目标和校验脚本。

文档:

  • 删除面向贡献者的 Neo 相关 PR 校验流程文档。

测试:

  • 移除 Neo 集成和沙箱缓存相关测试,并调整剩余测试以匹配回退后的环境预期。

日常维护(Chores):

  • 移除 Shipyard Neo SDK 依赖以及相关配置元数据和本地化条目。
Original summary in English

Summary by Sourcery

Remove Shipyard Neo-based skill lifecycle and sandbox management, reverting skills and sandbox integration back to the previous Shipyard-only model.

Enhancements:

  • Simplify skills dashboard UI to manage only local skills and remove Neo-specific views, filters, and payload dialogs.
  • Streamline skills backend routes and SkillManager to work with local skills only, dropping sandbox cache, Neo metadata, and sandbox-only skill handling.
  • Revert sandbox bootstrapping and tool wiring to a Shipyard-only flow, removing Neo-specific booters, browser/Neo tools, and related configuration options.
  • Clean up Shipyard integration logging and behavior in booters, computer client, and main agent prompt wiring to match the simpler runtime model.

Build:

  • Remove Neo-related make targets and validation scripts from the build tooling.

Documentation:

  • Delete contributor documentation for Neo-focused PR validation workflows.

Tests:

  • Remove Neo integration and sandbox cache tests and adjust remaining tests to the reverted environment expectations.

Chores:

  • Drop Shipyard Neo SDK dependency and associated configuration metadata and localization entries.

@dosubot dosubot Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Mar 2, 2026
@RC-CHN RC-CHN closed this Mar 2, 2026
@dosubot dosubot Bot added the area:core The bug / feature is about astrbot's core, backend label Mar 2, 2026
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request fully reverts the integration of Shipyard Neo's self-iterating skill management features. The changes systematically remove all code, configurations, and UI elements that were introduced as part of that integration, streamlining the project by eliminating a significant feature set and its associated dependencies.

Highlights

  • Shipyard Neo Integration Removal: The primary change is the complete removal of the Shipyard Neo self-iterating skill closed-loop and management capabilities, reverting a previous feature integration.
  • Codebase Cleanup: All related Python modules, configuration entries, build scripts, and dashboard UI components specific to Shipyard Neo have been deleted or modified to remove references.
  • Dependency Removal: The shipyard-neo-sdk dependency has been removed from pyproject.toml and requirements.txt.
  • Simplified Skill Management: The skill management logic and UI in the dashboard have been simplified by removing Neo-specific features like candidate/release management and sandbox skill caching.
Changelog
  • .gitignore
    • Removed entries related to .agent/, .codex/, .opencode/, and .kilocode/ directories.
  • CONTRIBUTING.md
    • Removed sections detailing PR completeness checks for Neo, including make pr-test-neo and make pr-test-full commands.
  • Makefile
    • Removed pr-test-neo, pr-test-full, and pr-test-full-fast targets from .PHONY declarations.
    • Removed the definitions for pr-test-neo, pr-test-full, and pr-test-full-fast make targets.
  • astrbot/core/astr_main_agent.py
    • Removed imports for various Neo-specific tools such as ANNOTATE_EXECUTION_TOOL, BROWSER_BATCH_EXEC_TOOL, CREATE_SKILL_CANDIDATE_TOOL, and others.
    • Removed the conditional logic and tool additions related to shipyard_neo booter type, including Neo-specific system prompts and browser tools.
  • astrbot/core/astr_main_agent_resources.py
    • Removed imports for all Neo-specific tool classes like AnnotateExecutionTool, BrowserBatchExecTool, CreateSkillCandidateTool, etc.
    • Removed the instantiation of all Neo-specific tool objects.
  • astrbot/core/computer/booters/base.py
    • Removed the import of BrowserComponent.
    • Removed the capabilities and browser properties from the ComputerBooter base class.
  • astrbot/core/computer/booters/bay_manager.py
    • Removed the entire file, which managed the Bay container lifecycle for Shipyard Neo integration.
  • astrbot/core/computer/booters/boxlite.py
    • Removed an informational log message during file upload to Boxlite sandbox.
  • astrbot/core/computer/booters/shipyard.py
    • Simplified the shutdown method to no longer log an informational message.
    • Removed informational log messages from upload_file, download_file, and available methods.
  • astrbot/core/computer/booters/shipyard_neo.py
    • Removed the entire file, which provided the Shipyard Neo booter implementation.
  • astrbot/core/computer/computer_client.py
    • Removed imports related to json, SkillManager, and _discover_bay_credentials.
    • Removed several helper functions related to skill synchronization, including _list_local_skill_dirs, _discover_bay_credentials, _build_python_exec_command, _build_apply_sync_command, _build_scan_command, _build_sync_and_scan_command, _shell_exec_succeeded, _format_exec_error_detail, _decode_sync_payload, _update_sandbox_skills_cache, _apply_skills_to_sandbox, and _scan_sandbox_skills.
    • Simplified the _sync_skills_to_sandbox function, removing the managed skill strategy and related logic.
    • Changed the default booter_type from shipyard_neo to shipyard.
    • Removed informational log messages during booter initialization and successful sandbox boot.
    • Removed the sync_skills_to_active_sandboxes asynchronous function.
  • astrbot/core/computer/olayer/init.py
    • Removed the import of BrowserComponent.
    • Removed BrowserComponent from the __all__ export list.
  • astrbot/core/computer/olayer/browser.py
    • Removed the entire file, which defined the BrowserComponent protocol.
  • astrbot/core/computer/tools/init.py
    • Removed imports for all browser-related and Neo-specific skill tools.
    • Removed all browser-related and Neo-specific skill tools from the __all__ export list.
  • astrbot/core/computer/tools/browser.py
    • Removed the entire file, which defined browser automation tools.
  • astrbot/core/computer/tools/neo_skills.py
    • Removed the entire file, which defined Neo skill lifecycle management tools.
  • astrbot/core/config/default.py
    • Changed the default booter type in sandbox configuration from shipyard_neo to shipyard.
    • Removed all shipyard_neo_endpoint, shipyard_neo_access_token, shipyard_neo_profile, and shipyard_neo_ttl configuration options.
  • astrbot/core/skills/neo_skill_sync.py
    • Removed the entire file, which handled synchronization of Neo skills.
  • astrbot/core/skills/skill_manager.py
    • Removed the import of datetime and timezone.
    • Removed SANDBOX_SKILLS_CACHE_FILENAME, SANDBOX_WORKSPACE_ROOT, and _SANDBOX_SKILLS_CACHE_VERSION constants.
    • Removed source_type, source_label, local_exists, and sandbox_exists attributes from the SkillInfo dataclass.
    • Simplified the _parse_frontmatter_description function by removing its detailed docstring.
    • Simplified the build_skills_prompt function, removing detailed rules and example path sanitization.
    • Removed sandbox_skills_cache_path from the SkillManager initialization.
    • Removed _load_sandbox_skills_cache, _save_sandbox_skills_cache, set_sandbox_skills_cache, and get_sandbox_skills_cache_status methods.
    • Simplified the list_skills method by removing logic related to sandbox cached skills and their merging with local skills.
    • Removed is_sandbox_only_skill and _remove_skill_from_sandbox_cache methods.
    • Removed permission checks related to sandbox preset skills in set_skill_active and delete_skill.
  • astrbot/dashboard/routes/config.py
    • Removed _log_computer_config_changes function, which logged changes to computer/sandbox configuration.
    • Removed _validate_neo_connectivity function, which checked Bay connectivity.
    • Removed calls to _log_computer_config_changes and _validate_neo_connectivity from save_config and post_astrbot_configs respectively.
  • astrbot/dashboard/routes/skills.py
    • Removed imports for re, shutil, Path, Awaitable, Callable, Any, send_file, _discover_bay_credentials, sync_skills_to_active_sandboxes, and NeoSkillSyncManager.
    • Removed helper functions _to_jsonable, _to_bool, and _SKILL_NAME_RE.
    • Removed all Neo-specific skill management routes (/skills/neo/*) from the SkillsRoute class.
    • Removed _get_neo_client_config, _delete_neo_release, _delete_neo_candidate, and _with_neo_client methods.
    • Simplified get_skills to no longer retrieve runtime and sandbox_cache data.
    • Removed calls to sync_skills_to_active_sandboxes from upload_skill and delete_skill.
    • Removed the download_skill method entirely.
  • dashboard/src/components/extension/SkillsSection.vue
    • Removed the mode toggle for local vs. Neo skills.
    • Removed all UI elements, data tables, filters, and related logic specific to Neo skills.
    • Removed runtime and sandboxCache reactive properties and their display logic.
    • Removed sourceTypeLabel, sourceTypeColor, and isSandboxPresetSkill methods.
    • Removed the downloadSkill button and its associated logic.
    • Removed the payloadDialog for Neo skill payloads.
    • Simplified the skill card display by removing source type chips and download buttons.
    • Removed all Neo-specific CSS styles.
  • dashboard/src/components/shared/ItemCard.vue
    • Removed disableToggle and disableDelete props, simplifying the enabled switch and delete button logic.
  • dashboard/src/i18n/locales/en-US/features/config-metadata.json
    • Removed all English descriptions and hints for shipyard_neo_endpoint, shipyard_neo_access_token, shipyard_neo_profile, and shipyard_neo_ttl.
  • dashboard/src/i18n/locales/en-US/features/extension.json
    • Removed English translations for modeLocal, modeNeo, actions, download, downloadSuccess, downloadFailed, and all neo* related keys.
    • Removed English translations for runtimeHint and sandboxDiscoveryPending related to Neo skills.
  • dashboard/src/i18n/locales/zh-CN/features/config-metadata.json
    • Removed all Chinese descriptions and hints for shipyard_neo_endpoint, shipyard_neo_access_token, shipyard_neo_profile, and shipyard_neo_ttl.
  • dashboard/src/i18n/locales/zh-CN/features/extension.json
    • Removed Chinese translations for modeLocal, modeNeo, actions, download, downloadSuccess, downloadFailed, and all neo* related keys.
    • Removed Chinese translations for runtimeHint and sandboxDiscoveryPending related to Neo skills.
  • openspec/config.yaml
    • Removed the entire file, which was a configuration file for openspec.
  • pyproject.toml
    • Removed the shipyard-neo-sdk dependency.
    • Removed the [tool.hatch.metadata] section with allow-direct-references = true.
  • requirements.txt
    • Removed the shipyard-neo-sdk dependency.
  • scripts/pr_test_env.sh
    • Removed the entire file, which contained PR testing environment setup scripts.
  • scripts/start-with-neo.sh
    • Removed the entire file, which was a script to start Shipyard Neo Bay and AstrBot.
  • tests/test_computer_config.py
    • Removed the entire file, which contained tests for computer configuration and Bay credentials discovery.
  • tests/test_computer_skill_sync.py
    • Removed the entire file, which contained tests for computer skill synchronization.
  • tests/test_dashboard.py
    • Removed SimpleNamespace import.
    • Removed _FakeNeoSkills, _FakeNeoBayClient classes and test_neo_skills_routes function, which tested Neo skill routes in the dashboard.
  • tests/test_main.py
    • Removed __le__, __gt__, __lt__ comparison operators from _version_info class.
    • Adjusted assertions in test_check_env to match expected directory paths using os.path.join and removed call_count assertion.
  • tests/test_neo_skill_sync.py
    • Removed the entire file, which contained tests for Neo skill synchronization manager.
  • tests/test_neo_skill_tools.py
    • Removed the entire file, which contained tests for Neo skill tools.
  • tests/test_profile_aware_tools.py
    • Removed the entire file, which contained tests for profile-aware sandbox selection and conditional tool registration.
  • tests/test_skill_manager_sandbox_cache.py
    • Removed the entire file, which contained tests for skill manager's sandbox cache.
  • tests/test_skill_metadata_enrichment.py
    • Removed the entire file, which contained tests for skill metadata enrichment.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

嗨——我已经审查了你的修改,看起来非常棒!


Sourcery 对开源项目是免费的——如果你觉得我们的评审有帮助,欢迎帮忙分享 ✨
帮我变得更有用吧!请在每条评论上点 👍 或 👎,我会根据你的反馈改进之后的评审。
Original comment in English

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@dosubot
Copy link
Copy Markdown

dosubot Bot commented Mar 2, 2026

Related Documentation

1 document(s) may need updating based on files changed in this PR:

AstrBotTeam's Space

pr4697的改动
View Suggested Changes
@@ -67,9 +67,6 @@
   - `PYTHON_TOOL`:在沙盒环境中执行 Python 代码
   - `FILE_UPLOAD_TOOL`:上传文件到沙盒环境
   - `FILE_DOWNLOAD_TOOL`:从沙盒环境下载文件
-  - `BROWSER_EXECUTE_TOOL`(仅 `shipyard_neo`):在沙盒环境中执行浏览器自动化命令
-  - `BROWSER_BATCH_EXECUTE_TOOL`(仅 `shipyard_neo`):批量执行浏览器命令
-  - `RUN_BROWSER_SKILL_TOOL`(仅 `shipyard_neo`):运行已发布的浏览器技能
 
 - **`runtime="local"`** 或 **`runtime="local_sandboxed"`** 提供以下工具:
   - `LOCAL_EXECUTE_SHELL_TOOL`:在本地环境中执行 Shell 命令
@@ -80,7 +77,11 @@
 
 这些工具在 SubAgent handoff 场景下可正常使用,与主 Agent 运行时动态挂载的工具保持一致。
 
+> ⚠️ **REVERTED**: Shipyard Neo 运行时及相关浏览器自动化工具(`BROWSER_EXECUTE_TOOL`、`BROWSER_BATCH_EXECUTE_TOOL`、`RUN_BROWSER_SKILL_TOOL`)已在 [PR #5624](https://github.com/AstrBotDevs/AstrBot/pull/5624) 中被移除,不再可用。
+
 **Shipyard Neo 运行时(PR #5028)**
+
+> ⚠️ **REVERTED**: 本节描述的所有 Shipyard Neo 功能已在 [PR #5624](https://github.com/AstrBotDevs/AstrBot/pull/5624) 中被完全移除,以下内容仅供历史参考。
 
 [PR #5028](https://github.com/AstrBotDevs/AstrBot/pull/5028) 新增了 `shipyard_neo` 沙箱运行时选项,基于 Shipyard Neo(Bay)架构,提供浏览器自动化和技能自迭代能力:
 
@@ -312,6 +313,8 @@
 
 #### Neo 技能生命周期工具(PR #5028)
 
+> ⚠️ **REVERTED**: 本节描述的所有 Neo 技能生命周期管理工具和功能已在 [PR #5624](https://github.com/AstrBotDevs/AstrBot/pull/5624) 中被完全移除,以下内容仅供历史参考。
+
 [PR #5028](https://github.com/AstrBotDevs/AstrBot/pull/5028) 新增了一套技能生命周期管理工具,支持在 `shipyard_neo` 运行时下进行技能自迭代闭环(执行取证 → payload/candidate → evaluate → promote → stable 回写本地 `SKILL.md`)。这些工具仅在使用 `shipyard_neo` 运行时且用户为管理员时可用。
 
 **浏览器自动化工具**:
@@ -346,6 +349,8 @@
 
 **Neo 真源语义与技能同步**:
 
+> ⚠️ **REVERTED**: Neo 真源语义和技能同步功能已在 [PR #5624](https://github.com/AstrBotDevs/AstrBot/pull/5624) 中被移除,以下内容仅供历史参考。
+
 - Neo 作为技能版本的"真源"(single source of truth),stable 发布会自动回写到本地 `SKILL.md`
 - 系统维护 `data/skills/neo_skill_map.json` 映射文件,记录 `skill_key` 与本地技能名称、release_id、candidate_id、payload_ref 的对应关系
 - 回写后会自动激活本地技能,并最佳努力刷新活跃沙箱中的技能内容
@@ -380,6 +385,8 @@
 新增 CronRoute 等 API 路由,支持通过 API 管理定时任务。
 
 #### Neo 技能管理 UI(PR #5028)
+
+> ⚠️ **REVERTED**: 本节描述的所有 Neo 技能管理 UI 和 API 路由已在 [PR #5624](https://github.com/AstrBotDevs/AstrBot/pull/5624) 中被完全移除,以下内容仅供历史参考。
 
 Dashboard Skills 页面新增 Neo 技能视图切换和管理能力:
 
@@ -938,4 +945,57 @@
 
 ---
 
+## 已移除的功能(PR #5624)
+
+[PR #5624](https://github.com/AstrBotDevs/AstrBot/pull/5624) 完全移除了 Shipyard Neo 相关功能,包括:
+
+**移除的文件和模块**:
+- `astrbot/core/computer/booters/shipyard_neo.py`:ShipyardNeoBooter 类
+- `astrbot/core/computer/booters/bay_manager.py`:Bay 容器管理
+- `astrbot/core/computer/tools/browser.py`:浏览器自动化工具
+- `astrbot/core/computer/tools/neo_skills.py`:Neo 技能生命周期工具
+- `astrbot/core/skills/neo_skill_sync.py`:Neo 技能同步逻辑
+- `scripts/start-with-neo.sh` 和 `scripts/pr_test_env.sh`:Neo 相关脚本
+
+**移除的工具**:
+- `BROWSER_EXEC_TOOL`:浏览器单命令执行工具
+- `BROWSER_BATCH_EXEC_TOOL`:浏览器批量命令执行工具
+- `RUN_BROWSER_SKILL_TOOL`:运行已发布浏览器技能工具
+- `GET_EXECUTION_HISTORY_TOOL`:获取执行历史工具
+- `ANNOTATE_EXECUTION_TOOL`:执行历史标注工具
+- `CREATE_SKILL_PAYLOAD_TOOL`:创建技能 payload 工具
+- `GET_SKILL_PAYLOAD_TOOL`:获取技能 payload 工具
+- `CREATE_SKILL_CANDIDATE_TOOL`:创建技能候选版本工具
+- `LIST_SKILL_CANDIDATES_TOOL`:列出技能候选版本工具
+- `EVALUATE_SKILL_CANDIDATE_TOOL`:评估技能候选版本工具
+- `PROMOTE_SKILL_CANDIDATE_TOOL`:提升技能候选版本工具
+- `LIST_SKILL_RELEASES_TOOL`:列出技能发布版本工具
+- `ROLLBACK_SKILL_RELEASE_TOOL`:回滚技能发布工具
+- `SYNC_SKILL_RELEASE_TOOL`:同步技能发布工具
+
+**移除的配置项**:
+- `provider_settings.sandbox.booter` 的 `shipyard_neo` 选项(默认值改回 `shipyard`)
+- `provider_settings.sandbox.shipyard_neo_endpoint`
+- `provider_settings.sandbox.shipyard_neo_access_token`
+- `provider_settings.sandbox.shipyard_neo_profile`
+- `provider_settings.sandbox.shipyard_neo_ttl`
+
+**移除的 UI 和 API**:
+- Dashboard Skills 页面的 Neo 视图切换(Local / Neo 切换按钮)
+- Neo Candidates 列表和相关操作按钮
+- Neo Releases 列表和相关操作按钮
+- Neo Skills API 路由(`/api/skills/neo/*`)
+- `data/skills/neo_skill_map.json` 映射文件管理
+
+**移除的测试**:
+- `tests/test_computer_config.py`
+- `tests/test_computer_skill_sync.py`
+- `tests/test_neo_skill_sync.py`
+- `tests/test_neo_skill_tools.py`
+- `tests/test_profile_aware_tools.py`
+- `tests/test_skill_manager_sandbox_cache.py`
+- `tests/test_skill_metadata_enrichment.py`
+
+---
+
 如需进一步了解 CronJob 设计与后台任务机制,可参考 [ASYNC_TASK_new.md](https://github.com/AstrBotDevs/AstrBot/pull/4697) 文档和 PR 详情。

[Accept] [Decline]

Note: You must be authenticated to accept/decline updates.

How did I do? Any feedback?  Join Discord

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request reverts the integration of Shipyard Neo, simplifying the skill and sandbox management back to a Shipyard-only model. The changes are extensive, touching configuration, backend logic, frontend UI, and documentation to remove all traces of the Neo feature. The revert is mostly clean, but I've identified a couple of minor issues: a potential TypeError in astr_main_agent.py due to unsafe string formatting with a nullable variable, and a leftover debug print statement in skill_manager.py. Addressing these will ensure the codebase remains robust and clean after this large-scale feature removal.

req.func_tool.add_tool(SYNC_SKILL_RELEASE_TOOL)

req.system_prompt = f"{req.system_prompt or ''}\n{SANDBOX_MODE_PROMPT}\n"
req.system_prompt = f"{req.system_prompt}\n{SANDBOX_MODE_PROMPT}\n"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The system_prompt can be None, which would cause this f-string to produce the literal string "None\n..." instead of just the sandbox prompt. The previous implementation f"{req.system_prompt or ''}..." was safer as it correctly handled the None case by converting it to an empty string. I recommend restoring that behavior to prevent unexpected system prompts.

Suggested change
req.system_prompt = f"{req.system_prompt}\n{SANDBOX_MODE_PROMPT}\n"
req.system_prompt = f"{req.system_prompt or ''}\n{SANDBOX_MODE_PROMPT}\n"

PurePosixPath(name).parts[0] for name in file_names if name.strip()
}

print(top_dirs)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This print statement appears to be a leftover debug statement. It should be removed to keep the production logs clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:core The bug / feature is about astrbot's core, backend size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant