feat: complete WorkBuddy parity and Windows release workflow
This commit is contained in:
1 parent
143516b3a8
commit
d5512df549
434 files changed
+54977
-1854
No files matched your search
@@ -0,0 +1,313 @@
|
||||
# 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 验证。
|
||||
Reference in new issue
Block a user