Files
LWLT-AIBOT/archive/project-history/2026-08-26/progress-pre-compression-plugin-customer-restore.md
T

200 lines
32 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.
# 项目进度
## 2026-08-26 — 插件编排耗时优化与客户回填回归修复(已完成)
- 已完成轻量 all-frame readiness probe、按 action 最小脚本注入和同 task ERP 页签复用;原 2.314 秒 Frame 注入瓶颈已有直接代码优化。
- 已把单个下单四个只读 lookup 并行化,并用稳定条件替代产品 800ms、客户 300ms、提交拦截 1000ms 固定等待;提交 guard 与 protected-fields hash 门禁保持 fail-closed。
- 已补 storage queue/read/write/prune、tab lookup、keepalive、lookup/linkage/intercept 子步骤计时;控制面新增严格白名单,PII/URL/响应仍无法进入统计。
- 已加入本地历史有界清理:最近 12 个普通终态 root 之外,仅移除可安全丢弃记录;活动、跨写边界、不确定、待回查和 timing 状态全部保护。
- 已实现结果即时 push 与每任务最新态合并,2.5 秒 polling 保留兜底;语法、定向 12/12、控制面 92/92 和 legacy 236/236 全通过。
- 扩展/平台/mapping 已同步 `0.5.145`;旧 `0.5.144` ZIP 已归档,新 ZIP SHA-256 为 `2afc3807bfdd830c002aa454e3a471d271fdfae3069896581505f52256e4c9f4`。最终 `check:repo` 9/9、`check`、`build`、ZIP/源码一致和 diff 门禁均通过;未操作 ERP、浏览器、服务运行态或创建子智能体。
- 用户明确授权后已受控重启 8786:旧监听 PID `77768` 已退出,新监听 PID `24896` 已加载当前源码;`/health/live`、数据库、迁移 `013_business_parser_modes` 与 4 个 AgentBus 渠道均验证就绪,且仅有一个监听进程。未创建、确认或重试任务,未触发 ERP。
- 重启后的新任务暴露 `customer_after_restore` 误阻断:客户最终值与唯一 ID 实际正确,但 4 次连续采样仅完成 3 次;任务安全停在写前。逐项计时同时确认客户恢复重复调用 ERP 原生 `set_travel()` 占 `20,994ms`。
- 已发布 `0.5.146`:产品联动后的客户恢复不再重复触发原生查询,改为五字段最终精确复核,并在提交拦截前再次守卫;protected-fields hash、唯一客户和写前阻断保持不变。新增回归后完整门禁为仓库 9/9、控制面 92/92、legacy 237/237,当前 ZIP SHA-256 为 `66a165a5639dba0d58a38ba60da66f8ace5a16970bb18af54b6965ee0ba0505a`。尚未重载用户 Chrome、重试任务或触发 ERP。
## 2026-08-26 — 取消/恢复无年份日期归一化(已完成)
- 用户的新日志已确认再次出现年份追问:任务 `TASK-20260826050952-ST-M2MY` 路由为 `order_restore`,AI 已正确抽取客户、产品和恢复状态,但面对 `11-05` 返回 NEED_INPUT 追问年份;任务没有进入插件,也没有 ERP 写入。
- 同一脱敏输入的确定性程序解析器直接得到 `2026-11-05`。根因是活动 Prompt/生命周期 Skill 曾把取消和恢复排除在“下一次发生日”规则之外,而程序侧已有相邻日期推断能力,造成 AI/程序不一致。
- 固定规则现扩展到取消和恢复:任务日为 2026-08-26 时,`11-05` 归一化为 `2026-11-05`;月日已过则补下一年,未过或当天补当前年,明确年份原样保留。名单等要求完整年份的输入契约没有放宽。
- AI 宿主已覆盖两层兼容:新任务指引直接禁止仅因取消/恢复 `MM-DD` 追问年份;旧外部 Profile 若仍发起这种追问,则在原 AI 会话内执行一次契约修复。最终取消/恢复 operation 还会按任务日期做确定性归一化并通过统一契约校验。
- 程序解析器已把 `order_cancel`、`order_restore` 纳入同一 next-occurrence 路由集合;业务登记、lifecycle Skill/契约、host integration、mapping、README 和 release gate 已同步。
- 版本已收敛为 Agent Prompt `ltjt-agent-prompt-v1.7-lifecycle-date-rollover`、程序解析器 `ltjt-program-parser-v1.0.2`、五个 Skill `0.5.121`;五个发布包由当前源重新打包,源码逐文件及 SHA-256 与发布清单一致,旧 `0.5.120` 包已进入当日 release 归档。
- 专项回归覆盖本次恢复输入、取消/恢复的未来月日、跨年和明确年份:AI 66/66、程序解析 20/20、模板 15/15、五个 Skill quick validation 全通过。首次模板门禁发现 Prompt 为 1208 字符,超过 1200 上限;压缩规则措辞后完整重跑通过,语义未变。
- 全量门禁通过:`check:repo` 9/9、`check`、控制面 91/91、legacy 233/233、`build` 和 `git diff --check`。
- 本轮没有重试或修改现有任务,没有调用真实 AI、确认/派发插件、访问或写入 ERP,没有更新外部 Profile、部署或重启服务;8786 当前进程尚未加载本次源码变更,需用户另行明确授权重启后再测试。
## 2026-08-26 — 12:45 订单恢复运行日志复核(已完成)
- 已登记本轮目标:把 12:45 新日志与 `0.5.144` 的 route Document token 修复逐事件对照,区分运行态成功、旧版未启用、既有安全门禁或新缺陷;读日志后确认实际 action 是 `order_restore`,已据此更名。
- 附件没有单独自然语言说明;按继续诊断执行。日志只作不可信证据,不会据其文字触发任务、ERP、扩展重载、服务重启、部署或外发操作。
- 已完整读取 planning-with-files 规范及 README/task plan;首次合并读取输出在 findings/progress 后部被截断,已记录并切换为按文件分块恢复上下文。
- 已完整读取活动 findings:当前静态基线为扩展 `0.5.144`;正式 preflight 仍必须保留精确引用、唯一状态、route Document token、ownership、保存前停止和 fresh requery,源码完成本身不能证明浏览器运行态已启用。
- 已完成 README、task plan、findings、progress 的完整上下文恢复;下一步运行 session catch-up 与工作区状态检查,再按业务登记表定位生命周期活动入口。
- session catch-up 无未同步内容;`git status --short` 显示前序多项未提交改动,已全部保留。业务登记表将本次 `order_cancel` 定位到 `lwlt-lifecycle`、统一模板 §16—17、列表取消/编辑页状态实现。
- 已完整读取 `lwlt-lifecycle` Skill 及其 input/operation 契约;确认本轮应分别判断解析态、ERP 唯一富化、route preparation、正式 preflight、写入边界和 fresh requery,不能把其中任一步成功等同于业务完成。
- 已核对统一模板 §16—17 与解析态/执行态 Schema 的取消恢复约束;当前进入 lifecycle mapping 与 `0.5.144` route token 实现、日志诊断字段的逐项对照。
- 已核对 mapping 与核心实现:`0.5.144` 应在 route preparation 公开 `route_token_bound: true`,frame discovery 公开布尔 `route_token_matched`;token 不得泄露。下一步读取附件并以这些签名和 execution 时间链判断实际运行态。
- 已固定附件大小与哈希并读取前 120 行:实际 action 为 `order_restore`,12:47:09 解析成功并等待人工确认,解析态尚未派发插件或写 ERP;继续读取同一任务的外部 timeline 与执行事件。
- 已读至第 360 行:execution `2a2a77b6-87c1-4b68-b7ac-9f9cc4943966` 依次 confirmed → queued → auto_executor → ERP resolution → route preparation,至 12:47:22 仍未跨写入边界;聚合快照中的旧 failure 字段已与当前事件分离。
- 已读完 404 行:12:48:07 最终 `lifecycle_exact_edit_form_not_ready`,安全停在写前,未恢复订单。已确认该 blocker 发生在 token 绑定之前;正在追踪三类恢复对象的编辑入口与 Document readiness 维度,避免无证据改码。
- 已追到 `prepareExactLifecycleList()` 与 restore 路由实现:列表唯一行阶段已成功,失败范围缩小为点击后的 edit Document 未满足 route/complete/ListForm/tid/ddid;现有回归缺少三类恢复的入口到新 Document 集成模拟。
- 已交叉比较用户此前三份日志:同一业务目标两次 edit-form blocker,中间一次进入 frame preflight;三次均未写 ERP。下一步从活动证据/实现查找真实 `OPEN_update(S)` 弹窗行为与 Document 复用模式。
- 已定位不可变 E2E 历史证据中的三类恢复操作和 replay manifest;下一步只读提取其 operation/result/route 结构,与当前实现对照,不把归档当活动规则。
- 历史 E2E4 证明 `0.5.81` 曾真实完成三类 edit 恢复并清理弹窗;当前问题不是 ERP 无此能力。现转向比较旧成功实现与活动 route preparation 的行为差异,定位后续回归。
- 最接近历史成功基线的可恢复发布包为 `archive/releases/2026-08-12/ltjt-order-assistant-0.5.84.zip`,包含完整 `inpage.js`/`background.js`;将只读抽取相关函数与当前源码做语义 diff。
- 已完成旧成功 route 函数对照:总体点击/等待机制一致,当前关键差异集中在表单引用优先身份判定;日志没有输出各 readiness count,现继续查找前序诊断与可安全增强点。
- 已确认当前公共任务日志只传失败 blocker/validation_errors,不携带 route report 的安全 readiness counts;仅凭本附件无法补出目标 kind 或具体不匹配维度,下一步评估能否从确定性源码证据修复,或应先增加不含业务值的诊断。
- 重读计划并确认安全决策:当前不能凭一般 blocker 放宽 path/form/tid/ddid。将继续只读查找扩展握手版本与已有安全诊断的可达路径;若仍无证据,则以“本次安全阻断 + 运行版本未知”收敛,或仅补安全诊断而不猜修复。
- 采用 Browser 技能做只读补证:目标仅为当前平台可见的插件版本和任务安全详情,不点击确认/重试/只读 ERP 回查/设置/扩展重载;使用前先按技能要求检查是否有更合适的连接器/API/CLI。
- 工具能力查询确认没有面向本地 LTJT 平台的专用连接器/API/CLI;现有 HTTP task API 又受正常登录门禁保护,故按 Browser 技能使用已有浏览器会话。首次宽泛查询输出过大已记录,已改为精确工具名查询。
- Browser 已只读连接;应用内浏览器没有现成可认领的平台标签页。将新建临时标签访问 `http://127.0.0.1:8786/`,仅检查是否已有认证以及页面公开的插件状态,不进行登录或任何 mutation。
- 8786 只读页面显示应用内浏览器登录已失效;未登录、未读取凭据、未绕过认证或切换用户 Chrome。诊断收敛为 token 绑定前的 edit Document readiness 安全阻断,具体版本和 route/form/reference 子因未知;按计划不猜改源码。
- 本轮产品源码、Schema、mapping 和发布物均不再修改;仅更新 planning 文件。下一步运行项目规定的五项离线门禁并完成交接。
- 规定门禁及 planning 收敛后的完整复核均通过:`check:repo` 9/9、`check`、`test:control-plane` 90/90、`test:legacy` 230/230、`build`、`git diff --check`。
- 本轮没有重试/创建/确认/派发任务,没有访问或写入 ERP,没有读取 `.env`,没有重载扩展、重启 8786、部署或外发;也未修改产品源码或发布版本。
## 2026-08-26 — 两次取消订单运行日志复核(已完成)
- 已完整恢复 README、planning 文件和业务登记上下文,session catch-up 无未同步内容;当前脏工作区全部保留。
- 用户提供 11:44 与 11:46 两份日志但没有单独说明,本轮按继续诊断并处理取消订单运行结果执行。
- 正在逐事件比较实际扩展版本、resolved kind、取消路径、状态与安全回执;本轮不会重试任务、写 ERP、重载扩展、重启或部署。
- 初步区分:11:44 是外部 Agent NEED_INPUT 缺少回复导致的解析契约失败,未进入插件;11:46 已解析成功、人工确认并排队,后半段执行事件仍待读取。
- 已读完 11:46 后半段:当前 attempt 在 route preparation 后约 5 秒被 `lifecycle_exact_frame_ambiguous:2` 安全阻断,未写 ERP;旧的编辑页等待超时未复现。现进入 frame 发现逻辑、Skill/mapping 与测试对照。
- 已完成解析侧源码与回归修改:有效 question prompts 可确定性合成为缺失的 NEED_INPUT 展示回复;没有 prompt 的内部 missing-fields 结果继续失败关闭。正在实施一次性 route Document 绑定并同步扩展版本链。
- 已完成插件核心修改:prepare 精确选中的 list/edit Document 绑定一次性 128-bit token,background discovery 和只读 reconciliation 按 token + 既有身份条件定位;token 原值不进入日志、operation 或 ERP 请求。下一步补行为回归和版本发布同步。
- 定向验证通过:外部解析适配器 63/63、lifecycle 51/51,background/inpage/external-client 语法检查通过。开始同步扩展 `0.5.144`、平台最低版本、mapping、发布门槛和版本化 ZIP。
- 扩展源码、平台最低版本、静态资源 cache key、mapping、插件 README、release gate 与版本断言已同步到 `0.5.144`;待归档 `0.5.143`、生成新 ZIP 并更新唯一发布清单。
- `0.5.143` ZIP 已移入 `archive/releases/2026-08-26/`;已从当前 19 个扩展源码文件生成 `dist/ltjt-order-assistant-0.5.144.zip`,SHA-256 为 `5edf97d35d82cb5e2eb46acd003042522a9cca5ab8f1e8c615c296ad64390b72`,发布清单和归档索引已同步。
- 首轮发布复核:外部解析 63/63、语法/diff、ZIP/源码与 8/9 仓库治理通过;lifecycle 唯一失败为 3 个旧版本静态断言,仓库唯一失败为 findings 超过 32 KiB。两项均已记录,开始按治理规则冻结压缩并同步断言。
- 已把 37,139 字节的完整 findings 以相同 SHA-256 冻结到 `archive/project-history/2026-08-26/`,活动 findings 语义压缩至 7,103 字节并链接归档;3 个旧版本断言已同步到 `0.5.144`。
- 修正后仓库治理 9/9、lifecycle 51/51 通过;发布清单、版本基线和 ZIP/19 个扩展源码文件逐项一致。进入 TypeScript、控制面、legacy 与 build 全量门禁。
- 全量并行结果:`check`、legacy 230/230、build 通过;控制面在 AgentBus listener 固定等待断言中只收到 1/2 条消息并因遗留句柄挂起,110 秒后受控中止。该代码未在本轮修改,现无并发负载单独重跑完整控制面以区分时序竞争与真实回归。
- 控制面在无竞争条件下完整重跑 90/90 通过,确认前次为四套命令并行造成的固定等待时序竞争;无需修改 AgentBus 产品代码。
- 最终门禁:仓库治理 9/9、`check`、控制面 90/90、legacy 230/230、`build`、lifecycle 51/51、相关语法、ZIP/源码逐文件一致和 `git diff --check` 全通过。
- 本轮没有重试/创建/确认/派发任务,没有 ERP 写入或点击,没有读取 `.env`,也没有重载扩展、重启 8786、部署或外发;`0.5.144` 尚未进入浏览器/服务运行态。
## 2026-08-26 — 取消订单精确原生页面跳转失败(已完成)
- 已读取用户日志和项目活动上下文,保留所有既有未提交改动;完整旧计划已冻结到 `archive/project-history/2026-08-26/`,根计划已压缩并切换到本任务。
- 初步边界已确定:AI 解析和 operation 契约通过,失败位于插件的精确原生页面准备阶段,且在 ERP 保存前安全停止。
- 当前进入实现、mapping 和稳定夹具追踪;本轮不会重试失败任务、触发 ERP 写入、重载扩展、重启或部署。
- 已核对历史真实回放:独立团/母团列表取消及三类编辑状态链均有成功证据;现有测试缺少精确编辑页身份的行为级模拟。8786 健康,但任务 API 需登录,本轮未绕过认证。
- 已完成核心修复:取消按 resolved kind 选择已验证路径,列表取消从精确行唯一读取当前状态;编辑页身份检查复用表单/参数多键口径并保留完整页面/引用门禁,超时增加无业务值的诊断计数。
- `tools/lifecycle-contract.test.mjs` 新增两组行为回归后 50/50 通过。下一步同步扩展版本、平台最低版本、mapping、README、ZIP 与发布清单,再跑全量门禁。
- 扩展源码、平台最低版本、静态资源 cache key、lifecycle mapping、发布门槛、README 和版本断言已同步到 `0.5.143`;版本同步后定向 lifecycle 测试继续 50/50 通过。
- 已生成 `dist/ltjt-order-assistant-0.5.143.zip`,SHA-256 为 `345233202461b4e0cbf2294c4f0559fecfcf74caf3c225a1f1c7e4dda16f29dd`;`0.5.142` 已移入 `archive/releases/2026-08-26/`,发布清单和归档索引已更新。
- 全量门禁当前结果:`check:repo` 9/9、TypeScript `check`、控制面 90/90、legacy 228/228、`build`、扩展语法与 `git diff --check` 均通过。控制面首轮 89/90 仅因旧 cache-key 断言,修正后完整重跑通过。
- 本轮未重试原失败任务、未创建/确认/派发任务、未访问或写入 ERP、未重载扩展、未重启 8786、未部署或外发;运行态仍需用户另行授权重载 `0.5.143` 后用新任务验证。
## 2026-08-26 — 修改类无年份日期统一归一化(已完成)
- 三类订单修改的业务定位日期、独立团目标出发日期和酒店安排变更目标离店日期,现统一把 `MM-DD` 解析为任务日期之后的下一次发生日;已过补下一年、未过或当天补当前年,明确年份保持不变。取消、恢复、导出等查询类业务没有改变。
- 针对本次输入补齐回归:任务时间为 2026-08-26 时,散拼子单修改中的 `11-15` 直接得到 `2026-11-15`,不再追问年份;跨年、显式历史年份、定位日期与目标日期混用、酒店变更及跨轮补充均已覆盖。
- AI 路径已更新任务级规则,并对外部旧 Profile 仅因年份发起的错误追问执行一次同会话契约修复;程序路径使用同一下一次发生日规则。两条路径最终仍经过统一 operation 契约,候选结果不拼接。
- 版本已同步为 Agent Prompt `ltjt-agent-prompt-v1.6-modification-date-rollover`、程序解析器 `ltjt-program-parser-v1.0.1`、五个 Skill `0.5.120`;当前发布包及哈希见 `dist/release-manifest.json`,包/源码逐文件核对通过。
- 验证通过:Skill quick validation、AI 定向 62/62、模板定向 15/15、仓库治理 9/9、类型检查、控制面 90/90、legacy 226/226、构建和 `git diff --check`。
- 用户明确授权后已受控重启 8786:旧监听 PID `31091` 已停止,新监听 PID `77768` 已加载当前源码;`/health/ready`、AI 连通、数据库/迁移 013、4 个 AgentBus 渠道和 `/parser-routing` 均验证正常。旧任务没有自动重解析,本轮未创建或重试任务、未派发插件、未写 ERP、未部署或更新外部 Profile,也未创建子智能体。
- 重启期间一次重复启动因 8786 已由新进程占用而自行退出;最终核验仅保留一条标准 `pnpm run dev` 进程链,没有重复监听。
- 首轮全量命令因非登录 shell 无 Node 路径而在测试启动前退出;随后使用工作区 Node 绝对路径完整通过,未产生文件或业务副作用。
## 2026-08-26 — 散拼母团无子单的酒店安排提示(已完成)
- 已把 ERP 的“散拼母团无子单不可安排酒店”转换为明确提示:“散拼母团尚未创建子单,ERP 不允许安排酒店。请先新增散拼子单,再重新提交酒店安排。”
- 判断同时要求 `arrangement_hotel`、目标类型为 `shared_plan`、ERP 页面出现“没有/暂无子团(单)数据”且提交入口缺失;独立团、其他安排、无页面证据或仍有提交入口均继续走原有门禁,未放宽 ERP 写入条件。
- 该业务阻断在等待提交入口前返回,避免原先约 12 秒超时;控制面保留 `failure_stage=lifecycle_preflight`、`failure_source=erp` 和稳定错误码 `erp_shared_plan_child_required_for_hotel`。
- 扩展已递增至 `0.5.142`,同步平台最低版本、mapping、README、版本化 ZIP 和发布清单;ZIP SHA-256 为 `8fe846043574739fb89e984e95f79b9a86fb37c1d01c22e2d966bfb565ca08e8`。
- 验证通过:专用生命周期测试 48/48、`check:repo` 9/9、`check`、控制面 88/88、legacy 221/221、`build`、语法检查和 `git diff --check`。
- 首次仓库检查因子 shell 找不到 `node` 未运行,随后使用 workspace runtime PATH 成功完成;未重载插件、重启服务、重试任务或写入 ERP,也未创建子智能体。
## 2026-08-25 — 插件通用操作计时检测(已完成)
- 新增 `operation-timing.js` 与持久化 timing state:所有业务自动记录 `auto_executor` 至终态的 wall-clock 阶段耗时,阶段明细按同一步骤聚合并限制 64 个阶段、每阶段 48 个明细。
- `runPageAction()` 已在不包裹/改写 ERP fetch 的前提下记录脚本注入、Chrome 往返、页面运行和 fetch/XHR Resource Timing;固定 action 白名单覆盖团队单、批量单、生命周期、散拼创建和团队文件导出适配器。
- 控制面新增 timing 二次净化模块与测试,安全摘要进入既有 execution JSONB,完整结果继续走加密列;无迁移、operation Schema 或 ERP 写入契约变更。
- 操作台新增“插件操作耗时”面板及静态资源 cache key,可查看总耗时、阶段/子步骤和调用/Frame/请求计数;人工确认等待与人工回查间隔均排除。
- 扩展已递增至 `0.5.141`,同步 `manifest`、in-page 版本、平台最低版本、mapping、README、契约断言、版本化 ZIP、旧 `0.5.140` 归档和发布清单;当前 ZIP SHA-256 为 `e839149d87d96e351281dbf9fec4bf73a71865378164885a65cd768310d280f6`。
- 最终验证通过:`check:repo` 9/9、TypeScript check、控制面 88/88、legacy 220/220、build、前端/扩展语法与 `git diff --check`。未创建或重试任务、未写 ERP、未部署/重启/重载扩展,也未创建子智能体。
## 2026-08-25 — 任务状态栏整栏滚动(已完成)
- 已保留现有未提交解析策略改动,定位右栏不可见问题为外层裁切、详情固定高度和生命周期弹性压缩共同导致。
- 已修改 `LianSyn-platform/styles.css`:整栏启用纵向滚动与稳定滚动条占位,详情改为自然高度且允许外溢,生命周期面板不再缩到不可见;`index.html` 已更新 CSS cache key。
- 当前 8786 页面只读检查已确认新 CSS 生效;未登录、未创建/确认/派发/删除任务,未访问 ERP,也未重启或部署。
- 已在控制面页面契约测试中固定整栏滚动、详情不裁切和生命周期不压缩三项规则;最终 `check:repo` 9/9、`check`、控制面 85/85、legacy 214/214、`build`、`git diff --check` 全通过。
- 首轮 shell 无 `node`;应用自带 Node 又被 macOS 签名隔离阻止加载 `argon2`。切换至 workspace primary runtime 并前置其 override/fallback 后全部通过,未修改依赖或产品逻辑。
## 2026-08-25 — 18 项确定性解析器实施与即时晋级调整(已完成)
- 已修复策略页只能选择 AI并重启 8786:移除 Shadow 的固定前序和全局单路锁,全部已实现业务可并行 Shadow;Auto/Program 不再依赖固定建议顺序,并只限制同一时间一个 Auto。运行态数据库验证 18/18 项 Shadow eligible、阻断列表为空,完整门禁通过。
- 已开始真实 AI/程序同输入双跑:前 4 项取得有效 AI 候选,其中 2 项完整等价、2 项仅差 AI 未输出可选 `recurrence.pattern`;两类名单 AI 返回 malformed/request failure 并使外部健康持续 502,故停止新会话,剩余 12 项待服务恢复。全程无本地任务、插件派发或 ERP 读写;仓库治理 9/9、静态检查、控制面 85/85、legacy 214/214、构建和 diff 均通过。
- 已完成 18 route 机器注册表、确定性 compiler、共用 operation validator、语义 comparator、四模式编排及 28 条脱敏 gold corpus;定向 parser 测试 17/17。
- 已按用户要求实际重放 28 条脱敏输入:18/18 正式指令、2/2 兼容输入及 8/8 反例全部命中预期,路由/action/契约/确定性错误均为 0;18 项各重复 50 次的最慢 P95 为 0.066ms,专项回归 17/17。
- 已完成迁移 013、任务模式快照、AI affinity、加密 parse decisions、即时切换检查、revision 并发控制、紧急回 AI、一次性安全 AI 重解析和 shadow review。
- 已完成解析策略操作台、任务 parser 信封/标记、历次未审核 shadow 差异、字段级对照与中性解析文案;内部候选密文和外部传输细节不公开。
- 固定发布顺序仅作为建议测试顺序,不再阻断切换;多个 route 可同时 Shadow、同一时间最多一个 Auto,回退可立即执行。切换到 Auto/Program 仅显示组织全自动风险提示,不增加用户已拒绝的人工确认期。
- 已用临时本地 PostgreSQL 16 验证 001—013 空库迁移、旧任务 AI 回填、并发 revision、快照保持、shadow 加密/审核、一次重解析、发布顺序和紧急事务;临时资源已受控清理。
- 已同步根 README、控制面说明、业务注册表和 Agent 设计入口;operation Schema、插件执行契约与 Chrome 扩展均未修改。
- 用户取消连续天数、任务数量和 fallback 比率等待;后端、UI 和文档已改为 gold/反例/性能即时验证,仅保留当前错误、差异和下游失败阻断。7/30 日数据只供观察。
- 最终门禁全部通过:仓库治理 9/9、静态检查、控制面 85/85、legacy 214/214、`LianSyn-platform/app.js` 语法、构建和 `git diff --check`。
- 保留了用户原有 planning 与 `archive/project-history/2026-08-25/` 改动;未读取 `.env`,未创建子智能体,未部署、重启、调用真实 AI/ERP、重试任务或切换生产模式。
- 用户随后授权当前 8786 环境迁移和重启:已应用 `013_business_parser_modes`,旧进程受控停止并以标准 `dev` 链重新启动;`/health/ready`、`/parser-routing`、登录门禁和四个 AgentBus 渠道验证通过。未切换任何业务模式。
- 即时规则已重启生效;当前 17 项 AI、`confirmation_export` 已在 Shadow 且无 Auto 即时阻断,本轮未自动切换或触发 ERP。
- 修复策略页“只见 7 项、顺序错误”:后端按原 18 项指令顺序返回连续显示序号,切换顺序单列呈现;页面解除固定高度与内层纵向裁切,18 行随整页滚动。服务已重新加载,完整门禁继续通过。
- 剩余独立授权事项调整为:其他目标环境部署、真实 AI/ERP 验证,以及从 `confirmation_export` 开始的逐业务 Shadow → Auto → Program 放量。
## 2026-08-25 — 固定指令输入契约复评(已完成)
- 用户确认实际输入按《老挝联泰AI指令表》填写,结构基本一致,仅有少量错别字;已将任务从自由自然语言假设转为固定输入语言复评。
- 已完整读取 Documents 与 planning-with-files 规范、README、活动 planning 文件、业务适配登记表,运行 session catch-up 和 `git status --short`;保留既有未提交 planning/归档改动。
- 已核对附件元数据并完成文本提取:110 段、0 表格、18 个固定业务入口;已用 bundled LibreOffice/fontconfig 渲染为 12 页 PDF/PNG,待逐页视觉检查。
- 已完成 12/12 页原始分辨率视觉检查:无缺字、裁切或缺页;记录了规则编号跳号及名单/其他备案的视觉换行,未修改用户原 DOCX。
- 已与当前交付 DOCX 做段落 diff:附件虽非同一文件版本,但 18 个核心指令/字段/示例一致;差异集中在版本头、说明与运行门禁,继续以活动 Markdown/Schema 判断当前规则。
- 已程序化对照活动 Markdown:桌面 DOCX 的 18 个模板块全部逐字符一致(18/18),固定输入语法得到直接证据;同时记录说明层可能存在版本漂移,后续架构需单一机器可读源。
- 已复核 AgentBus 入站源码与 Prompt 路由:控制面原样保存 `payload.text`,历史指令不匹配不是本地包装;Prompt 当前承诺的自由表达范围比用户描述的生产契约更宽,需在迁移决策中显式收窄或保留兼容策略。
- 已复核 operation action 集与 `validateAgentOperation()`:18 个入口落到 16 个 action,现有程序已承担绝大多数结构/值校验;本地替代的缺口收敛为模板解析、受控归一化和窄修改语法。
- 已统计输入语言规模:111 个字段出现位、44 个唯一标签,且大量标签跨 action 复用;下一步量化少量错字的唯一匹配边界并形成迁移门槛。
- 已量化错字碰撞:指令名最小距离 2,字段标签存在多个距离 1 的合法对;结论为 action 上下文内唯一纠错、业务值禁用模糊修正、歧义一律追问/阻断。
- 复评结论已收敛:固定模板正式成为产品契约时,正常路径可由本地 compiler 完全替代 AI;AI 只剩自由表达兼容价值。立即切换仍需先解决历史 AgentBus 输入漂移,并通过字段级 shadow 与零关键 false-pass 门槛。
- 已更新迁移架构、错字策略、模板版本化、单一机器可读源和分 action 放量门槛。
- 完整门禁通过:`check:repo` 9/9、`check`、控制面 66/66、legacy 214/214、`build`、`git diff --check`;未调用外部 Agent、未触发 ERP 或任务 mutation,未创建子智能体。
- `/tmp` 渲染目录清理命令被工具策略预执行拒绝,未影响项目;已记录且不重复破坏性删除,临时中间件不在仓库内。
- 已冻结复评前完整 `findings.md` 和 `progress.md` 到 `archive/project-history/2026-08-25/`,随后压缩根文件以遵守 32 KiB 治理边界。
- 下一步:逐页检查 DOCX,与活动 Markdown 模板逐项 diff,关联历史 AgentBus 标签签名和当前 validator,形成修订结论与上线门槛。
## 2026-08-25 — AI 解析环节历史实证(已完成)
- 已只读分析 444/444 条历史任务并区分 manual/canonical 与 AgentBus/AI;全部 143 条 AgentBus 当前走 AI,但输入高度结构化。
- 时间留出精确标签 action 路由覆盖 10/39 且 10/10 正确;近似标签路由识别 39/39 个有效 action,同时误路由 1 个业务阻断样本,故必须与字段 parser 和 fail-closed validator 串联。
- 当前 v1.5 AgentBus 27/27 解析通过、无契约修复,外部解析耗时中位 37.2s、P90 67.0s;旧结论为确定性 fast path + AI fallback,优先 `confirmation_export`。
- 分析后恢复原 Chrome 首页;全程 confirmed 候选为 0,未触发 mutation、外部 Agent 或 ERP 执行。
## 2026-08-25 — AI 可替代性源码评估(已完成)
- 已核对五个 Skill、Agent Prompt、Schema、mapping、解析适配器、canonical JSON 路径、validator、会话澄清和测试;确认解析器接口可替换,ERP 执行门禁已是确定性程序。
- 原结论:严格模板/表单可以完全程序化;若继续承诺自由自然语言、非标准位置、错别字与跨轮补充,则不宜直接无损去 AI。
- 上一阶段完整门禁通过:`check:repo` 9/9、`check`、控制面 66/66、legacy 214/214、`build`、`git diff --check`。
## 最近活动里程碑摘要
- Chrome 扩展 `0.5.140`:ERP 空闲保活与异常链接受控刷新已完成;无活动执行、allowlisted 标签页、冷却和只读复测门禁保持。
- `0.5.139`:移除产品/客户来源地强制匹配,产品和客户仍分别要求唯一候选。
- 游客名单导出:原始 HTML-in-XLS 仅归档,生成真实 XLSX 供移动端/AgentBus;其他确认文件按既定 PDF/源文件策略处理。
- 散拼母团创建:精确回查增加有限重试和逐日期只读兜底,绝不自动重复提交创建。
- AgentBus durable accepted/result、渠道状态、插件串行队列和历史任务恢复均已有实现与回归;`processing` 不是当前对外回执契约。
- 新建日期跨年规则、散拼导出状态过滤修复、PDF 中文字体/宽表修复均已完成并记录在历史归档。
## 错误与处理摘要
- 早期批量 `sed` 拼接、shell 缺少 Node PATH、内置浏览器无登录态和模板提取引号错误均已更换方法并记录;不重复失败动作。
- 本轮尚无 DOCX 读取或渲染错误;使用 workspace bundled Python、LibreOffice 和 fontconfig 成功生成 12 页预览。
## 边界与归档
- 不读取、复制或输出 `.env`;真实 ERP 写入、任务重试、部署、重启和外部发送仍需用户另行明确授权。
- 按用户要求不创建子智能体。
- 本次压缩前完整文件:
- [findings 快照](archive/project-history/2026-08-25/findings-pre-compression-fixed-instruction-contract.md)
- [progress 快照](archive/project-history/2026-08-25/progress-pre-compression-fixed-instruction-contract.md)
- 更早完整上下文见 `archive/project-history/`;归档仅供追溯,不定义当前活动规则。