Why: Delivery gate requires a verification record with per-case PASS evidence for the T1 contract task before requesting review. Evidence: record covers core/agent-command/frontend/ui suites, combo test and the additive-compatibility check; contract change list enumerated. Impact: Documentation only. Refs: Dev task feature/core-cards-commands-r1
2.5 KiB
2.5 KiB
T1 验证记录:Core 契约扩展 + Agent-Command v0(feature/core-cards-commands-r1)
被测版本组合:core=合并后 main(PR#2)+ agent-command=合并后 main(PR#2)+ frontend=PR#3 + ui=PR#3 + documents=本记录;Dev 组合 PR:见任务卡(feature/core-cards-commands-r1)。 initial_base_sha(R0):69e9471dafd275f98928ff005732b94c4b18b638(T0 合并提交)。 日期:2026-09-30。
结果
| 用例 | 结果 | 证据 |
|---|---|---|
Core go vet ./... |
PASS | 无输出(干净) |
Core go test ./...(含黄金样本一致性) |
PASS | ok agent-system-core;新增样本 activity_card / hitl_card_blocked / event_card_created / event_card_resolved / ui_vocabularies + 扩展 plugin_manifest 全部逐字节一致 |
Agent-Command go vet ./... |
PASS | 干净 |
Agent-Command go test ./... |
PASS | ok agent-command(spec 校验 10 负例 / 注册表生命周期 / 回执四态 / 并发冒烟)+ ok agent-command/conformance(command_spec、command_receipt 黄金样本) |
Frontend vitest run |
PASS | 9/9(contracts.ts 再生成后形状断言不变) |
UI tsc --noEmit + vitest run |
PASS | 类型干净;6/6 组件测试 |
组合 make test + make build |
PASS | 在 Dev 分支最终 head 执行(证据见 Dev PR 与任务卡) |
| 兼容性核查 | PASS | 全部为增量(omitempty 字段/新类型/新事件类型);现有黄金样本不变;ts 镜像同步 |
契约变更清单(本任务落库)
- Core:
ActivityCard(7 Kind × 6 Status + Terminal)、card.created/updated/status/resolved事件与 payload、HITLanchorMessageId/blocked/blockReason、UI 词汇 7 项(progress/compare/tree/table/steps/tabs/timeline,Spec 后缀避免常量名冲突)、UIAction.command、manifestprovides.commands/workspaces、ActivityCardTemplate(工作流 card 步骤)、PluginWorkspace。 - Agent-Command v0:
CommandSpec(id 规范<domain>.<verb>、paramsSchema、danger、binding + fail-closed 校验)、Registry(来源标记/启停/稳定错误)、ExecReceipt四态(committed/accepted 必带 OperationID)、AuditEnvelope(入口归一 button/card/slash/chat/api)。
限制
- 本任务为契约与库层,无运行时行为可走查;端到端行为验证在 T2(收件箱)/T3(命令总线)的浏览器证据中覆盖。
- Core 黄金样本
event_card_*的 payload 为内联 JSON 字面量(与既有事件样本同风格),未逐一驱动 CardPayload 序列化路径(后端 T2 接入时经事件管道覆盖)。