完成 M002 V3 CP6 P0 fixtures 回归基线

This commit is contained in:
andy
2026-07-11 22:23:19 +08:00
parent 25dfa33f45
commit 3ae3fea6bc
33 changed files with 4600 additions and 75 deletions

View File

@@ -38,7 +38,7 @@ V3 以以下资料和决策为输入:
- M002 V3 正式采用 0711 P0 基线。
- 旧数据 `S000/S999` 继续在任务列表可见;新数据迁移为 `S10/S99`
- `S10/S99` 继续复用隐藏技术订单 + 任务列表只读卡,不进入订单列表和订单执行队列。
- 缺少 `source_message.source_message_id` 时,目标契约采用 `HTTP 400 + infrastructure_input_error + retryable=true` 的技术错误响应;当前 CP1-CP2 后端暂返回标准错误包装typed 响应仍在后续 checkpoint
- 缺少 `source_message.source_message_id` 时,后端已按 `HTTP 400 + infrastructure_input_error + retryable=true` 的技术错误响应返回,不创建 SourceMessage、AI transition、订单、任务或通知卡
- 内部任务模型采用“方案 C”完整保存 AI 三元组,系统处理分类和前端展示分类单独维护。
- type-known manual review 使用同一张业务卡复核解阻,不生成第二张 normal task。
- 第一版保存全部 42 条路由 / 枚举,先支持保存和列表展示。
@@ -91,7 +91,7 @@ Gateway 必须在读取正文、附件、OCR、历史、系统上下文或调用
}
```
当前 CP1-CP2 实现说明:后端已识别缺失并返回 `HTTP 400`,但响应体仍使用系统标准错误包装,尚未切换为上方 typed `infrastructure_input_error` 结构。
当前 CP6 实现说明:后端已识别 V3 `source_message.source_message_id` 缺失,并返回上方 typed `infrastructure_input_error` 结构。
处理要求:
@@ -266,7 +266,7 @@ Agent payload 不可变。本系统在同一张卡上维护复核状态:
"field_overrides": [
{
"field_pointer": "/extracted_fields/room_items/0/pms_room_type_code",
"field_path": "extracted_fields.room_items[].pms_room_type_code",
"field_path": "extracted_fields.pms_room_type_code",
"value": "SU1"
}
],
@@ -288,6 +288,8 @@ Agent payload 不可变。本系统在同一张卡上维护复核状态:
- 订单归属确认可作为复核解阻的一部分保存;当前第一版只允许确认当前任务所属订单,不开放普通任务随意切换订单能力。
- 全部缺失字段、订单归属、目录值和依赖校验通过后,才进入 Preflight / READY。
当前 CP6 兼容说明0711 P0 fixtures 中 `room_items[]` 已经是新结构,但后端第一版字段矩阵仍使用 `extracted_fields.room_type``extracted_fields.room_quantity``extracted_fields.pms_room_type_code` 等扁平字段。入站 payload 保留原始 `room_items[]`;后端在字段读取、展示、校验和确认 payload 组装时,从第一条 `room_items[]` 做扁平字段别名解析。解阻接口接受 `/extracted_fields/room_items/{index}/pms_room_type_code`,响应中的矩阵 `field_path` 仍返回当前后端字段 `extracted_fields.pms_room_type_code`。后续字段矩阵整体迁移时再取消这层兼容。
### 9.3 后端第一版接口
```text
@@ -364,7 +366,7 @@ V3 建议拆成以下 checkpoint避免一次性重构过大
| M002-V3-CP3 | 路由持久化 | 已完成第一版:已保存 AI 原始三元组、route_code、system_process_category、unhandled_current_intents 和 adapter_contract_error |
| M002-V3-CP4 | 列表 / 详情展示 | 已完成第一版:任务列表、订单任务时间线和任务详情透出 V3 路由字段;任务详情支持 S10/S99 入口通知结构、unhandled intent 展示块和 adapter contract error 展示块 |
| M002-V3-CP5 | 同卡复核解阻 | 已完成第一版:支持 review_status、review_resolution.field_overrides[]、复核场景订单归属确认、JSON Pointer 校验和 READY 流转 |
| M002-V3-CP6 | P0 fixtures 回归 | 引入 0711 P0 fixtures / validator 作为后端适配测试参考,补充项目级测试 |
| M002-V3-CP6 | P0 fixtures 回归 | 已完成第一版:引入 0711 P0 fixtures / validator 作为后端适配测试参考,覆盖 main_outcomes、candidate_gate、manual_review_resolution、source_identity_errors、parent_split_two_children、row_multiple_derived、allotment_scope其中 candidate_gate 是 Main Agent 调 Skill 前契约,后端以 validator 和 fixture reference 固化,不作为任务结果回调直接建任务 |
## 13. 明确不做
@@ -380,7 +382,7 @@ V3 P0 不做以下事项:
## 14. 当前代码现状提醒
截至 M002 V3 CP5 落地后,当前后端已经实现:
截至 M002 V3 CP6 落地后,当前后端已经实现:
- `S000/S999` 文本结果兼容处理。
- 结构化 `S10/S99` 入站处理,复用 `SOURCE_MESSAGE_ONLY` 只读特殊任务。
@@ -393,10 +395,11 @@ V3 P0 不做以下事项:
- 业务任务详情按同一 AI 批次透出 `adapter_contract_errors[]``unhandled_intents[]` 只读展示块。
- type-known manual review 创建在原业务任务卡上,任务详情返回 `review_status``review_resolution``manual_review`
- `POST /api/reservation/tasks/{taskId}/manual-review-resolutions` 支持字段修正、当前订单归属确认、JSON Pointer 到可编辑字段校验、READY 流转、confirmed payload 写入、两条 OPERA 模拟操作创建和审计记录。
- `source_message.source_message_id` 缺失时按 V3 typed `infrastructure_input_error` 结构响应。
- 0711 P0 fixtures 已纳入后端回归测试参考,并补齐 S10/S99 严格契约、P0 type-known manual review 解阻、candidate_gate reference 和当前扁平字段矩阵兼容。
- 订单 / 任务列表、任务详情、草稿保存、最终确认、OPERA 模拟骨架和审计列表。
- SuperAgent 查询上下文接口 1、2以及邮件会话相关查询。
仍需后续 checkpoint 实现:
- `source_message.source_message_id` 缺失时按 V3 typed `infrastructure_input_error` 结构响应
- 真实 OPERA / OHIP、普通任务任意切换订单、P0 fixtures / validator 全量回归。
- 真实 OPERA / OHIP、普通任务任意切换订单、字段矩阵从当前扁平结构整体迁移到 0711 P0 新结构

View File

@@ -10,7 +10,7 @@
| --- | --- |
| 文档版本 | 0.5 |
| 日期 | 2026-07-11 |
| 状态 | V2 兼容 + M002 V3 CP1-CP2 入站解析基线;完整 V3 展示和同卡复核仍看 `M002-order-task-workflow-v3.md` 后续 checkpoint |
| 状态 | V2 兼容 + M002 V3 CP1-CP6 入站解析、同卡复核和 P0 fixtures 回归基线;后续业务流程以 `M002-order-task-workflow-v3.md` 为准 |
| 适用范围 | SuperAgent / Main Agent 调用本系统提交 AI 任务结果 |
| 主要读者 | 后端、SuperAgent 对接方、测试、后续协作 agent |
@@ -20,7 +20,7 @@
本文承接 `M002-order-task-workflow-v2.md`,只定义本系统入站接口、鉴权、幂等、请求响应和技术校验边界,不定义 SuperAgent 内部 prompt、Skill 实现、OPERA 真实接口或前端展示细节。
2026-07-11 后M002 后续开发基线已迁移到 `M002-order-task-workflow-v3.md`。当前后端已完成 CP1-CP2:结构化 `S10/S99` 入站、V3 业务根基础解析、42 路由枚举 / 稳定配置、`UNHANDLED_CURRENT_INTENT` 和 route 相关字段最小落库。旧 `S000/S999``ai_task_results[]` 仍作为兼容路径保留。对外联调以 `docs/project/integrations/superagent-api-contract.md` 为准。完整 type-known manual review 解阻、`missing_fields[]` 到任务卡字段白名单映射和 typed `infrastructure_input_error` 响应仍在后续 checkpoint。
2026-07-11 后M002 后续开发基线已迁移到 `M002-order-task-workflow-v3.md`。当前后端已完成 CP1-CP6:结构化 `S10/S99` 入站、V3 业务根基础解析、42 路由枚举 / 稳定配置、`UNHANDLED_CURRENT_INTENT` 和 route 相关字段最小落库、type-known manual review 同卡解阻第一版、typed `infrastructure_input_error` 响应和 P0 fixtures 回归基线。旧 `S000/S999``ai_task_results[]` 仍作为兼容路径保留。对外联调以 `docs/project/integrations/superagent-api-contract.md` 为准。
## 2. 接口概览
@@ -404,7 +404,7 @@ S000 / S999 文本结果创建成功时,同样返回 `201 Created`。这类结
}
```
前端通过任务详情查看该类任务时,字段列表和 OPERA 操作列表为空,按钮应全部只读;`source_message_only_result` 会返回 `entry_result_code``entry_result_meaning``entry_result_description``entry_result_source_message_id``raw_answer`
前端通过任务详情查看该类任务时,字段列表和 OPERA 操作列表为空,按钮应全部只读;`source_message_only_result` 会返回 `entry_result_code``entry_result_meaning``entry_result_description``entry_result_source_message_id``result_type``route_code``agent_assessment``notification``manual_review``raw_answer`
### 8.2 幂等重放