Files
LWLT-AIBOT/archive/project-history/2026-08-16/task_plan-legacy-2026-08-14.md
T

25 KiB
Raw Blame History

当前任务计划

2026-08-14 — 0.5.100 安排用车输入与原生结算单位联动

status: completed

已完成

  • 以 ERP 车辆安排原生表单核验字段:开始日期、结束日期、结算单位搜索、数量默认 1;380 仅作为模糊搜索词。
  • 已更新安排 Skill、模板/示例、Agent/执行 Schema、解析/执行门禁、ERP 候选匹配和车辆日期写入/回查。
  • 专项 136 项解析、模板、执行计划和生命周期回归全部通过。

已验证 / 待真实验收

  • 桌面 DOCX 示例、0.5.100 插件与安排 Skill 已更新/打包;全量检查、正式构建、176 项 legacy 回归和制品完整性校验已通过。
  • 真实安排用车验证仍需在 Chrome 重载 0.5.100 后进行;本轮没有写入 ERP 业务数据。

制品

  • 插件:dist/ltjt-order-assistant-0.5.100.zip,SHA-256 b995984d1cef214bc2d3f23b5bc8f55a1da228d086c7c97896bc38b13375553f。
  • 安排 Skill:/Users/inmanx/Desktop/lwlt-arrangement-0.5.100.skill,SHA-256 f988edda86e64ddb2c8d46a480010a770a70b2b063196e64cab4d3dca2d049c7。

2026-08-13 — 业务字段唯一定位

status: completed

完成结果

阶段 状态 结果
1. 现有链路与模板核对 completed 以既有指令模板和示例为基线,确认沿用 action、字段对象及分段门禁
2. 解析层改造 completed 九条受影响流程支持客户/日期及可选产品/领队;旧编号路径兼容
3. 插件唯一定位 completed 使用原生列表筛选并只接受唯一候选;散拼新增子单不以新客户筛母团
4. 不受影响边界 completed 安排和变更安排继续要求完整编号,执行态严格门禁未放宽
5. 回归与制品 completed TypeScript、36+174 测试、五 Skill 校验、JS 语法和 18 文件包一致性通过;补充散拼子单嵌套结果、团队安排 PrintGridLists 与导游异步候选加载回归

交付

  • 当前插件:dist/ltjt-order-assistant-0.5.99.zip
  • 通用别名:dist/ltjt-order-assistant.zip
  • SHA-256:478090b79ed06bf2a0c809559575728b89e5b231fd2f45d8d216274461af7965
  • 0.5.99 修复安排导游写后团队总表回查:团号无出发日期时复用 ERP 原生日期范围兜底,避免 ERP 已成功写入却被空日期查询误判。重载与真实业务验证仍是独立发布步骤。

2026-08-13 — 全自动交接延迟与查无单号提示

status: completed

完成结果

阶段 状态 结果
1. 时间线核对 completed 15:41:26 自动确认,15:44:19 插件接单,15:44:26 候选 0 阻断;无 ERP 写入
2. 根因 completed 扩展重载注入只识别旧端口 8765,当前 8786 平台页未获桥接
3. 插件修复 completed 0.5.92 支持 8786 重连;0/多候选返回直接中文错误及稳定错误码
4. 回归 completed TypeScript、控制面 36/36、核心 167/167,合计 203/203

交付

  • 当前插件:dist/ltjt-order-assistant-0.5.92.zip
  • 通用别名:dist/ltjt-order-assistant.zip
  • SHA-256:5660f075c644583eed1c8a0cfdd39cc0bfb0a9600256e662bf66cc53f92b48e6

2026-08-13 — 全自动与名单回查误报修复

status: completed

已确认语义

  • 组织开启全自动后,全部 AgentBus 业务统一自动确认,不按 action 列出自动/人工例外。
  • 缺资料、解析阻断、插件校验失败或真实不确定写入仍停止;这些是失败关闭,不是业务类型人工确认。
  • 既有待回查任务只允许用原 operation 读取 ERP 现状,禁止再次保存。

完成结果

阶段 状态 结果
1. 时间线与根因 completed 确认 38s 解析 + 169.8s 人工等待 + 17s ERP;生命周期 action 被代码强制排除
2. 全自动语义 completed 自动判定不再接收/检查 operation,所有 AgentBus 业务统一处理
3. 名单回查 completed 分离 16 个写前游客位与 2 条写后非空行,完整保留未指定已有游客的校验
4. 回归/构建 completed TypeScript、控制面 36/36、核心 166/166,合计 202/202
5. 真实只读收敛 completed 原任务已从待回查转为 completed,2/2 投影一致,未再次保存 ERP
6. 制品/运行态 completed 0.5.91 已打包并在 Chrome 重载;控制面已重启且 AgentBus/DB 健康

交付

  • 当前插件:dist/ltjt-order-assistant-0.5.91.zip
  • 通用别名:dist/ltjt-order-assistant.zip
  • SHA-256:b711af85297ea10eafdc02f131d03fc18df84f10c4a4808cdcf9742a25a2a561
  • 主提示词、Skill 和业务输入 operation 无需变更;根因不在 Agent 解析知识。

2026-08-13 — 名单二次归属复核日期窗修复

status: completed

现场事实

  • 新任务成功解析 LW-260903A-A,首次 ERP 解析唯一得到 tid 14424、ddid 14486,原生名单页读取 16 个游客位并规划序号 1/2。
  • 写前二次归属复核提交空日期,ERP 返回 HTTP 200 空片段,造成订单不存在及 tid/ddid 不一致误报;任务没有写入 ERP。
  • Chrome 只读对照确认:同一编号使用执行日 ±1 年日期窗后,订单号、tid、ddid 均在响应中存在。

完成结果

阶段 状态 结果
1. 根因复现 completed 空日期 211 字节无对象;日期窗 5220 字节且三个引用全部命中
2. 归属复核修复 completed 与首次 ERP 解析共用缺日期编号 ±1 年策略,用户日期保持不变
3. Blocker 收敛 completed 只有找到具体行后才比较 marker、账号、状态、tid 和 ddid
4. 回归与构建 completed 专项 28/28、控制面 35/35、核心 166/166,合计 201/201;正式构建通过
5. 制品 completed 0.5.90 的 18 文件包与源码逐文件一致,通用别名字节一致

交付

  • 当前插件:dist/ltjt-order-assistant-0.5.90.zip
  • 通用别名:dist/ltjt-order-assistant.zip
  • 两者 SHA-256:9ce60be57e884aa59bfdda2720b6f8dc21fe784f5f3900e4f00745b8c8cb8608
  • Agent Prompt、Skill、解析 Schema 和业务 operation 契约未改变;下一步重载插件并重新提交同一任务。

2026-08-13 — 名单按序号安全补录修复

status: completed

现场事实

  • 最新名单任务提供 2 行游客,但目标订单编辑页有 16 个游客位;Agent 解析、订单唯一定位和原生导入页打开均成功。
  • 旧插件错误地把用户本次 row_count=2 复制为订单总游客位,随后触发 lifecycle_passenger_rows_incomplete:16:2;任务在写前停止,没有 ERP 写入。
  • 已在登录 Chrome 只读核实目标独立团页面确有 16 行游客控件;本轮没有保存或提交。

完成结果

阶段 状态 结果
1. 真实游客位来源 completed 从精确订单编辑页读取游客位数量,不再使用 Agent 提交行数推断订单人数
2. 部分名单合并 completed 按明确序号填充空行;未指定行和同值行恢复原快照;重复、越界和未确认覆盖均写前阻断
3. 原生解析与回查 completed 以完整合并 TSV 调用 DaoRuDones,仅保留真实变化行;即时回查比较完整合并后投影
4. 契约与 Skill completed 生命周期契约升级至 v2.7;Schema、mapping、模板和 lwlt-lifecycle 已同步;主提示词保持精简路由不变
5. 回归与制品 completed 控制面 35/35、核心 166/166,合计 201/201;五个 Skill、构建和 18 文件包一致性通过

交付

  • 该轮插件:archive/releases/2026-08-13/ltjt-order-assistant-0.5.89.zip
  • 通用别名:dist/ltjt-order-assistant.zip
  • 两者 SHA-256:130ad84b802e72e9a1e3cee193c1073f7d0558528aebf4d39089f1c50348ce09
  • 当时下一步:Chrome 重载 0.5.89 后重新提交同一 2 行名单任务;该轮实现和核验均未写入 ERP。

2026-08-13 — 散拼子单客户语义解析修复

status: completed

现场事实

  • 0.5.87 已成功把无日期团号检索补为 2025-8-13—2027-8-13,并唯一定位母团 LW-260907A-B(tid 14427);因此上一轮日期阻断已修复。
  • 新任务在任何 ERP 写入前停于客户匹配:Agent 给出业务关键词“广东衡阳客户”,ERP 当前 99 条客户主数据中没有这个正式名称。
  • 当前客户主数据中同时包含“广东”和“衡阳”的候选只有 LW衡阳国旅云南分社(广东市场)(ID 661);零候选或多候选仍必须阻断。
  • 子单产品名称不在 input 中,而在已选 tdid 原生表格行内;旧实现读取空字段,因而把产品来源校验误记为“不适用”。

完成结果

阶段 状态 结果
1. 日志与 Chrome 只读核验 completed 日期兜底生效;母团、客户候选和子单产品 DOM 均已核实,全程未保存
2. 客户唯一语义回退 completed 精确/唯一包含失败后,以用户输入中的全部来源地词匹配 ERP 客户名称;仅 1 条时选择,0/多条阻断
3. 产品—客户校验修复 completed 从选中的 tdid 行读取母团产品,再以正式客户候选执行来源兼容校验
4. 阻断原因与证据修复 completed 只收集真正失败的检查;不再把 ok=true 的“不适用”理由误报为阻断
5. 回归与制品 completed 控制面 35/35、核心 165/165;0.5.88 的 18 文件包与源码一致

交付

  • 当前插件:dist/ltjt-order-assistant-0.5.88.zip
  • 通用别名:dist/ltjt-order-assistant.zip
  • 两者 SHA-256:32dca6b01452c605df989235eaf28d7ff34c4b34148726b4fb7d809d407f2c85
  • 当时下一步:Chrome 重载 0.5.88 后重新提交该散拼子单;该轮只读核验未执行 ERP 写入。

2026-08-13 — 缺日期编号检索修复

status: completed

已确认边界

  • 只有 ERP 列表检索同时缺少起止日期、且已有明确团号/订单号时,插件自动使用执行日 ±1 年日期窗。
  • 用户提供的日期不覆盖;Agent、Skill 和用户模板不新增日期必填。
  • 唯一编号匹配和写前门禁保持不变;本次修复不扩大业务字段或副作用权限。

完成结果

阶段 状态 结果
1. 失败日志与 ERP 只读核对 completed 三个目标母团真实存在;失败任务未写入,旧列表来自日期必填校验阻断
2. 共用检索层修复 completed 缺日期编号检索补日历年窗口,已有日期不改写,闰日安全钳制
3. 原生请求稳定性 completed 静默设置筛选、等待旧 AJAX 空闲、只调用一次原生检索并等待匹配请求完成
4. 回归与制品 completed 控制面 35/35、核心 145/145;0.5.87 的 18 文件包与源码一致

交付

  • 当前插件:dist/ltjt-order-assistant-0.5.87.zip
  • 通用别名:dist/ltjt-order-assistant.zip
  • 两者 SHA-256:086b5af492b74851ed99674d91b8eb40af1ac3c78cfb39de757459ad120f2cee
  • 下一步:重载 0.5.87 后复跑原无日期散拼子单;本轮未执行 ERP 写入。

2026-08-13 — 解析服务崩溃与待回查轮询修复

status: completed

结果

  • reconciliation_pending 已从普通 status=active 查询和插件结果轮询中排除;只有人工回查路径可以读取这类任务。
  • PostgreSQL 连接池增加 idle client error 监听,事务回滚失败不再触发未处理异常导致 Node 进程退出。
  • 迁移租约中的最新任务已由现有恢复机制安全标记为 parse_failed,没有进入插件或 ERP;随后浏览器发起删除请求,未由本次修复代码主动删除。
  • 服务已重新启动并保持运行,数据库、AgentBus、健康检查全部正常。

验证

  • 控制面测试:35/35
  • 平台核心回归:144/144
  • TypeScript 构建、JS 语法检查、git diff --check:通过
  • 运行时 /health/ready:200;AgentBus session_ready=true

2026-08-13 — 最新任务插件反复排队、ERP 已写入但平台迟延与刷新卡顿排查

status: completed

目标

基于用户提供的最新任务日志和当前源码,确认:

  1. 插件为何出现“排队 → 执行 → 排队 → 执行”的表象;
  2. ERP 已经写入完成后,为什么平台很晚才显示完成;
  3. 页面刷新时“正在恢复登录状态”并长时间转圈的具体原因;
  4. 区分真实执行耗时、结果回传延迟、重复派发/轮询问题和登录恢复问题。

约束

  • 本轮只读诊断,不修改业务源码、插件制品或运行数据。
  • 保留工作树已有用户改动,不使用 reset、clean 或覆盖式回滚。
  • 结论必须用日志时间戳、源码位置或可复现的请求/状态链路支撑;无法从现有日志确定的部分明确标为待证据。

阶段

阶段 状态 结果
1. 最新任务时间线与重复状态核对 completed 日志只含一个 execution_id;ERP/插件结果约 03:30:38 已完成,平台事件 03:33:25 才完成,延迟约 2 分 47 秒
2. 插件执行、轮询和结果落库链路审计 completed 已确认只有一个 ERP attempt;发现服务端快照与插件本地结果存在覆盖竞争,且 2.5 秒轮询无并发锁
3. 平台刷新、登录恢复和 SSE/轮询链路审计 completed 已确认认证恢复无超时;初始化串行等待任务同步;SSE、定时同步和插件轮询会共同触发请求与重绘
4. 汇总根因、影响和无需改代码的验证建议 completed 已区分真实 ERP 执行、平台结果回传延迟、状态视觉抖动和登录恢复卡顿;无法由现有日志确定的客户端等待点已标注

错误记录

错误 处理
统计脚本第二条语句复用上一条 CTE,导致 relation "latest" does not exist CTE 改为每条 SQL 独立定义;数据库未写入,第一条统计已成功
前端首个大补丁上下文不匹配,apply_patch 整体拒绝 未产生部分修改;改为按功能拆分小补丁后继续
第二个前端补丁使用了错误路径并且 hunk 为空 未产生修改;改用已核对的 /Users/inmanx/Documents/lwltAPI/LianSyn-platform/app.js
清理前端缓存元数据时再次使用错误路径/空 hunk 未产生修改;后续补丁先单独核对目标路径
shell 未提供 node 命令,两个 node --check 返回 command not found 改用 Codex 工作区依赖返回的 Node 绝对路径,不修改系统 PATH
bundled pnpm shebang 仍寻找系统 node,TypeScript 检查未执行 直接用 bundled Node 调用项目 typescript/bin/tsc
控制平面测试的页面版本断言仍期待 20260813-history-1,当前 HTML 使用 20260813-copy-1 同步测试断言到当前页面版本,并更新列表 SQL 断言
同一测试仍要求登录使用裸 fetch,而本次已改为 fetchWithTimeout 更新静态断言以覆盖带超时的登录请求

追加阶段:数据库查询与全量加载核对

status: completed

阶段 状态 结果
5. 任务列表 SQL、事件加载和活动任务范围审计 completed 主列表有分页但附带完整结果/全部事件;活动和确认查询上限为 200
6. 数据库实际行数、事件分布和索引核对 completed 当前 311 个任务、2285 个事件、12 个活动任务;执行计划确认分页统计/事件查询存在全量扫描
7. 汇总数据库是否存在全量加载及影响范围 completed 未发现当前把全部任务行返回前端,但存在全表扫描、分页后完整内容加载和搜索字段无索引风险

追加阶段:整体修复实施边界(已确认,已完成)

status: completed

  • 建议范围:修改前端状态同步/轮询/登录超时、控制平面列表摘要与懒加载、数据库查询与索引,并补充回归测试和本地验证。
  • 默认排除:不自动重启正在运行的服务,不发布或替换 Chrome 插件,不修改/清理业务数据。
  • 用户已确认按上述“源码 + 测试 + 本地验证、不部署不发布”的范围执行。
阶段 状态 目标
8. 前端状态、轮询和认证超时修复 completed 以服务端版本单调合并任务状态;轮询单飞;认证、状态探测和结果请求有超时;页面切后台暂停轮询
9. 控制平面摘要/详情加载与 SQL 优化 completed 列表只传摘要,详情按需加载;总数查询与列表查询拆开;事件按任务 UUID 获取;新增组织/生命周期索引
10. 测试、构建与本地验证 completed 控制面 35/35、平台契约 144/144、TypeScript 构建、JS 语法、数据库/API 烟测均通过

2026-08-13 — 历史任务目录与操作台最近任务视图

status: complete

目标

在现有平台中增加独立的历史任务根目录:AI 操作台的任务卡片默认只展示最近 10 条;点击“查看更多”进入历史目录。历史目录展示全部未删除任务,并保留查看详情、补充输入、确认提交、回查和删除等完整任务管理能力。

已确认决策

  • 历史目录使用独立页面路由 /history,支持刷新、返回和直达。
  • 任务不新增“归档”状态;历史目录是现有持久化任务的完整管理视图。
  • 操作台最近任务视图固定展示最近 10 条。
  • 历史目录展示全部未删除任务,并与操作台复用同一任务详情和管理动作。
  • 取消任务继续按现有规则从任务列表隐藏;彻底删除继续沿用现有不可恢复确认。

阶段

阶段 状态 结果
1. 现状核对与方案确认 Completed 已确认当前任务 API、卡片渲染、完整操作入口及 /history 路由方案
2. 服务端历史任务查询 Completed /api/tasks 支持 search/status/limit/offset,返回分页元数据;保留组织隔离和既有权限
3. 操作台最近 10 条视图 Completed 首页固定请求/渲染最近 10 条,任务超过 10 条时显示“查看更多”
4. 历史任务目录页面 Completed /history 复用操作台壳层、详情和管理动作,增加搜索、状态筛选与分页
5. 测试、静态检查与交接 Completed TypeScript、控制面 34/34、核心回归 144/144、构建和路由烟测通过

约束

  • 保留工作树已有有效改动,不使用 reset/clean 覆盖无关文件。
  • 任务服务端是权威数据源,浏览器缓存只用于当前界面状态。
  • 历史目录不能绕过现有登录、CSRF、组织隔离、确认、执行领取和删除门禁。
  • 不修改 Agent operation、ERP 插件执行契约或业务能力白名单。

错误记录

错误 处理
默认 shell 无 node 命令 使用工作区绑定的 Node 绝对路径完成检查和测试
旧控制面静态断言期待 taskStore.filter(isTaskPollable) 更新断言以覆盖新的 runtimeTasks() 活动任务缓存链路
直接注入 /history 使用 localhost:80 主机触发既有规范主机 308 跳转 使用正式 APP_ORIGIN 主机复验,确认 /history 返回 200 和操作台页面

last_updated: 2026-08-13 status: passenger_ownership_search_candidate_complete

当前目标

保持 Agent 解析态与 ERP 执行态分层,已完成缺日期编号检索、散拼子单客户语义唯一解析、名单按序号安全补录及二次归属日期窗;Chrome 已重载 0.5.90,下一步复跑原 2 行名单任务。

状态

工作项 状态 结果
当前事实核对 Complete 插件 0.5.90、v2.7 契约、主提示词边界、Skill、风险和发布门槛已核实
历史日志归档 Complete 三份完整日志保存于 archive/project-history/2026-08-12/
里程碑与报告归档 Complete 0.5.84 包和三份 2026-08-10 报告已日期化归档
根目录交接精简 Complete 建立 HANDOFF.md,重建精简版计划、发现与进度文件
重复产物清理 Complete 删除 0.5.1—0.5.83 重复 ZIP,将 0.5.84 移入归档,并清除 4 个 .DS_Store 和已归档临时报告
最终工程校验 Complete 版本、哈希、链接、目录清洁度及现行测试门槛已复核

当前产品状态

  • 核心生命周期窄契约:候选可提交业务审批。
  • 统一正式发布:等待业务负责人确认,当前不视为已放行。
  • 运营宽字段、安排宽修改和文件交付:继续阻断。
  • 测试订单:旧批次已手工删除;2026-08-13 新建的三条独立团和三条散拼母团清理状态尚未确认,失败子单没有写入。

下一阶段候选

  • 业务负责人确认按窄能力分批放行。
  • 复跑原 2 行名单任务;如制度要求,再使用同一不可变包完成一次创建到删除的最终验收。
  • 逐字段研究并验证尚未开放的订单宽修改。
  • 独立设计团队文件下载、格式处理和传输模块。

以上四项互不默认启动。收到新指令后,应先读 HANDOFF.md 和对应发布证据,再建立新的任务计划。

执行边界

  • 不维护客户、导游、酒店、供应商等主数据。
  • 不进行真实收款、采购、付款、结算、通知或外部发送。
  • 不复用历史测试对象和内部行号。
  • 写入必须满足唯一解析、授权、服务端明确响应和 fresh requery。
  • 工作树包含现有有效改动,不得用 reset/clean 清空。

历史

2026-08-12 之前的完整任务时间线已冻结于 task_plan.full.md。

2026-08-12 — Agent 解析层提示词与 Skill 瘦身

目标:严格限定服务端 Agent 只解析用户输入并返回标准解析结果;从 Agent Prompt 和五个 Agent Skill 中移除插件、页面、原生请求、写后回查、执行门禁、测试清理与历史实证等下游职责描述,同时保持 18 类路由、最小输入和 operation 契约准确。

阶段 状态 结果
1. 解析链职责审计 Completed 已划分 Agent 解析态与下游执行态职责,并定位运行时重复提示问题
2. 主提示词与运行时同步 Completed 主提示词现为 ltjt-agent-prompt-v1.2-lean-router,运行时版本同步,业务细节由 Skill 承担
3. 五个 Skill 与 references 瘦身 Completed 只保留触发、字段、归一化和输出契约,删除纯执行器 references
4. 契约测试和打包 Completed 反回归断言、五 Skill 校验和 .skill 重建均完成
5. 全量回归与交接更新 Completed TypeScript、33+137 测试和构建通过,交接与制品哈希已更新

本轮不改变

  • Chrome 插件、控制平面和 ERP adapter 的执行门禁与安全逻辑。
  • 已验证业务 action 名称、最小输入和窄字段白名单。
  • 生产发布状态与 ERP 测试数据状态。

2026-08-12 — 插件分段门禁与 ERP 解析接驳

目标:落实“Agent 只返回解析态业务事实;插件先做轻量前门禁,再进入 ERP 只读解析候选,补齐执行态引用后才做严格写入门禁”的链路,同时保持平台会话、任务、确认、重要摘要和用户通讯元数据独立。

阶段 状态 结果
1. 当前门禁与分层审计 Completed 已确认控制平面、插件入口和页面路由三处提前要求 ERP/测试事实,并核实平台信封独立持久化
2. 解析态下发与前门禁 Completed validateDispatchOperation() 只校验可在 ERP 外确定的协议、最小字段、格式、自洽性和窄能力
3. ERP 只读解析与执行态构建 Completed 生命周期和导出已按可见编号/关键词唯一解析对象、资源、当前值与内部引用
4. 写入前门禁与执行接驳 Completed 严格 validator 只接收 ERP 补全的 execution operation,原生响应和 fresh requery 保持完成门槛
5. 平台元数据隔离 Completed 任务/会话/确认/摘要/通讯/解析版本留在平台信封,未写入 Agent operation 或 ERP 字段
6. 回归、制品与交接 Completed 控制面 34/34、核心 144/144;0.5.86 的 18 文件包与源码一致,文档已同步

已确认原则

  • 前门禁只检查无需查询 ERP 即可确定的协议、最小必填、格式、自洽性、能力范围和任务领取事实。
  • 客户、产品、订单、母团/子单、酒店、导游、供应商的候选命中与内部 ID 均在 ERP 只读解析阶段完成。
  • resolved=true、内部 ID、当前状态、当前值、测试上下文和页面证据不得要求 Agent 或用户提供。
  • 写入前门禁继续失败关闭;零候选或多候选不自动选择、不写入,并返回可用于用户补充的业务结果。
  • 平台元数据留在任务/会话/事件/结果信封中,不混入 operation.data。

完成结果

  • 该轮候选:插件 0.5.86,生命周期契约 ltjt-lifecycle-v2.6-staged-resolution-2026-08。
  • 版本包与通用别名 SHA-256:54c7855ce1b531e7e6d1a6b2623648cbb7939fee2f0e7b635f84960dbcfd306d。
  • 本轮未进入 ERP。下一项可选工作仍需业务负责人决定,不因工程完成自动发布或创建测试数据。