Replace FakeActionOwner with QueryOwner+QueryGuard at the composition root; DispatchEligible reuses claim/execute/recover so confirm stays zero-write before dispatch and default tier remains legacy.
1.8 KiB
1.8 KiB
Track I1 真实 query owner 测试报告
日期:2026-09-22
分支:feature/track-i1-query-owner-2026-09-22
基线:364ed7f1a3f0393ef77ec4623a9518116ed2cb87
任务:short-term
变更摘要
| 项 | 说明 |
|---|---|
| 生产 QueryOwner | internal/app/query_owner.go:项目再鉴权、expected version、只读 KB search(在线时)、receipt 含 scope=/ver=/recover= |
| 组合根 | app.go 去掉 NewFakeActionOwner(),QueryGuard{Inner: queryOwner} |
| Dispatcher | intentflow.DispatchEligible:ClaimStep → ExecuteClaimed,失败则 RecoverReceipt;无第二决策队列 |
| Confirm 接线 | intent_plan_handlers 在 confirm/retry/continue 后调用 DispatchEligible |
| 默认档位 | MULTI_INTENT_PLAN_TIER 默认仍 legacy;未升 full |
| U9–U12 | 仍仅 flag 开启时 dry-run 注册 |
验证
| 命令 | 结果 |
|---|---|
./scripts/arch-check.sh --mode block |
PASS(production gate passed) |
go test -short ./internal/app/intentflow/ ./internal/intent/ ./internal/app/ ./internal/sysadmin/ -count=1 |
PASS |
go test -short ./internal/server/ -run 'TestIntentPlan|TestMultiIntent|TestAdmin|TestFeatures' -count=1 |
PASS |
关键单测
TestProductionCompositionRoot_NoFakeQueryOwnerTestDefaultPlanTierRemainsLegacyTestQueryOwnerReceiptIncludesAuthScopeDigestTestQueryOwnerReauthAndVersionCheckTestConfirmZeroWritesBeforeDispatchTestDispatchEligible_RecoverReceiptAfterCrashTestDispatchEligible_ReauthsOnExecute
判定
I1 接线 PASS(实现就绪证据)。默认仍 legacy,不构成 auto_read/confirm 放量;I2 前不得仅凭本报告升档。
非目标 / 未跑
- 真实浏览器 + PG + PI 长链(I2/放量门)
- 共享环境部署
- U9–U12 live adapter