Files
LWLT-AIBOT/findings.md
T
2026-08-30 00:13:22 +08:00

71 lines
11 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-30 — 0.5.156 校验范围恢复
- 用户明确要求恢复 `0.5.156` 的校验方式。归档 ZIP 证明该版本的动态正则写成字面 `\\d*`,所以真实编号 `ys_danwei1/ys_danweiid1/ys_jine0` 等字段并未进入保护;`0.5.160` 修正数字后缀后才新增当前强校验。
- `0.5.163` 不整体降级:保留正式控制面域名、MV3 链路恢复、lookup readiness 和 `jQuery.active/ajaxStop` 稳定态,只移除编号动态 `ys_*` 的保护投影。日期、客户、产品、人数、房型、跟单人、销售人等静态核心字段继续按摘要漂移失败关闭。
- 完整 live-gate 回归确认:核心字段变化仍返回 `live_submit_blocked` 且零网络;仅编号动态应收字段变化时,表单和原生请求的保护摘要均匹配并进入原生提交路径。该策略允许 ERP 在预检后调整动态应收行,属于生产操作方明确接受的行为边界。
- `0.5.163` ZIP SHA-256 为 `90c550054cdf747aa9c2c80bca5ee5fba0d13f126acfd4779f85400764379bf0`;专项、全量和构建门禁均通过。生产仍需加载后以新任务验证,旧失败任务不重试。
## 2026-08-29 — Program 写前受保护字段漂移
- `0.5.160` 生产复测已把实际漂移字段定位为 `xiaoshouren`(销售人),仍在网络请求前阻断。活动源码确认单团页面只按 `ListForm` 控件数达到 800 判定就绪,但 ERP 页面会异步请求 `ProDanwei_Yuangong`,并在回调中两次重新初始化 `xiaoshouren`;插件写入预检销售人后到 live gate 之间没有第二次插件写入。
- 真实 `lightweightOrderFrameProbe` 的离线反馈环稳定证明:`zutuanshe/gendanren/xiaoshouren` 的原生 SelectBox 数据仍为空时,当前实现仍错误返回 `order_frame_ready`。散拼子单路径已等待这三个 lookup 的 `data` 属性,单团路径没有,最可能因此允许 ERP 员工列表回调在预检后改写销售人。由于没有生产页面回调时间戳,这一因果关系属于强证据推断而非直接观测。
- `0.5.161` 虽已等待客户、跟单人和销售人 SelectBox 的 `data`,生产握手确认该版本后仍先后报告 `xiaoshouren`,以及 `xiaoshouren + ys_danwei*/ys_danweiid*` 漂移。这证明 lookup 数据存在不等于页面所有原生 Ajax 已完成;ERP 表单启动阶段还有收款项目、报位、说明和资源等多组 jQuery Ajax。
- 用户确认生产 `0.5.156` 没有该阻断。ZIP 差分确认 `0.5.156` 已保护 `xiaoshouren`,但数字后缀正则错误使 `ys_danwei1` 等动态应收字段当时未进入保护;应收行是 `0.5.160` 修正保护范围后新暴露的真实迟到变化。随后用户明确接受该范围调整风险并要求恢复旧校验效果,当前结论见上方 `0.5.163` 记录。
- 真实 frame probe 的第二个离线反馈环证明:三个 lookup 数据均存在、但 `jQuery.active=2` 时,`0.5.161` 仍错误返回 `order_frame_ready`。`0.5.162` 同时在 frame readiness 要求原生 Ajax 归零,并在 `GetProduct` 外层完成后等待页面自身 `ajaxStop`,再应用最终销售人和应收字段;只使用完成事件和失败超时,不使用固定 sleep。
- 用户提供的服务工作线程状态证明:预检最终表单与其拦截请求的受保护字段 SHA-256 都是 `fe3cfc2e72e0e8fafad548717a71012228d63b5f5a10ee20a5ff526e1f12c8e5`,实时提交的已批准摘要仍是该值,但当前摘要变为 `fa42ee152b1e4d1920d2f5b4329b8dfe1884900a087c932b3dfb8736d05c1276`;前后字段数均为 822。
- 因字段数相同且预检前后摘要一致,这不是错误基线或表单字段总数变化,而是预检结束到真实提交之间至少一个受保护字段的名称/值投影发生了漂移。`0.5.159` 只持久化聚合摘要,无法从既有日志反推出具体字段。
- `0.5.160` 仅在 ERP 页面运行内存保存预检受保护字段投影。写前不一致时回执只包含变化字段名、数量、基线可用性和 `values_redacted=true`,不持久化或输出任何字段值,也不放宽阻断条件。
- 新回归发现动态应收保护规则原先使用双重转义,实际匹配字面 `\\d`,导致 `ys_jine0` 等带数字后缀的真实字段未进入保护投影;已改为数字后缀匹配并由行为测试覆盖。
- `0.5.162` ZIP 与 19 个活动源码文件逐字节一致,SHA-256 为 `2b257fd61610e8cb6f21c99441b6072246ce06397e2ea05e96488ef414926f12`;定向回归、仓库治理、TypeScript、控制面、legacy 与 build 均通过。生产运行态仍需运维加载该版本后用新任务验证;不重试旧失败任务。
## 2026-08-29 — ERP 链路恢复状态残留
- 截图中的插件版本、权限、自动化和 ERP 会话均正常;唯一告警来源是持久化 `recovery_status=running`。操作台把 `scheduled/already_running/running` 视为恢复中,并阻断自动与手工插件派发。
- MV3 服务工作线程可能在恢复写入 `running` 后被中断;内存 Promise 随工作线程消失,但旧实现没有区分“真实活动恢复”和“只剩持久化状态”,普通保活成功也不清除 `recovery_status`,因此告警可永久残留。
- `0.5.159` 只在内存恢复 Promise 已不存在时把 `running` 归一化为 `interrupted`;真实活动恢复仍保持 `running`。普通只读保活成功且无恢复在途时把恢复状态转为 `idle`,不会重放任何业务任务。
- 同一真实页面状态函数的反馈环确认:无在途 Promise 时页面恢复“已连接”,有在途 Promise 时继续“已连接,有告警”。
## 2026-08-29 — 正式控制面域名插件接入
- 扩展 `0.5.157` 的 Popup 与后台业务系统 URL 判定只允许本地 HTTP,Manifest 的控制面 content script 匹配也只有 localhost/127.0.0.1;当前 ZIP 与源码一致,因此刷新或重新加载旧包不能识别 `https://lwlt.nianxx.cn`。
- `0.5.158` 只把精确 origin `https://lwlt.nianxx.cn` 加入 Popup、后台标签发现、host permission 和 content script;相似域名、子域名及其他 HTTPS 站点仍拒绝注入。ERP origin `https://lwlt.hisy.cc` 未改变。
- 新 ZIP 19/19 文件与源码逐字节一致,SHA-256 为 `99ba7b29d1d4418cb02fcbb345aeaf8494877dbc397ae8592b4e3fdb68b4cf9d`;`0.5.157` ZIP 和清单快照已日期化归档。
- 本轮只生成发布物,没有重载用户浏览器中的扩展、部署服务或访问 ERP;运行态仍需用户/运维从 `dist/` 加载 `0.5.158` 后刷新正式操作台。
## 2026-08-28 — AgentBus 运行态重连
- 用户侧观察到 AgentBus 断线后,服务端健康接口在重启前已短暂恢复为 4/4 ready,说明该现象可能是间歇性连接或页面状态延迟;当时在途 task 与 `accepted/running` attempt 均为 0。
- 按用户授权重启后,标准运行态为进程组 `66218`、服务 PID `66228`;连续 25 秒 6 次只读采样均保持总连接与 session ready 正常、4/4 渠道 ready。若用户界面仍显示断线,应优先刷新操作台状态,不据此重复派发任务。
## 2026-08-28 — 散拼母团“整团游客信息”导出(已完成)
- 用户报告的任务已由 `confirmation_export / Program v1.0.5` 正确路由并抽取客户、出发日期、产品;唯一失败是 `export_type=整团游客信息` 未登记,任务保持 `no_plugin_dispatch=true / no_erp_write=true`。
- 这不是普通文案别名:历史只读 ERP 证据确认“整团游客信息”属于散拼母团,源为 `/System/Business/orders_Visitor.asp?tid=<tid>`;独立团/散拼具体子单“游客名单”源为同一页面的 `?did=<ddid>&tid=<tid>`。二者文件家族相同,但对象范围不同。
- 已继续复用 `confirmation_export` 和 canonical `visitor-list`,由 `existing_refs.kind` 严格分流;`整团游客信息`固定为 `shared_plan` 且只使用母团 `tid`。母团仅开放单一 `visitor-list`,不能使用`全部`、其他文件类型或任何子单 `did/ddid`。
- Program parser、双 Schema、平台 validator、operation plan、ERP 唯一解析、页内 exporter、mapping、业务文档及 AgentBus 交付契约已同步。解析态保留母团范围,执行态要求 resolved、母团号/计划号和 `tid`;源 URL 固定为 `orders_Visitor.asp?tid=...`。
- 普通`游客名单`仍只用于独立团或散拼具体子单并生成 `did+tid`,未因母团能力而扩大范围。混用`整团游客信息/游客名单`或母团请求其他文件会在 ERP 请求前失败关闭。
- 新基线为扩展 `0.5.157`、Program parser `v1.0.6`、输入契约/DOCX `0.5.123`、五 Skill `0.5.125`;完整静态回归、包/源码比对和 DOCX 12 页渲染均通过。服务与扩展运行态已切换到该基线,但母团真实 ERP 导出路径本轮未获访问授权,仍只具历史只读证据。
## 2026-08-28 — 名单导入当前基线
- 两类名单导入固定 Program-only:文字定位后等待单个 `.xls/.xlsx`;第一行团信息、第二行 14 列表头,规范化为加密 13 列 canonical TSV,原始工作簿不持久化。
- 未确认且目标游客位占用时要求覆盖确认;`full_replace + confirmed=true` 后附件指定序号全部强制覆写,同值也写。父表单 ERP 明确成功即完成,不再逐行写后回查。
- 唯一严格`领队`备注行生成 `passenger_list.leader_contact`,保存前投影到 `jj_lianxiren/jj_dianhua`;多行、缺值或结构不一致均失败关闭。
- 当前扩展 `0.5.157` 继续包含 `0.5.156` 引入的游客位容量业务提示;原始技术 blocker 只留技术详情。用户另行授权后,扩展与 8786 服务均已重载/重启到当前版本。
## 当前解析、执行与发布边界
- 18 项机器路由、任务级 AI/Shadow/Auto/Program 快照和组织全自动化对手工与 AgentBus 新任务统一生效;两类名单 route 固定 Program-only。
- 当前 Program parser 基线为 `ltjt-program-parser-v1.0.6`,输入契约为 `business-input-templates-0.5.123`;五个 Skill 为 `0.5.125`,Agent Prompt 为 `ltjt-agent-prompt-v1.8-independent-headcount-categories`。
- 生命周期执行仍要求唯一对象、页面身份、ownership、写前投影、明确服务端响应与 action-specific 完成凭据;未知或不确定写入不得自动重试。
- `confirmation_export` 是只读 ERP 源导出:游客源归档原始 `.xls` 并生成真实 `.xlsx` 供 AgentBus/微信;其他类型转 PDF,失败回退源文件;不定时、不外发、不重保存订单。
- 真实 ERP 访问或写入、任务 mutation、部署、外部发送及后续运行态变更仍需用户另行明确授权。本轮用户在源码与发布物变更后,又单独授权了当前版本的服务重启和扩展重载;未授权 ERP 业务页访问。
## 历史与归档
- 本次压缩前完整 findings 已按相同 SHA-256 `17e5c316e5f9e18f4b56374d2e1dba75c03e346396e3f63bdf78cdd4df3fcf84` 冻结到 [2026-08-28 findings 快照](archive/project-history/2026-08-28/findings-pre-compression-shared-plan-visitor-export.md)。
- 先前完整研究、真实只读证据和发布过程见 `archive/project-history/`、`archive/research/` 与 `archive/evidence/`;归档只供追溯,不反向定义当前规则。
- 当前业务规则以活动源码、Schema、mapping、Skill、业务登记和 `dist/release-manifest.json` 为准。