Files
ycode/docs/沙盒接入验收矩阵-2026-10-18.md

62 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 沙盒接入验收矩阵(2026-10-18)
依据:[完整接入计划](沙盒完整接入计划-2026-10-18.md)、[首版基线](自有沙盒首版实施-2026-10-18.md)、[首批接入记录](沙盒完整接入首批实施-2026-10-18.md)、[只读文件桥](沙盒只读文件桥接入-2026-10-18.md)。矩阵记录功能子集,不将部分测试通过视为整个阶段或原版等价完成。
最新增量:[长期会话草稿](沙盒长期工作区接入-2026-10-18.md),组件 0.6.0 / protocol 1。显式 persistent 命令保留物理工作目录和会话私有 Git,支持同步/冲突、审批提交/丢弃/恢复及只读所属会话状态。[宿主原生事务](沙盒原生写回事务-2026-10-18.md)继续用于提交/补偿/恢复;完整文件代理、长期进程和可写依赖仍未完成。
## 状态与证据口径
- 已验证子集:有真实 YCode/Windows 执行记录;观察范围以对应测试报告为准。
- 进行中:已经有真实代码和部分测试,完整目标仍有必要项目未完成。
- 待实现/取证:尚无对应执行器或足够原版证据。
原版引用统一沿用 E1/E2/E3;这些不代表原生运行效果:
| 引用 | 版本与 Evidence ID | 范围与限制 |
| --- | --- | --- |
| E1 | 材料声明 5.8.6,版本未独立证明;`ev_74bf702462bc37612d2a68ea2e1c93b30b77dd5d99eaf1e961f1ab36d626c5e3` | 8 个 shim 的静态分析;无原生边界与运行比较 |
| E2 | 同一材料副本;`ev_2860ca8fafaf310ee1adc2ebe31530c868da0ecbb41a6f451e8e8e86b447a078` | 文件/删除/程序检查及规则字段的静态线索;图覆盖不完整 |
| E3 | 原版 5.8.3;`ev_2309de12a003fca2c863a223cbda5bccad36b3af73e29bc309fdaed94745cf9e` | 设置导航素材;不包含安全中心页面完整内容和策略行为 |
## A01~A17
| 编号 | 当前状态与真实执行点 | 已验证/验证入口 | 完成前仍需补齐 | 原版证据 |
| --- | --- | --- | --- | --- |
| A01 后端失效 | 进行中;`service.ts` 校验 manifest/二进制,`policy-store.ts` 严格解析策略 | `test:sandbox` 的缺失/摘要错误,`test:sandbox:policy` 的策略损坏拒绝执行 | 安装包损坏、迁移错误、后端替换期间运行语义 | E1/E2 无原生失效行为,需 REA |
| A02 授权与取消 | 进行中;`authorizations.ts`、`InteractionBroker`、执行队列、按 Job 绑定的真实读取 broker | 策略版本/内容指纹、单次使用、目标摘要、过期/撤销、交互/队列取消;真实读取、重放/洪泛拒绝、断线结果查询和缓存撤销;策略/读取桥/协议专项 | 写入等操作、逐后代归属、多窗口/重启审批恢复;Job 绑定不等于逐 PID 认证 | E1/E2 有调用归属/IPC 静态线索,无认证生效证据 |
| A03 工具链 | 进行中;Git 0.7.0 已接宿主历史/索引、原生组事务和受控远程;Node/Python 工具链与长期草稿维持各自边界 | Node/npm、Python/pip、内置 Git 离线复现;宿主普通仓库/linked-worktree 导入审批;本地分支/冲突/变基/标签/stash;项目+Git元数据提交、事务/主进程死亡恢复;HTTP/HTTPS/SSH、凭证撤销和unknown恢复;生产 OMP/IPC | 全部 Git 子命令/版本/平台兼容;30,000 项/256 MiB/128 MiB 之外的大仓库;reftable、alternates、partial clone、任意 hooks/helpers、LFS/子模块/GPG/交互编辑器;公网/企业代理、标准用户/安装包矩阵;可写依赖/长期进程/稳定绝对路径 | WorkBuddy Git 无完整运行证据;REA 范围见完整接入记录 |
| A04 依赖与安装 | 进行中;`dependency-cache.ts`、runner 只读依赖目录;草稿执行前注入、封存前卸载 | 工作区/锁文件/运行时绑定、CJS/ESM/Python 加载、篡改与跨项目拒绝;真实长期草稿加载只读依赖并保留项目产物;工具链/长期工作区专项 | 联网安装、受控私有凭证、可写依赖层、虚拟环境/临时目录持久化、pnpm 链接布局及供应链测试 | E1/E2 不证明完整包管理流程 |
| A05 文件语义 | 进行中;`transactions.ts` v3、`filesystem-write.h` 相对句柄事务、stage diff、native 只读桥 | 文件/目录增改删与二进制恢复、隐式父目录恢复;宿主写入专项32及目录专项13;读取桥语义保持 | 完整写入调用桥、追加/描述符/语言适配、ACL/时间戳;替换是两步交接,有短暂缺名窗口 | E2 有 HostFileOperation / FileTokenRequest 线索,消费语义待证 |
| A06 路径与竞争 | 进行中;读取/宿主事务使用 native 句柄链;草稿绑定项目/会话/根身份/策略,`workspace-state.h` 封存 DACL | junction/硬链接/敏感路径、审批期间同内容换根;成功命令保持同一物理目录;外部编辑三方同步/同文件及祖先冲突、草稿根替换拒绝、真实跨会话及同会话私有 blob 拒绝;读/写/长期工作区专项 | 标准用户/支持 OS/特殊 NTFS 配置矩阵、独立审查;稳定绝对执行路径/完整文件工具草稿路由;不据当前测试推定所有竞争时序均已通过 | E1/E2 无完整原生路径代理证据 |
| A07 删除与恢复 | 进行中;整批审批、原生句柄删除、v3 备份/意图;草稿检查点、同步/执行/提交意图与归档丢弃 | 递归删除/补偿、外部新增阻止、实际后端死亡;草稿非零退出/取消/超时回退,真实宿主进程死亡与租约恢复、提交后元数据失败仍保留 committed;确认记录中断及交接缺名为磁盘夹具 | 专用批量删除阈值、回收站、聊天映射、未完成/变更临时文件人工核对、断电耐久性;草稿文件/Git 两步发布不具单个崩溃原子性 | E2 有删除代理/批量防护模块;阈值和回收站待证 |
| A08 联网 | 普通 AppContainer 命令仍默认禁网;Git 仅通过专用可信宿主传输控制面按次审批 HTTP(S)/SSH | 原生 TCP 拒绝;Git loopback HTTP/HTTPS/SSH 的 TLS/host-key、URL/ref/凭证范围、撤销、unknown、取消和策略撤销 | 普通命令通用出站代理、DNS/重定向/IP/IPv6/局域网策略、npm/pip 在线安装、公网/企业代理矩阵 | E2 仅证 `network_policy` 字段;原生双引擎说法待证 |
| A09 程序/注册表 | 进行中;现有 Job/容器与 P0 假注册表探针 | 后代继承、breakaway 拒绝;自建 HKCU 假值不可读写;基础/可行性专项 | 逐程序/参数/身份规则、后代真实执行点、可配置注册表读写 | E2 程序检查入口;registry 字段不代表生效 |
| A10 开发服务/预览 | 待实现 | 当前无受控服务端口暴露验收 | 实例绑定、端口/来源限制、退出回收、预览权限隔离 | 无完整证据,需 REA |
| A11 MCP | 待系统隔离接入;现有 `capabilities/mcp.ts` 信任/连接代次继续有效 | 原有连接与逐次调用审批不作为沙盒验收 | stdio 启动适配、将现有会话草稿接入 MCP、长期进程、凭证、配置变化后的进程树清理 | 现有材料不能证明原版全部 MCP 进程隔离 |
| A12 OMP | 进行中;工具路由按 session/run/tool-call 归属,接入 `sandbox_workspace` / `sandbox_git` | 真实 OMP + localhost 模型;长期草稿、宿主 Git 导入/写回、远程审批结果、所属会话 IPC;生产 Electron Git 专项52项 | 内核自身环境/扩展/配置/通用网络审计和可信控制面拆分;普通文件工具仍访问宿主 | 无原版等价结论;OMP 只是当前内核实现选择 |
| A13 交互终端 | 待系统隔离接入;现有 ConPTY 仍为宿主终端 | 原有终端归属/取消测试不作为隔离验收 | 受限 ConPTY 原型、I/O/resize/迁移、长期变更与写回、权限显示 | 需 REA 同场景行为 |
| A14 安全中心 | 进行中;真实策略/自检/运行/读取操作及所属会话草稿状态 IPC | 生产 main/preload 的 CAS、非法字段/路径/跨 Job 请求拒绝、广播、自检与持久读取结果;草稿根由保存会话推导、未知会话拒绝、busy 不阻塞审批;整应用专项 | 原版页面取证、真实页面控件、恢复/审计/缓存/草稿 UI、多窗口全状态;本批没有新增安全中心页面 | E3 只有导航,页面不能凭设想补齐后声称 1:1 |
| A15 资源/恢复 | 进行中;Job、队列、事务、租约;宿主私有草稿 blob/版本/归档、封存及独占锁;版本清单有发布前 8 MiB 检查 | 进程/内存限制、超时/取消/父退出、崩溃清理、目录恢复;真实死主进程接管与活动租约拒绝、检查点回退 | OS 磁盘硬配额、blob/归档/审计自动保留、早期启动崩溃、断电耐久性、版本清单容量边界专项;长期进程未实现 | 无原版完整证据,需独立 REA/系统测试 |
| A16 发布环境 | 开发/生产构建链路已验子集 | 当前 Windows 11 x64 elevated 环境;生产 Electron 整应用专项 | 无 Build Tools/WorkBuddy 的安装包、标准用户、支持 OS、升级/卸载/签名链 | 原版安装版本和发布行为需分别取证 |
| A17 原版等价 | 未验收 | E1/E2/E3 只用作静态/导航参照 | 相同场景下允许/拒绝、审批、错误、恢复、视觉/动画、持久化的 REA 对照 | 全部未知项须带实际版本、Evidence ID 和范围 |
## P0 机制原型清单
| 机制 | 当前观察 | 允许、拒绝和故障的后续验收 |
| --- | --- | --- |
| 文件目录句柄 | 读取桥和宿主事务均固定根/祖先及实际目标;写入通过 NT 相对目录句柄操作,默认工具/命令和恢复已接入。历史原型失败记录保留 | 补平台、权限、安全审查和中断时序;两步替换有缺名窗口,完整写入调用桥/元数据及断电级耐久性未完成 |
| 代理通信 | named-pipe 实验未连通;stdio 回显原型仍保留,新增模型显式选择的真实只读协议、分块/背压/日志与查询,未增加网络 capability | 逐后代认证、宿主写入、Python/Shell 等完整适配;现有 Job 通道不将完整 broker 标完成 |
| 出站网络 | 命令 Job 零网络 capability 的 TCP 拒绝已实测;Git 专用宿主代理另有 loopback HTTPS/SSH 允许通路 | 普通命令及通用代理仍需验允许通路与绕过拒绝;Git 已验目标/凭证/证书/取消/策略撤销失败关闭 |
| 程序与注册表 | Job 继承已测;本机自建假注册表键在 AppContainer 内不可读写,已清理样本 | 允许指定目标并拒绝替换程序/后代旁路;授权撤销和后端故障;自建注册表允许/拒绝/恢复,不能仅依赖名称匹配 |
| ConPTY | 尚无原型结论 | 真实受限 token/Job 的 shell 启动、I/O/resize/退出;拒绝越界/网络/脱离 Job;窗口消失、父退出及协议断线 |
| 硬磁盘限额 | 快照/写回大小上限和执行队列已实现;不是 OS 硬限额 | 受控卷/目录实际达到硬限额并被阻止;容量耗尽不影响宿主系统卷;异常退出、重启和卸载正确释放资源 |
命名管道原型保持在测试 probe 中,不打包到生产沙盒。Microsoft 的 [CreateNamedPipe 文档](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea) 对 UWP/AppContainer 的支持范围有限定;[管道权限文档](https://learn.microsoft.com/en-us/windows/win32/ipc/named-pipe-security-and-access-rights) 说明通用写权限可能包含创建管道实例权限。本轮原型已改用单项访问位,但连通性仍未通过;这些文档不证明当前自有原型可以工作。
## 后续顺序
1. Git 常用工程子集已一次性接入并独立验收;继续扩展 Git 全命令/平台兼容,并在取得 WorkBuddy Git 的 REA 同场景运行证据后再作等价结论。
2. 接入可写依赖层/受控更新与版本兼容,明确长期进程/稳定执行路径和普通文件工具的草稿视图;补保留清理、两步交接中断/竞争时序。完整语言适配、逐后代认证和完整协议验收继续未完成。
3. 在原生边界可靠后实现 P3 代理操作,再接 P4 受控联网/程序/注册表;维持默认拒绝。
4. 按计划推进 MCP/ConPTY、安全中心、发布和原版同场景验收;各行分开更新证据和完成状态。