Files
LWLT-AIBOT/.project-docs/30-worklog/tasks/20260916-roster-optional-phone-01a0858b.md
T
2026-09-16 17:11:16 +08:00

39 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 名单附件兼容缺少电话列
## 范围与授权
- 用户授权:兼容修复已提供的 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:repo` 10/10;`check` 通过;`test:control-plane` 271/271;`test:legacy` 417/417;`build` 通过;`git diff --check` 通过。
- 五个 Skill 官方校验和 ZIP/源码逐文件比较通过;当前发布清单、源文件哈希及旧发布物哈希通过。DOCX 渲染后逐页检查全部 16 页,中文正常、无裁切;第 5 页为新名单说明。
- 完整仓库检查在临时干净源码快照运行,保留工作区既有 `.idea/`、`.DS_Store` 和旧忽略日志,不删除或收编。快照中的 2742 个源/文档/发布文件与工作区逐文件哈希一致。首次卫生检查仅因本次 DOCX 预览目录尚未清理失败;清理本次预览目录后 `check:repo` 和 `test:legacy` 全部通过。
- 主线程最终只读复核:PASS;未启用多 Agent。无真实 ERP 写入、部署、服务重启、提交或推送。生效需用户更新并重启服务端。
- 脱敏验证结论:[证据说明](../../../archive/evidence/2026-09-16/roster-optional-phone-01a0858b/README.md)。
## Promotion Candidates
- 后续 Integration 可将“名单原文件电话列可选;缺列留空;领队电话仍必填;不推断无表头数字”同步到 canonical 项目记忆。本次 Feature 未修改 canonical 项目记忆。