diff --git a/docs/development/OpenNexus生产化实施进度-2026-09-08.md b/docs/development/OpenNexus生产化实施进度-2026-09-08.md index 01d7df5..b6bb6e2 100644 --- a/docs/development/OpenNexus生产化实施进度-2026-09-08.md +++ b/docs/development/OpenNexus生产化实施进度-2026-09-08.md @@ -985,3 +985,11 @@ Core 的独立数据目录目前不等于已授权 Vault。Python 旧笔记写 - 文件 broker 完成 20 次授权读取;100 轮硬链接拒绝以及在两个外部目录间交替重建 junction 的 100 轮请求均返回 `UNSAFE_PATH`。MCP stdio 会话连续完成 20 次已审查工具调用。DNS 地址批次混合公网与元数据地址 100 轮,全部在建连前拒绝。 - 提交 `7030c10855d1d6034e947ad9f49321aa9e37c099` 的统一 runner 报告为 `PASSED`,九项计数分别达到 100 或 20,`denied_access_count=600`,`contains_credentials=false`,耗时 334572 ms。证据目录为 `H:\OpenNexus-acceptance\c02-7030c10-9f9f2542e9434417a72dfd8a347cb372-report`。 - 正式报告生成后删除约 3.87 GB 的隔离 Cargo target/data root,并停止及删除远端临时 TLS 夹具。C-02 可记为通过,正式验收累计 20/30;A-01/A-04、C-01、D-02/D-04 与 E-01~E-05 仍未通过。 + +## 增量:D-02 旧扩展安装库只读接管 + +- Rust Host 启动时检查应用数据目录下的旧 `extension-installations.sqlite3`,以 SQLite 只读模式导入 `skill/plugin` 记录。受管理目录必须仍位于旧 `extension-packages` 的单层所有权根下;外部目录只登记来源,不移动、复制或删除。 +- 导入时按 `managed-untrusted/external-untrusted/changed/missing` 分类并写入 Rust 单一安装库。包树摘要使用与旧 Python 实现相同的相对路径、NUL 分隔与文件内容算法;旧数据库在读取前后重新计算 SHA-256,发生并发变化即拒绝提交。 +- 迁移记录强制 `enabled=0`、`permissions=[]`,不从旧库继承启用意图、信任或许可。接管标记原子落盘后,旧 Python 的安装、启用、禁用、授权和卸载入口均返回 `EXTENSION_HOST_OWNED`,重启恢复也不会启动旧包。 +- 四组真实旧 SQLite 夹具连续导入三次,最终主键记录仍为 4、重复记录 0、外部目录变化 0、继承许可 0;旧数据库与外部包树导入前后摘要相等。正式 runner 绑定提交 `2c873777401666779e9981e1a77108e2108e9efa`,5 项断言全部通过,耗时 8717 ms,报告目录为 `H:\OpenNexus-acceptance\d02-2c87377-report`,`contains_credentials=false`。 +- 严格 Clippy 通过,后端全套 935 项通过、1 项依赖弃用警告。D-02 可记为通过,正式验收累计 21/30;A-01/A-04、C-01、D-04 与 E-01~E-05 仍未通过。 diff --git a/docs/development/OpenNexus第三阶段生产验收清单-2026-09-10.md b/docs/development/OpenNexus第三阶段生产验收清单-2026-09-10.md index efc1671..7b9caea 100644 --- a/docs/development/OpenNexus第三阶段生产验收清单-2026-09-10.md +++ b/docs/development/OpenNexus第三阶段生产验收清单-2026-09-10.md @@ -2,7 +2,7 @@ 更新时间:2026-09-10 -当前结果:20/30 通过,10/30 未通过。只有状态为“通过”的项目计入完成数;缺少环境、驱动或生产实现的项目均不计入。 +当前结果:21/30 通过,9/30 未通过。只有状态为“通过”的项目计入完成数;缺少环境、驱动或生产实现的项目均不计入。 验收定义以[第三阶段生产化工程规划与验收目标](../architecture/第三阶段生产化工程规划与验收目标.md)为准。逐轮实现、测试命令、提交和原始报告位置记录在[生产化实施进度](OpenNexus生产化实施进度-2026-09-08.md)。 @@ -21,7 +21,7 @@ | C-03 | 通过 | 16 个许可字段绑定、旧 Python 启动拒绝和重启许可失效通过。 | | C-04 | 通过 | 当前提交 `d68a6a3` 的统一 runner 报告为 `PASSED`;报告目录为 `H:\OpenNexus-acceptance\c04-d68a6a3-b3ce7ce456834b89b8b508611854e7c9-report`。 | | D-01 | 通过 | 跨语言签名、归档边界、恶意 ZIP 与目录逃逸矩阵通过。 | -| D-02 | 未通过 | schema 升级备份与旧 Python 生产入口拒绝已有基础测试;尚缺受管理、外部、修改、缺失四组旧包的只读迁移和三次幂等生产驱动。 | +| D-02 | 通过 | Rust Host 只读导入受管理、外部、修改、缺失四组旧包,连续三次保持 4 条记录;旧库与外部目录摘要不变,零许可/零信任,旧 Python 五种写入口全部拒绝。正式报告绑定提交 `2c87377`。 | | D-03 | 通过 | 60 次真实强杀、120 次磁盘满/配置故障和权限不扩大检查通过。 | | D-04 | 未通过 | 安装事务、在线撤回、运行实例和样例包分别已有组件测试;尚未完成两个真实样例在 Rust Host 中的完整安装、启用、调用、升级、回滚、撤回和卸载闭环,Host 的 extensions capability 仍关闭。 | | S-01 | 通过 | 双客户端离线链与 100 次响应丢失幂等重放通过。 | @@ -48,4 +48,4 @@ ## 下一验收条件 -要把 20/30 推进到 30/30,至少需要:受控签名 RC 与旧 RC、两台干净 Windows 设备或等价可销毁 VM、管理员网络抓包能力,以及 D-02/D-04/A-04 尚缺的生产实现和驱动。缺少这些条件时,runner 必须继续返回非通过状态。 +要把 21/30 推进到 30/30,至少需要:受控签名 RC 与旧 RC、两台干净 Windows 设备或等价可销毁 VM、管理员网络抓包能力,以及 D-04/A-04 尚缺的生产实现和驱动。缺少这些条件时,runner 必须继续返回非通过状态。