Capture same-tx, recover-apply, pin-export, and GET zero-write results without claiming live 6173 or Unit A drills. Co-authored-by: Cursor <cursoragent@cursor.com>
4.8 KiB
4.8 KiB
最终成果保险库 V0–V6 测试报告
一、 测试背景 (Background)
运行库与 workspace 投影会一起丢失或错挂。已审查的 FAV 方案要求只归档数据库终态事实,独立 VAULT_STATE_ROOT,禁止扫描 output.md,GET 零写入,恢复只进 scratch。本轮按落地计划实现 V0–V6 内核与领域接入;现网 Unit A 纠挂未完成,故不对 agent-dev 开降级读或容器 rebuild。
二、 测试目标 (Test Objectives)
- 准入表拒绝非终态、未知类型、敏感正文。
- approved 无
review_snapshot_id不得入库/批准。 - task finalize 重算
export_policy/content_sha256并CompleteChatTurn。 - publisher 幂等、拒绝
data/dev根、跨项目同 SHA 分 key、tombstone union-deny。 - 回填缺证据 quarantine;重跑不新增逻辑成果。
- recover 拒绝 operational DSN;coverage/destroy 门禁 fail-closed。
- 半发布缺 commit marker 不可见,exclusive 重试后可恢复。
- GET/degraded 路径不调用
Request。 copy_only仅 completed 后显式 pin 可进库。
三、 测试方案与环境 (Test Plan & Environment)
| 项 | 值 |
|---|---|
| OS | Linux 7.0.0-31-generic |
| Go | go test 本机 |
| 后端 | 单元/内存 registry + tempfile vault;未使用 stub 作为终态验收替代,也未对现网 pi-agent 做 6173 演练 |
| 分支 | feature/final-artifact-vault |
| worktree | .worktrees/fix-dev-runtime-data-root-guard |
| 集成槽 | 未占用;禁止 env-service rebuild |
| 证据 | assets/2026-09-14-final-artifact-vault/unit-tests.txt |
四、 预期结果 (Expected Results)
| 用例 | 判定 |
|---|---|
| approved 无 snapshot | 拒绝 |
| task 无 completed turn | 拒绝 |
| 显式 pin 非终态 | ErrExplicitBypass |
| secret payload | 不得进 staging |
| 重复 Request/Drain | 同一 UUID,verified=1 |
| recover operational DSN | 拒绝 |
| coverage 不完整 | destroy 拒绝 |
五、 实际测试结果与判定 (Actual Results & Evaluation)
1. 准入与表征
- 测试输入:
go test -v ./internal/artifactvault/ ./internal/docgov/ -run 'TestEvaluateEligibility|TestApproverApprove|TestApprovedHook' - 实际输出: 全部
--- PASS(见 assets) - 评价判定: PASS
- 性能与耗时: <10ms / 包
2. Publisher / 文件系统
- 测试输入:
TestPublisherIdempotentAndCrashSafe、TestFilesystemRefusesRuntimeDataDev、TestTombstoneUnionDeny、TestLastReferencePurgeAndLegalHold - 实际输出: PASS;
data/dev根被拒绝 - 评价判定: PASS
- 性能与耗时: <10ms
3. 领域 finalize
- 测试输入:
TestFinalizeAssistantTaskMessageRecalculatesExportColumns、TestCompleteChatTurnAfterFinalize、TestFinalizeTaskRunCompletesTurnAndIngests - 实际输出: PASS
- 评价判定: PASS
- 性能与耗时: server 用例 5ms
4. 回填与恢复计划
- 测试输入:
TestBackfillIdempotentNoWorkspace、TestRecoverRejectsOperationalDSN、TestRecoverPlanGates、TestCoverageGateFailClosed - 实际输出: PASS
- 评价判定: PASS
- 性能与耗时: <10ms
5. 缺口补齐(同事务 / recover-apply / GET 零写入 / pin)
- 测试输入:
TestPublisherRetriesAfterMissingCommit、TestUnpublishedWithoutCommitMarkerInvisible、TestFilesystemIdentityMismatch、TestDegradedPayloadDoesNotWrite、TestTryVaultDegradedDoesNotRequest、TestApplyRecoverAsCollectionWritesScratchAndSkipsDenied、TestServer_PinExportCopyOnlyAfterCompleted、TestValidateIndependentVault - 实际输出: 全部
--- PASS(见 assets/2026-09-14-final-artifact-vault/unit-tests-gapfill.txt) - 评价判定: PASS
- 性能与耗时: artifactvault 4ms;pin-export 120ms
六、 自动化测试套件汇总 (Test Suite Execution)
ok chat-agent-system/internal/artifactvault 0.005s
ok chat-agent-system/internal/config 0.002s
ok chat-agent-system/internal/docgov 0.011s
ok chat-agent-system/internal/ctxmgr 0.073s
ok chat-agent-system/internal/server 0.364s (FAV 挂钩 / pin-export / GET 零写入)
未跑 go test ./... 全量(含真实 PI E2E / 需容器的套件);本波次范围是 FAV 包与挂钩单测。
七、 测试结论与后续优化建议 (Conclusion & Next Steps)
V0–V6 代码与单测已落地,可作为合 dev 前的内核证据。下列不得写成已关闭:
- 现网
FAV_DEGRADED_READ必须保持 false,直到 Unit A 纠挂。 - 项目 6173 等价脱敏 corpus 与三条 live 演练见独立报告,当前为 preflight / 单测等价,不是容器 e2e PASS。
- Goose FAV 表为 00034(00033 已被 task-run 治理占用)。