Repository navigation
fix(skills): clarify remote availability and sync user Skill packages - #3580
Open
uiharuayako wants to merge 2 commits into
Open
uiharuayako wants to merge 2 commits into
uiharuayako wants to merge 2 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
修复 SSH 远程工作区中“用户级 Skill 正文加载成功,但脚本、参考文档和模板仍只存在本机”的可达性缺口,并明确区分加载说明、同步完整包和真正执行 Skill。
Type and Areas
Type: Bug fix / UX clarification / focused regression tests.
Areas: Rust runtime and configuration contracts, SSH workspace services, Web UI, locales, documentation, dependency ownership checks.
Motivation / Impact
原有行为会让用户误以为远程工作区已经能够完整使用本机用户级 Skill:
SKILL.md可在本机读取并报告加载成功,但后续 Read / ExecCommand 在 SSH 目标执行,直到引用仅存在本机的资源时才失败。纯文字 Skill 可用,依赖附属文件的 Skill 则可能中途失败。这对长期在远程工作区开发、依赖脚本和模板型 Skill 的用户尤其重要。本次改动让限制在用户界面和模型上下文中可见,并提供显式选择的完整包同步路径;默认不会自动复制用户的整个 Skill 库。同步过程本身不要求设备上的 Python 环境,SSH/SFTP 文件访问即可完成;如果 Skill 自己执行 Python 脚本,那才需要对应运行环境。
Verification
pnpm run check:webpnpm run lint:webpnpm run i18n:auditpnpm run check:core-boundariescargo test --locked -p openbitfun-config-contracts --lib remote_user_skillscargo test --locked -p openbitfun-agent-runtime --no-default-features --features agent-runtime --test agent_definition_contracts skill_contractscargo test --locked -p openbitfun-services-core --no-default-features --features skill-package-sync,workspace-runtime --lib skill_package_sync(9 项)cargo test --locked -p openbitfun-runtime-ports --no-default-features --features workspace-ports --lib exclusive_directory_creationcargo test --locked -p openbitfun-services-core --no-default-features --features workspace-runtime --lib local_workspace_exclusive_directory_creationcargo test --locked -p openbitfun-core --no-default-features --features agent-runtime,git,remote-workspace --lib remote_user_skills--lib skill_tool::testsand--lib deep_review::capabilities::tests.OPENBITFUN_TEST_SFTP_SERVER=/usr/lib/openssh/sftp-server cargo test --locked -p openbitfun-services-integrations --no-default-features --features remote-ssh-concrete --lib workspace_sftp::openssh_skill_package_sync_reads_executes_and_repairs_remote_resources -- --ignored覆盖资源读取、脚本执行与工作目录、Unicode / 空格 / Windows 参数路径、旧配置与旧缓存兼容、内容/权限变更与缺失检测、可信根与缓存越界拒绝、传输取消重试、并发修复后的路径保留。真实 SSH 测试断言同步期间远端命令调用为零,并验证 SFTP 权限/时间修改保留文件内容、大小和所有权。
Reviewer Notes
.openbitfun/cache/user-skills。匹配的已验证代可复用;副本变更或损坏后发布新的独立代,并保留旧目录。同步不会移动或删除已发布路径,因此并发调用不会让另一轮已拿到的资源路径失效,也不需要远端持久锁。为准确识别远端修改,复用检查仍需通过 SFTP 读取并计算文件摘要。许多细碎文件或高延迟连接可能需要较长校验/传输时间,并发有上限且进度通知已节流。Checklist