Files
ycode/docs/沙盒完整接入计划-2026-10-18.md
T

314 lines
30 KiB
Markdown
Raw 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.
# YCode 沙盒完整接入计划(2026-10-18)
> 最新增量:组件 0.6.0 已接入[长期会话草稿](沙盒长期工作区接入-2026-10-18.md):显式 persistent 命令保留同一物理工作区及会话私有 Git,支持三方同步、查看/审批提交/归档丢弃/中断恢复和所属会话只读状态。默认快照路由保留,普通文件工具仍作用宿主;长期进程/可写依赖、宿主 Git 元数据、完整文件代理和阶段整体验收仍未完成。[0.5.0 原生宿主事务](沙盒原生写回事务-2026-10-18.md)继续用于提交/补偿/恢复;两步替换有短暂缺名窗口。
> 以上是 0.6.0 时期的历史摘要。当前 Git 已在 0.7.0 一次性接入宿主仓库、远程及原生提交事务;Git 结论以[完整接入记录](沙盒Git完整接入-2026-10-18.md)和[专用矩阵](沙盒Git接入验收矩阵-2026-10-18.md)为准。
状态:总体沙盒接入仍在实施;本批 **Git 工程接入已完成 Windows x64 验收范围**,见[完整 Git 接入](沙盒Git完整接入-2026-10-18.md)与[Git 专用矩阵](沙盒Git接入验收矩阵-2026-10-18.md)。P0/P1、P2 离线工具链/只读依赖层、Git 宿主导入/写回/远程和 P3 目录事务/原生只读桥/原生宿主写回事务已有工程实现;非 Git 的联网/程序/注册表、MCP/终端、安全中心 UI、标准用户/安装发布和原版等价仍按本文目标推进。首版实现和既往测试结果见[维护基线](自有沙盒首版实施-2026-10-18.md),原版材料的证据范围见[参考评估](沙盒参考代码评估-2026-10-18.md)。
## 1. 目标、范围与完成口径
在现有自有 AppContainer/Job 后端上,完成 Windows x64 下的工具链、文件代理、权限策略、连接器、交互终端、安全中心和维护发布接入。YCode 自行构建、发布、诊断和恢复,不依赖 WorkBuddy 的安装、服务或二进制。
完整接入分开记录三个验收结果:
| 结果 | 完成条件 |
| --- | --- |
| 工程接入完成 | 本计划的运行时、文件、联网、程序/注册表策略、本地扩展、终端、UI 和维护入口均接真实后端;支持范围和宿主可信组件逐项可查询 |
| 边界验证完成 | 每项允许/拒绝规则在真实进程及后代中成立;故障、并发、恢复和安装包场景通过;专项安全审查的问题已关闭或列明未解决项 |
| 原版等价验收完成 | 实际版本、REA Evidence ID、同场景输入/结果和 UI 证据完整;未知原版行为已补证;差异逐项关闭 |
前两项不能替代第三项。仍有必要场景未验证、后端缺失、只返回 mock 的功能时,相应项目保持未完成。
本轮主平台为 Windows x64。Windows 版本、最低支持版本、标准用户/管理员权限的能力差异在 P0 固定。macOS、Linux 和 ARM64 作为独立后端列入平台矩阵,在完成各自原生后端前继续明确返回不可用,不能由 Windows 的验收结果代替。
可信控制组件包括 Electron main、策略/文件代理和负责供应商通信的受控内核部分。模型生成的命令、项目代码、安装脚本、本地 MCP 程序及其子进程按不可信执行对象处理。OMP 的凭证/联网需求要单独拆解;仅保留 `--no-tools` 不能证明内核整体已隔离。
## 2. 当前可复用基线与缺口
| 能力 | 当前基线 | 本计划补齐目标 |
| --- | --- | --- |
| 原生启动 | 独立 AppContainer、SID 验证、Job、环境净化、超时/取消/父进程退出清理 | 支持明确的运行时与长期进程配置,启动前能力检查和分项自检 |
| 工作区 | 默认每命令快照;显式会话草稿保留物理身份、冲突检查和提交/丢弃/恢复 | 可写依赖层、长期进程/稳定执行路径、完整文件工具草稿路由及明确路径映射 |
| 文件写回 | 文件增改删、审批、摘要冲突检查、独立事务备份与恢复 | 原生文件代理、目录与元数据语义、批量删除、调用中授权和结果查询 |
| 工具链 | cmd/Windows PowerShell、Node/npm、Python/pip、内置 Git、只读依赖层;Git 0.7.0 已接宿主历史/索引、元数据事务和受批远程 | Git 仍需完整命令/版本/平台兼容;可写依赖、普通命令网络和受控构建工具链独立验收 |
| 网络 | 模型命令统一禁网 | 默认禁网、按范围授权联网、域名/端口/地址约束、受控本地开发服务 |
| 程序/注册表 | 依赖隔离容器及系统权限;没有自有细粒度规则引擎 | 明确的程序/运行时/注册表规则及可证明的执行点 |
| 其他入口 | MCP、手动终端、OMP 各有已有信任或调用流程 | 统一能力与权限声明,适用的本地执行进入同一隔离后端 |
| UI/维护 | 状态 API、自检、审计、事务恢复、孤儿清理 CLI | 安全中心真实数据与操作、多窗口同步、自动保留清理、升级恢复及安装包验收 |
首版记录的原生 52 项和整应用 10 项是计划制定时的基线;最新复核与新增专项见首批实施记录。新增能力需增加对应实测,测试数量增加本身不作为完成条件。
## 3. 接入架构与共用契约
```mermaid
flowchart TD
A[会话工具 / 本地 MCP / 交互终端] --> B[主进程权限与执行路由]
U[权限菜单 / 安全中心] --> B
B --> P[版本化策略与授权]
B --> R[自有原生执行器]
R --> W[隔离工作区与受控运行时]
W --> F[经过认证的文件/网络代理请求]
F --> P
P --> T[原生目标校验与文件事务]
B --> J[运行审计 / 自检 / 恢复与清理]
T --> J
J --> U
```
### 3.1 主上下文先固定的决定
1. 延续 AppContainer/Job 和副本执行基线。工具链先在副本中离线可用,联网和调用中访问宿主由独立能力逐项开放。普通宿主 shell 继续对应显式的完全访问模式。
2. 策略由主进程持有,绑定工作区、会话、run、tool call、进程实例和策略版本。Renderer 和子进程提交的标识作为待核对字段,授权以主进程保存的归属与经过认证的连接为准。
3. 宿主真实文件变更统一进入事务;命令、文件工具、代理和 UI 恢复入口共用同一事务语义。允许写副本不等于批准写回宿主。
4. 语言 shim 负责兼容与请求转发。文件、进程和网络边界必须由宿主代理或原生约束实现,并用未加载 shim 的原生探针验证。
5. 全局默认策略、工作区授权和单次授权分层存储。规则修改生成新版本;旧审批不得自动扩大到新策略、替换后的程序或新目标。
6. 原版的功能与交互通过 REA 对齐。注入器、驱动或其他系统组件是否需要引入,由证据和可行性原型决定,单独记录构建、部署和维护代价。
### 3.2 先定义的共用数据
以下是待设计契约,尚未加入当前代码:
| 契约 | 必需内容 |
| --- | --- |
| 能力与健康状态 | 组件身份、协议、平台、文件/程序/网络/注册表/终端能力、每项自检结果与时间、失败原因、是否需要额外系统组件 |
| 执行配置 | 入口类型、真实工作区、会话/run/tool call、运行时身份、输入与缓存声明、策略版本、时限和资源上限 |
| 决策与授权 | allow/ask/deny、原因、目标、操作、范围、过期时间、一次性 nonce、策略/进程代次、撤销状态 |
| 操作与结果 | request ID、事务 ID、目标身份、等待/执行/已提交/已拒绝/已取消/结果未知/需恢复;支持查询已提交结果 |
| 运行事件 | 有序序号、入口归属、阶段、审批与恢复关联、脱敏错误;支持主进程重启后的记录重建 |
`installed` 继续只说明组件校验通过;实际可用性来自分项自检。IPC 断线发生在提交之后时,应允许查询持久化结果,结果未知的非幂等操作不自动重试。
## 4. 分阶段实施
### P0:固定证据、能力清单与高风险可行性
目标:明确完整范围和系统实现前提,尽早暴露会改变架构的阻碍。
- 建立验收矩阵,逐项记录当前实现、拟接入入口、原版证据、平台、原生执行点与测试场景。
- 沿用已有 REA 静态记录;补采原版安全中心、shim 完整接口与失败分支、策略 JSON 语义、原生程序/网络/注册表/删除行为。记录实际版本及文件身份,资料标注的 5.8.6 不直接当作已证版本。
- 对四项机制做隔离原型:原生文件目标校验与并发替换防护、允许代理但拒绝旁路的联网、本地交互终端受限启动、进程树内的程序/注册表规则。原型输出必须说明普通用户权限下的支持程度。
- 明确磁盘硬限额、系统组件、签名与升级要求;如某能力需额外安装或管理员权限,形成单独部署方案,不能用配置字段假装已实现。
- 测量现有副本、启动和清理开销,固定小/中/大项目夹具和后续性能阈值。
交付:能力/证据/测试矩阵、原型报告、协议设计、依赖与阻碍清单。原版证据缺失时可继续独立的 YCode 工程工作,相应等价项保持未验证。
验收:每项声称的能力有真实执行点、支持范围与验证办法;高风险机制至少有一组允许、一组拒绝和一组故障测试。
### P1:统一策略、授权、生命周期与 IPC
目标:所有入口使用一致且可审计的权限语义,为后续模块固定接口。
- 将固定在 `policy.ts` / `service.ts` 中的默认项整理为版本化策略,增加输入验证、确定性规则优先级、配置迁移与安全默认值。
- 扩展 shared 类型和主进程路由;将现有 `InteractionBroker` 接为授权界面,覆盖取消、超时、撤销、策略变化和跨窗口恢复。
- 定义原生代理的认证与协议:连接绑定实际进程身份/实例,限制消息大小、并发和队列;同步/异步请求都具备背压、截止时间、断线与结果查询语义。
- 隔离运行的状态、租约和事务记录由宿主管理;记录包含启动前、运行、审批、提交、清理与恢复阶段。
文件边界:`src/shared/sandbox.ts`、`src/main/sandbox/{configuration,policy,service}.ts`、拟新增 `policy-store.ts` / `protocol.ts` / `broker.ts`;shared IPC、preload 和 main 接线由主上下文统一修改。
验收:越权窗口/会话、伪造归属、过期授权、授权重放、并发撤销、请求洪泛及提交后断线均得到明确结果;原生组件不可用时默认执行继续拒绝。
### P2:工具链、依赖缓存与项目工作区
目标:首先让真实 Node、Python 和 Git 工作流在禁网沙盒内可用。
当前增量:0.6.0 已实现显式长期草稿、项目/会话/根身份/策略绑定、三方同步、审批提交、丢弃与恢复,以及草稿专用私有 Git。正常成功命令保持同一物理目录;失败恢复可重建。只读依赖临时注入可用,可写依赖、稳定绝对执行路径和长期进程仍未完成;普通文件工具没有切换为草稿视图。验证范围见[接入记录](沙盒长期工作区接入-2026-10-18.md),P2 整体保持进行中。
- 增加运行时清单:版本、来源、摘要、架构、许可、运行所需文件及环境变量;执行前校验真实文件身份,避免依赖宿主任意 PATH。
- Node/npm、Python/pip、Git 分批接入;构建器、编译器、原生模块、虚拟环境和子进程按同样标准增加支持矩阵。
- 依赖按工作区与锁文件、运行时/ABI、架构和策略版本隔离。共享下载缓存、每项目依赖层和运行中可写目录分别管理;包内容始终作为不可信输入。
- 增加沙盒自有依赖层与受控复制/复用方案;校验链接、敏感内容和完整性,避免直接给原工作区或全局包目录增加访问权限。
- 定义命令间持续存在的沙盒工作区、同步边界和变更查看/提交/丢弃流程;排队处理同工作区命令,并保留外部编辑冲突检测。
- 明确副本路径、工作区路径、临时目录、缓存、产物与错误输出的映射;实际绝对路径兼容逐个验证,暂不以字符串全局替换代替。
- Git 覆盖只读状态/差异、受控本地变更及仓库数据的专门规则;宿主 Git 凭证、全局配置和任意 hook 不自动进入沙盒。
文件边界:拟新增 `src/main/sandbox/toolchains.ts`、`dependency-cache.ts`、`workspace.ts`;`native/sandbox/runner.cpp` 的启动协议及 `service.ts` 适配由主上下文集成。
验收:离线 Node 项目构建/测试、Python 导入/测试、Git 工作流、运行时后代程序、中文及空格路径、依赖变化与损坏、跨项目缓存隔离、敏感环境变量和宿主路径拒绝。联网安装在 P4 完成后补验。
### P3:原生文件代理、目录事务与安全删除
目标:补齐副本外受控文件操作和完整的文件生命周期。
- 建立原生文件代理,以已授权目录/文件身份约束实际操作;P0 原型验证通过后再选择句柄与路径处理方法,并验证最终目标没有逃逸。现有 realpath/摘要检查继续作为普通冲突保护。
- 对齐读取、写入、追加、截断、rename、copy、文件描述符和同步/异步错误语义;逐步加入自有 Node 适配和 Python/Shell 桥接。原版源码只按 REA 取得的接口和证据分析。
- 扩展事务类型,覆盖空目录、递归目录、目录删除/重命名、二进制和文件所需元数据;定义只读属性、链接、ACL、时间戳、ADS 等的支持或明确拒绝行为。
- 增加单项及批量删除预览、实际清单摘要、阈值策略、授权绑定和独立备份;大批次审批期间清单变化使授权失效。
- 提供事务内删除恢复;Windows 回收站行为作为单独的执行器与验收项,具体交互和语义由 REA 补证。
- 将聊天“恢复此版本”与独立事务建立映射,避免旧 before/after 和新日志对同一变更重复恢复;远端副作用不混入本地文件恢复成功结果。
文件边界:`native/sandbox/` 内新增代理模块,`src/main/sandbox/transactions.ts` / `policy.ts`、拟新增 `filesystem-broker.ts`、自有语言适配目录;`src/main/agent/tools/index.ts` 和 `src/main/workspace-revert.ts` 由主上下文对接。
验收:目录增删改/恢复、批量删除、部分失败补偿、审批期间外部修改、并发替换路径、junction/符号链接/硬链接、设备/ADS/UNC 路径、跨工作区授权混用、断线后结果查询和跨进程恢复。纯 JS 路径校验通过不能代替原生边界测试。
### P4:受控联网、程序与注册表规则
目标:在保持默认拒绝的前提下,完成细粒度授权和真实系统执行约束。
- 网络策略覆盖协议、目标主机、端口、地址范围、代理和授权时效;按 P0 原型选定能约束原生进程及后代的执行方案。
- 增加受控出站代理/下载入口;验证未走代理、直连 IP、DNS/重定向、IPv4/IPv6、localhost/局域网和非 HTTP 程序的行为。只设置代理环境变量不算网络策略完成。
- 在受控联网环境完成 npm/pip 安装;生命周期脚本仍在隔离进程内运行。缓存发布必须完成完整性/路径校验,私有仓库令牌按最小范围使用并脱敏保存。
- 支持绑定特定沙盒实例的本地开发服务和预览;限定端口、来源和生命周期。预览页面不能取得主进程 IPC 或模型凭证。
- 程序策略区分可信工具链和项目生成的待执行产物,绑定实际可执行文件、参数、脚本/运行时与策略版本;覆盖后代启动,不能只检查主进程程序名称。
- 注册表建立逐项允许/拒绝矩阵,包括程序所需系统读取、容器内状态与宿主用户配置保护;宿主读写通过明确授权的代理实施,直接调用路径用原生探针验证。
文件边界:拟新增 `src/main/sandbox/{network,program-policy,registry-policy}.ts` 及对应原生模块;浏览器预览入口和包管理器接线由主上下文集成。
验收:获准请求真实到达受控服务、未获准请求在接收端没有流量;改变代理/目标/程序身份后授权失效;安装脚本、编译产物和原生网络程序均不能绕过限制;注册表测试只使用自有测试键并清理。
### P5:MCP、内核与交互终端接入
目标:将模型可触发的本地执行纳入统一策略,明确可信组件和远端边界。
- 本地 stdio MCP 通过自有执行适配器启动,继承对应工作区、运行时、资源和网络策略;保持 stdio 协议、连接代次、工具清单和取消语义。需要凭证的服务逐项声明最小授权。
- MCP 长期进程明确状态持久化和文件提交时机;配置/信任变化后停止旧进程树,旧连接和旧授权不能继续使用。
- 远端 MCP/连接器保留服务端外部副作用边界,核验 origin、凭证范围、逐次审批和取消;结果未知时不自动重试。界面分别显示本地隔离与远端调用权限。
- 审计 OMP 启动环境、扩展、配置、会话文件、网络和子进程。将凭证/供应商通信与项目代码执行分离;能受限运行的部分进入执行器,必须保留宿主权限的部分列出职责和允许路径/网络。
- 增加隔离终端配置和明确的宿主完全访问终端配置;隔离终端的长期工作区、写回审批和后代清理复用现有服务。
- 基于 P0 原型接入受限 ConPTY:输入/输出、resize、信号、会话迁移、窗口退出及恢复均需实际验证。界面显示终端权限和未提交变更,避免静默切换。
- 枚举技能/专家包、项目操作、预览及其他模型可达的本地执行路径,检查是否存在绕过公共策略的宿主 spawn。
文件边界:`src/main/capabilities/{mcp,runtime}.ts`、`src/main/omp.ts`、`src/main/terminal-host.ts`、对应 shared 类型与测试。跨模块路由、终端模式和内核信任划分由主上下文决定。
验收:实际 Node/Python MCP、恶意测试 MCP、配置变化、凭证过滤、连接中取消;真实 OMP 供应商夹具与工具回调;真实交互终端、跨会话/窗口归属、进程树退出和副本提交。现有调用审批不能代替进程隔离验证。
### P6:权限菜单、安全中心与通知
目标:用户能查看真实能力、调整有效策略、处理审批并恢复文件。
- 先通过 REA 补齐原版页面、控件、默认值、持久化、错误和动画证据;最终分区、字段、措辞和交互以已确认的原版为准。
- 定义后台可查询/操作的数据:分项健康与自检、策略与授权、活动进程、运行审计、文件变更/恢复、缓存与遗留资源。后端先具备能力,页面逐项接入。
- 扩展 main/preload/shared IPC,按窗口、会话和工作区校验操作归属;UI 不接受任意 stateRoot 或未经验证的宿主路径。
- 权限菜单、聊天审批、终端权限和安全中心读同一策略版本;变更/撤销实时通知相关窗口,重启后保留。
- 接入真实审批/失败/恢复事件,替换与本功能有关的示例通知;显示不可用原因、提交结果、审计失败及需恢复事务。
- 完成浅/深色、窄窗口、滚动、键盘、hover/focus/disabled、弹层和动效对照;给运维状态提供可操作错误入口。
文件边界:拟新增 `src/renderer/src/components/SecurityCenterSettingsPanel.tsx` 及配套模块;`SettingsDialog.tsx`、权限控件、通知面板、shared/main/preload 接线由主上下文安排。
验收:所有可操作控件都有真实后端效果;修改后立即影响对应测试命令;重启/多窗口同步、审批撤销、恢复冲突与后端不可用可复现;原版视觉与行为单独留 REA 对照证据。
### P7:维护、资源限制、升级与发布
目标:能够持续运行、升级和独立维护。
- 备份、审计、工作区、缓存分别制定容量/保留/清理策略;活动租约、待恢复事务与其备份受保护。清理支持预览和可查询结果。
- 资源限制覆盖进程、内存、时间、输出、存储和并发;区分快照检查、运行时监控和真正的硬限额。磁盘硬限额方案以 P0 可行性结果为前提。
- 固化事务落盘顺序、日志损坏检测与启动恢复;补充提交/补偿中断、早期启动崩溃及清理失败处理。停电级耐久性使用虚拟机断电/重启场景单独验收。
- 协议、状态格式、策略和运行时清单版本化;升级前识别活动实例,迁移失败保留可恢复数据,旧版读取不兼容状态时明确拒绝。
- 发布工件记录源码、构建器、SDK、二进制和第三方运行时身份;完善校验与签名方案。当前 exe 与相邻 manifest 的摘要匹配只是完整性检查,发布真实性需独立验证链。
- 在无 MSVC、无 WorkBuddy 的干净 Windows 机器测试安装包;覆盖标准用户/管理员差异、安装/更新/卸载、路径含中文、组件损坏、系统能力不可用及杀软兼容。
- 完成维护手册、故障诊断、日志脱敏、漏洞响应与专项安全审查。
文件边界:`scripts/build-sandbox.mjs`、`scripts/sandbox-maintain.ts`、`src/main/sandbox/maintenance.ts`、原生资源清理、发布配置和维护文档;打包/升级策略由主上下文集成。
验收:长时间反复运行无 profile/盘符/进程泄漏;故障后可诊断和恢复;升级、回退与保留策略不会误删待恢复数据;安装包可脱离开发机独立工作。
### P8:整应用与原版同场景最终验收
目标:关闭功能、边界、UI 和交接的全部必要项目。
- 使用生产 main/preload/renderer、真实 OMP RPC 和受控模型完成工具链、MCP、终端、联网、审批、恢复与通知链路。
- 在干净安装包和开发构建中复核关键边界,明确测试运行时、OS、权限、版本、策略及证据位置。
- 对 WorkBuddy 逐场景采集 REA 允许/拒绝、审批时机、错误与恢复、设置保存、页面状态;相同输入对照 YCode,逐项记录差异。
- 关闭对功能或安全声明有影响的未解决项;未知或未支持能力保持未完成,形成下一轮明确任务,不能标记全量接入/1:1 完成。
交付:最终能力矩阵、测试与 REA 报告、发布工件身份、维护文档和遗留项。三个完成口径分别给出结论。
## 5. 顺序、依赖与阶段交付
| 阶段 | 前置 | 可交付结果 |
| --- | --- | --- |
| P0 | 首版基线 | 冻结的范围、证据矩阵和高风险原型 |
| P1 | P0 的契约与机制决定 | 共用策略、授权与协议;保持现有默认隔离行为 |
| P2 | P1 | 可运行真实离线项目的沙盒 |
| P3 | P1;与 P2 按稳定接口协作 | 完整文件/目录事务与安全删除 |
| P4 | P0 机制原型、P1、P2、P3 | 可控安装依赖、联网与程序/注册表策略 |
| P5 | P2、P3、P4 | MCP、内核执行边界及交互终端统一接入 |
| P6 | P1 可开始契约/UI准备;完成依赖 P4/P5/P7 与原版页面证据 | 有真实数据与操作的安全中心 |
| P7 | P1 可开始维护工作;完成依赖 P3/P4/P5 | 可升级、可诊断、资源有界的发布版本 |
| P8 | P0~P7 必要项目完成 | 整应用、安装包、边界与原版等价分别验收 |
推进顺序:P0 → P1 → P2/P3 → P4 → P5 → P6/P7 → P8。P6 的原版采集和 P7 的维护设计可提前进行。P2 离线交付不等待联网能力;联网安装通过 P4 后才算对应工作流完成。
## 6. 必测场景与验证入口
| 编号 | 场景与通过条件 | 归属 |
| --- | --- | --- |
| A01 | 缺失/损坏/错误协议后端拒绝默认执行,不普通 spawn 回退 | P1/P7 |
| A02 | 跨会话/窗口、授权重放、策略变化、请求洪泛、取消与断线正确处理 | P1 |
| A03 | Node/Python/Git 与后代在隔离环境真实运行;缺工具链明确报错 | P2 |
| A04 | 依赖隔离、缓存完整性、安装脚本和恶意包不能取得宿主凭证/写权限 | P2/P4 |
| A05 | 文件、目录、rename/copy/追加/描述符语义及二进制写回/恢复 | P3 |
| A06 | 链接/ADS/设备路径、目录竞争替换、审批后变更拒绝越权操作 | P3 |
| A07 | 批量删除清单、部分失败补偿、恢复冲突、提交后断线可查询 | P3 |
| A08 | 网络允许/拒绝有接收端观测;直连、代理绕过、重定向与 IPv6 受约束 | P4 |
| A09 | 程序替换、运行时/参数变化、后代启动与原生注册表探针得到正确决策 | P4 |
| A10 | 本地开发服务只暴露授权入口,退出后关闭,无主进程权限泄漏 | P4 |
| A11 | MCP 连接/调用/取消、配置变化、长期进程状态和进程树清理 | P5 |
| A12 | OMP 的模型通信、会话恢复、扩展和宿主工具回调没有权限旁路 | P5 |
| A13 | 真实交互终端 I/O、resize、窗口/会话迁移、权限显示与事务提交 | P5 |
| A14 | 安全中心每项操作真实生效,多窗口/重启一致,失败和需恢复状态可操作 | P6 |
| A15 | 磁盘/内存/进程限制、崩溃/断电恢复、清理与升级不丢待恢复数据 | P7 |
| A16 | 干净安装包、标准用户与管理员、支持 OS、中文路径及真实整应用链路 | P7/P8 |
| A17 | 同版本/同场景 WorkBuddy REA 对照;视觉、行为、错误与恢复差异已关闭 | P8 |
现有验证入口继续使用:
```powershell
npm run test:sandbox
npm run test:sandbox:app
npm run sandbox:maintain -- status
npm run sandbox:maintain -- self-test
npm run smoke
npm run test:conversation-ipc
npm run test:omp
```
按模块增加策略/代理、工具链、网络、扩展/终端、UI 和打包场景的独立测试入口;命令名在新增 package scripts 时确定。整应用测试已包含生产构建,其他检查按本批修改范围选取。仅文档修改不重复运行整应用测试。
所有破坏性/拒绝/恢复测试使用自有临时工作区、假凭证、受控注册表键和本机服务;原版取证通过 REA,YCode 测试使用真实自己的执行链路。具体报告区分原生实测、整应用实测、UI mock 和尚未验证。
## 7. 实施分工与文件归属
主上下文负责需求/证据结论、架构、shared 契约、跨模块路由、策略优先级、信任划分、package/build 配置、冲突解决与最终验收。保留已有并行 UI、上下文用量和其他用户修改。
接口冻结后可按以下边界委派,实际委派时再给本批精确文件白名单与验证命令:
| 工作包 | 允许边界 | 验收责任 |
| --- | --- | --- |
| A:原生执行与文件代理 | `native/sandbox/` 的指定源文件及原生探针;不改 shared/IPC/业务路由 | 原生 token/Job、文件目标、程序/网络/注册表机制与故障证据 |
| B:运行时与项目工作区 | 指定的 toolchains/cache/workspace 模块与聚焦测试;不改原生协议和通用事务 | 离线/联网项目、依赖身份、跨项目隔离与资源限制 |
| C:安全中心与 UI 验证 | 已固定的页面/样式及 UI 测试;不改 main/preload 或自己定义授权语义 | 已有 REA 视觉交互对照、真实 IPC 消费与全部 UI 状态 |
文件/策略事务与 MCP/终端跨模块改动按阶段再拆包;未冻结协议时由主上下文推进。所有子任务报告修改文件、关键决定、验证命令与结果、剩余限制;主上下文审查后接收。首批因子任务执行环境不可用,由主上下文直接实现和验收,未接收子任务代码。
## 8. 主要依赖与停止条件
| 项目 | 必须解答的问题 | 未解决时的处理 |
| --- | --- | --- |
| 原版证据 | 安全中心内容、原生规则与删除行为的实际版本/运行语义 | 记录所需 REA 输入和场景;独立工程可继续,等价验收保持未完成 |
| 原生文件代理 | 能否在实际操作期间约束目标身份并抵御并发路径替换 | 宿主代理保持关闭,继续已验副本模式,相应能力不发布 |
| 联网/程序/注册表机制 | 原生进程与后代是否可旁路;标准用户部署是否可行 | 使用默认拒绝;补独立系统后端或声明不可用,不伪装为已生效规则 |
| 长期进程与终端 | 容器/ConPTY、stdio、状态与写回是否兼容 | 保留明确的入口权限状态;未通过的隔离配置不开放 |
| 资源/恢复/发布 | 磁盘硬限制、持久性、签名与干净机器是否满足要求 | 区分监控与硬限制;发布和完成结论保留未解决项 |
上述是实施中的能力门槛,不构成本轮额外安装、权限变更或系统配置操作。新组件的部署方式在 P0 形成具体方案。
## 9. 第一批具体工作与本轮状态
下一次实施从以下四项开始:
- [x] P0-01:建立 A01~A17 验收矩阵,登记每项原版证据、平台和真实执行点。
- [ ] P0-02:完成原生文件代理、受控联网、程序/注册表规则与受限终端的可行性报告。
- [ ] P1-01:固定能力状态、策略版本、执行配置、授权和结果查询类型,主上下文审查接口。
- [ ] P1-02:先将现有命令/文件工具接入新契约,复跑原生与整应用基线;通过后再打开 P2/P3。
计划制定轮次完成了方案和交接索引;随后用户批准持续接入,当前实现、验证与剩余项以首批实施和验收矩阵为准。未强制重启用户应用或变更其生产沙盒状态。
## 10. 参考与证据范围
- [首版实现与维护基线](自有沙盒首版实施-2026-10-18.md):当前实现、测试产物、平台与能力限制。
- [参考材料评估](沙盒参考代码评估-2026-10-18.md):REA 来源和原生未知项。沿用 `ev_74bf702462bc37612d2a68ea2e1c93b30b77dd5d99eaf1e961f1ab36d626c5e3`、`ev_2860ca8fafaf310ee1adc2ebe31530c868da0ecbb41a6f451e8e8e86b447a078`;这些是静态脚本证据,不证明原版运行效果。
- [安全中心待拆解](安全中心模块拆解-2026-10-17.md):导航证据来自原版 5.8.3,页面内容与行为仍待 REA 采集,不预设原版具有本计划中的全部维护分区。
- [本仓库原生维护说明](../native/sandbox/README.md):当前 API 使用和维护入口。本计划涉及的新增系统机制仍需 P0 验证。