3.3 KiB
3.3 KiB
名单附件兼容缺少电话列
范围与授权
- 用户授权:兼容修复已提供的 XLSX 名单因缺少“电话”表头而被拒绝的问题。
- 仅修改名单附件标准化和相关测试、当前业务契约;缺少电话列时输出空电话,已有电话列的内容继续保留。
- 不修改原始客户附件,不将真实旅客资料保存为测试夹具,不执行 ERP 写入、部署或重启。
Worktree 检查
- Branch:
main - Worktree:
/Users/andy/IdeaProjects/LWLT-AIBOT - Base commit:
8a0f02c9be4141feb9aecfdeb0051ea6c0748bf3 - Existing changes: 未跟踪
.idea/,与本任务无关,保留原样。 - Other worktrees: 无。
- Overlap: Clear。使用当前工作区;Feature 模式只写本任务的项目记忆记录。
已知证据
- 原附件 11269 字节,SHA-256
a109854555d0cc9343fa7e416cf469418cde6748c4baf4fb3bd6627a89a4de3c,与用户生产日志一致。 - 当前 v1.6.0 复现
roster_workbook_header_not_found;第 2 行缺少电话表头。 - 仅在内存增加空电话列后,原附件 8 行通过标准化。未改动原文件。
结果与验证
- 已完成:名单标准化器升级为
ltjt-passenger-roster-workbook-v1.7.0。电话表头改为可选;缺列输出空电话,存在时照常读取、检查重复表头及非法值。其他 11 个业务字段仍必需,输出仍为 canonical 13 列。 - 不从无表头的数字推断电话;原表无表头的数字不导入。明确标记为“领队”的记录仍受姓名和电话必填规则约束。
- 增加缺列、删列、重排列名、合并备注、XLS 转换路径及旧电话校验回归。真实原附件只在内存读取:8 行、8 个空电话,Program Parser 返回
agent_parse_passed,原始 SHA-256 未变。 - 同步名单输入契约、生命周期 mapping、业务入口和操作说明。输入契约及 DOCX 为
0.5.135;五个 Skill 统一发布为0.5.128,旧发布物按原哈希归档。插件保持0.5.186,没有数据库迁移。 - 验证:定向名单测试 35/35;
check:repo10/10;check通过;test:control-plane271/271;test:legacy417/417;build通过;git diff --check通过。 - 五个 Skill 官方校验和 ZIP/源码逐文件比较通过;当前发布清单、源文件哈希及旧发布物哈希通过。DOCX 渲染后逐页检查全部 16 页,中文正常、无裁切;第 5 页为新名单说明。
- 完整仓库检查在临时干净源码快照运行,保留工作区既有
.idea/、.DS_Store和旧忽略日志,不删除或收编。快照中的 2742 个源/文档/发布文件与工作区逐文件哈希一致。首次卫生检查仅因本次 DOCX 预览目录尚未清理失败;清理本次预览目录后check:repo和test:legacy全部通过。 - 主线程最终只读复核:PASS;未启用多 Agent。无真实 ERP 写入、部署、服务重启、提交或推送。生效需用户更新并重启服务端。
- 脱敏验证结论:证据说明。
Promotion Candidates
- 后续 Integration 可将“名单原文件电话列可选;缺列留空;领队电话仍必填;不推断无表头数字”同步到 canonical 项目记忆。本次 Feature 未修改 canonical 项目记忆。