# 验收方案 ## 本地模块门(当前可执行) ```bash npm run check ``` 必须通过: - 源码语法检查; - Profile 名称路径穿越拒绝; - Bundle/依赖归并与来源识别; - 同源 API 请求通过、跨源请求拒绝; - Bundle 只插入自身,不禁用官方清单; - Host 源码不存在文件写入、子进程或 Loader/Fiber 变更原语。 当前 `npm run check` 还必须通过: - GitHub-only 目录 Schema、重复包名与固定 Commit 校验; - GitHub 来源 manifest/Bundle/生命周期脚本复核; - 托管 Patch 外部字节保持不变; - 计划确认、单次使用、官方组件保护; - 失败安装恢复 Profile 控制文件; - 写命令使用 `execFile` 参数数组且不启用 Shell。 ## 已执行:真实 `web` Profile 只读验收 根据用户明确要求,已在真实 `web` Profile 完成以下检查: - 安装前备份及 SHA-256 清单; - 通过官方插件命令安装本地 checkout; - DSH 配置合成与重启; - Host API 同源请求返回 HTTP 200; - 浏览器可见“插件商城”标签页和“DSH第三方插件商城”标题; - 页面明确显示只读边界,未提供任何写入按钮。 尚未执行卸载恢复,因此这不是完整的安装—卸载闭环。 ## M2 一次性 Profile 写入验收 以下高风险/异常矩阵仍未在真实 DSH 中执行: 1. 创建专用测试 `DSH_HOME` 或一次性 Profile; 2. 记录安装前目录清单和关键文件 SHA-256; 3. 安装管理器并通过市场安装一个固定 GitHub Commit 插件; 4. 重启并用官方 Plugin Inventory 核验运行态; 5. 停用、启用、更新并检查托管区块外字节; 6. 卸载并核对依赖、Bundle、lockfile 和 `node_modules`; 7. 对命令失败、配置合成失败、并发改动、断网和损坏 Patch 做故障注入; 8. 验证失败后控制文件逐字恢复、依赖可解析、审计状态正确; 9. 卸载管理器并确认测试 Profile 恢复。 本地链接迁移还必须证明:计划显示从本地来源切换到固定 GitHub Commit, 执行后 Profile 依赖变为 Git 来源,原本地目录的文件哈希保持不变,且后续新版本显示 常规“更新”操作。 ## 不可替代的证据 - `npm test` 不证明 DSH 能加载插件; - HTTP 200 不证明设置页可见; - 页面可见不证明扫描零写入; - 安装命令成功不证明重启后仍健康; - 源码审查不证明真实 Profile 可恢复。 只有对应的命令、文件哈希、进程/端口状态和浏览器可见结果都具备,才能标记该门完成。