接入标准表格单解析Agent与程序判型,明确有效操作、正文配额取消和表格修改边界。 完善房型日期价格接收、来源材料展示、运行日志和失败提醒,交付V7固定规则读取指引。 同步Agent规则、迁移、测试和项目记录,忽略Python缓存并修正旧阶段名称测试。 验证:后端1322通过、16条件跳过;前端281通过,类型检查、lint及生产构建通过;Parsing配置32项及Booking规则校验通过。
4.2 KiB
邮件交接第一步实施与验证
后续运行状态
用户随后授权重启,第一/二步后台已实际加载,见加载证据。下文未加载描述为该阶段交付时状态。
范围和状态
用户已认可两步安排,并明确授权开始第一步。此次完成 Layer3 正文引用与已识别团号交接、Layer7 修改前快照及展示对象对应。没有创建子智能体、调用平台 Agent、重写历史数据或切换运行服务。代码本地完成,尚未加载到 8082。
Agent 输出格式、要素说明与 EML1 Note 精简属于第二步;本轮不修改 Skill 输出契约或平台包。现有配额关系、整块取消、FIT 姓名要求和 Layer4/5/6 业务规则保持。
实施
FixedChannelEvidenceRegistryBuilder:完整文本仍保留;短引用只按原始 LF/CRLF/CR 非空行生成,行内标点不再作为边界。日期、金额小数、房型标记保持,Unicode code point 位置和顺序可回查原文。引用行只是出处,不是业务对象。FixedChannelLayer3V2Projector:纳入此前本地完成的团号修复,已有 GROUP_CODE 与 Parser 绑定保持权威,无值不猜。BookingWorkbenchBeforeSnapshotService:读取正文body_binding,按来源目标、来源单元、住期分别分组,房型在各住期内分别保留;Parser 与旧 fact_path 兼容。BEFORE 仅用于只读卡片,不进入当前配房或业务决定。BookingWorkbenchSourceTargetRefs和详情查询:从同一次不可变业务输入的正式 GROUP_CODE,以及旧运行保留的已验收agent-target身份元数据,找到来源目标与最终团号的对应。明确绑定 Parser 的正文目标服从 Parser;身份冲突不扩展。BEFORE 和 TARGET 展示共用这组对应,不沿配额 source→actual 关系把其他目标内容混进来。
验证结果
新增切分及正文 BEFORE 测试先在旧实现上复现 3 项失败,再修复通过。完整后端 ./mvnw -q test:1227 项,16 项条件跳过,0 失败、0 错误;跳过项为需显式启用的真实 Agent、PostgreSQL 和外部样本检查。本轮两封真实输入另做本地离线验证,不依赖上述条件测试。
使用用户提供的两个完整日志及此前保存的 8 张实际卡片响应,在内存仓储中运行真实详情查询、目标对应及 BEFORE 服务;不调用新 Agent、不写历史记录。四项有 BEFORE 的酒店入住/离店日期均与原邮件一致,房型结果为:
| 邮件/对象 | 修复后修改前内容 |
|---|---|
EML1 LLTQ260716Q10-A |
TWO-BEDROOM-SUITE FAM 3PAX (Q10) ×1 |
EML1 LLTQ260814Q3-C |
SUP TRP ×1、SUP TWN ×9、SUP DBL ×1 |
EML2 LLTQ260908Q6-A |
SUP TWN ×1、SUP DBL ×3 |
EML2 LLTQ260909Q6-A |
SUP TWN ×1、SUP DBL ×1 |
EML2 其余三团仍无 BEFORE,不凭空补出;配额 LTQ260911 取消卡恢复 1 条取消原句,五张修改卡均没有混入该句。全部 8 卡除 BEFORE 外的现有业务展示 payload 与原保存响应一致;EML1 两卡的 11/15 条 Note 保持原样,留待第二步精简。两封原候选决定保持,EML2 仍是 5 修改+1 整块取消。
用保存的 EML1 正文重建新请求并经过真实 compact 输入组装:完整正文不变,正文短引用由 27 条变为 21 条,July.26、UP-TWN8.5 在单条引用内完整保留。新请求编号随引用变化而变化;未拿旧 Agent 结果冒充新请求结果,也没有验证实时 Agent 耗时改善。
可重复脚本、脱敏摘要、测试日志及私有输入位于忽略目录 .planning/step1-mail-handoff-20260911/。RecordedFirstStepCheck.java 覆盖真实 8 卡,RecordedBodyInputCheck.java 覆盖真实正文输入。
加载边界
旧不可变运行记录不重写,旧代码中的引用 ID 仍通过其保存产物读取。新请求使用按行引用。后续加载前须确认无待恢复的旧 C1 请求,因为恢复流程会按当前生成器重建请求;不能在旧请求等待中途改变引用生成规则。此次没有部署或终止任何运行。
变更检查:git diff --check 和项目文档漂移检查通过;原有其他工作区改动保留。