Files
Agent-System/.doc/test-reports/2026-09-14-final-artifact-vault-test-report.md
T
weichenandCursor 539a2dc639 docs(test): record FAV gap-fill unit evidence
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>
2026-09-14 12:52:28 +00:00

4.8 KiB
Raw Blame History

最终成果保险库 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 治理占用)。