docs(acceptance): 记录 D-03 恢复验收证据

This commit is contained in:
2026-09-09 19:11:30 +08:00
parent 576c365573
commit 4cc0c3c8a1
2 changed files with 10 additions and 1 deletions
@@ -914,3 +914,12 @@ Core 的独立数据目录目前不等于已授权 Vault。Python 旧笔记写
- 精确 Rust oracle 逐字段改变上述声明并核对错误码;销毁 Host Authority 后新实例使用新随机密钥,旧许可不能复活。真实启动前路径同时重新核验固定目录树、入口文件身份、Vault/策略上下文和包域 Stronghold 引用;保险库锁定时即使包不声明秘密也不能创建进程。
- 旧 Python MCP stdio 启动入口在生产配置下保持禁用。测试先完成配置摘要信任,再尝试启用,仍固定返回 `MCP_SANDBOX_REQUIRED`;renderer 或旧调用方不能用已经批准的配置绕过 Rust Host 原生启动路径。
- 提交 `4e50dfb94beaa8460a0ff08963b07ef10c42eb66` 后在只保留用户 Vault 修改的工作树运行统一 runnersummary/case 均为 `PASSED`,5 项断言通过,耗时 18886 ms;指标为 16 个绑定字段、1 次旧入口绕过拒绝和 1 次重启许可拒绝。证据目录 `H:\OpenNexus-acceptance\c03-4e50dfb-f02e084c772247eaad1918148d3db0a9-report\`,报告标记 `contains_credentials=false`。两项 exact Rust oracle、Python/runner 8 项测试、Rust 格式与全目标 Clippy `-D warnings` 均通过。C-03 可记为通过;其余 15 个生产验收 ID 尚未登记,整体生产化目标保持未完成。
## 增量:D-03 扩展事务断电、容量与配置故障生产验收
- 将原先只在同一进程返回注入错误的事务测试升级为真实进程终止:对 `journal_recorded``pointer_recorded``switch_committed` 三个持久化边界各启动 20 个辅助进程,辅助进程刷写边界标记后由父进程强制终止,共 60 次。每次重开 SQLite 并执行恢复,两个包槽都只能处于完整旧版或完整新版,包摘要、配置版本和 pending 状态没有混合。
- 对同三个边界分别注入磁盘满和配置迁移失败,各 20 轮,共 120 次;错误返回后关闭连接、重开和重复恢复,结果仍为单一完整代次。真实 SQLite `SQLITE_FULL` 现在映射为公共错误 `QUOTA_EXCEEDED`,不会向调用方退化为无法区分的 `DATABASE_ERROR`
- 独立 oracle 核对依赖环、缺包和版本冲突在不可变计划阶段返回稳定错误;无效配置在创建安装事务前拒绝。失败后的既有执行许可仍只绑定原 `notes.read`,尝试增加 `notes.write` 返回 `PERMISSION_CHANGED`,事务恢复不签发或扩大权限。
- 提交 `af67a2250e091ddc0a4b3a93487707447af57b20` 后在只保留用户 Vault 修改的工作树运行统一 runnersummary/case 均为 `PASSED`,5 项断言通过,耗时 35726 ms。证据目录 `H:\OpenNexus-acceptance\d03-af67a22-c314a1d271bb4add81f62ce24ca7c14c-report\`,报告标记 `contains_credentials=false`;隔离数据根已在报告生成后删除。
- desktop Rust 全目标通过:库 141 项、Host 11 项、其余集成 9 项,合计 161 项,16 项 ignored 中包含由父用例实际调用的辅助入口及需单独运行的长时验收;D-03 driver 已显式运行新增硬终止用例。全目标 Clippy `-D warnings`、runner 7 项测试、Python 编译、Rust 格式和差异检查均通过。D-03 可记为通过;其余 14 个生产验收 ID 尚未登记,整体生产化目标保持未完成。
@@ -24,4 +24,4 @@ python scripts/phase3-production-acceptance.py `
报告目录包含 `summary.json``case-manifest.json``junit.xml``cases/<ID>.json` 和脱敏的 `logs/<ID>.log`。摘要记录 commit、各锁文件 SHA-256、配置摘要与已提供安装产物摘要。日志将仓库、数据根、报告根、用户主目录和配置声明的秘密值替换为占位符,并限制为 10 MiB。报告目录必须为空,避免单例复跑覆盖原始证据。
当前 runner 与失败闭合行为已实现,A-02/A-03 Sidecar、B-01/B-02 凭据、C-03 沙箱许可、D-01 扩展包、S-01/S-02/S-03/S-08 Sync 客户端以及 S-04/S-05/S-06/S-07/S-09 Sync 服务 driver 已登记;其余 15 个生产验收 ID 尚未登记,运行时会生成 `NOT_IMPLEMENTED` 证据并退出 1。这用于阻止误报,不是这些用例的验收通过。
当前 runner 与失败闭合行为已实现,A-02/A-03 Sidecar、B-01/B-02 凭据、C-03 沙箱许可、D-01/D-03 扩展包与事务、S-01/S-02/S-03/S-08 Sync 客户端以及 S-04/S-05/S-06/S-07/S-09 Sync 服务 driver 已登记;其余 14 个生产验收 ID 尚未登记,运行时会生成 `NOT_IMPLEMENTED` 证据并退出 1。这用于阻止误报,不是这些用例的验收通过。