28 KiB
28 KiB
项目进度
2026-08-24 — ERP 异常状态链接刷新加固(已完成)
- 已按治理规则读取 README、活动 planning 文件并运行
git status --short;工作区存在大量既有改动,均保留不回退。 - 已通过
business-adaptation-registry.md确认本轮属于插件宿主维护能力;已核对 lifecycle mapping、background.js、business-bridge.js、popup 和tools/erp-session-keepalive.test.mjs。 - 已确认当前保活只做定时只读探测:异常后不刷新现有 ERP 链接,且没有“恢复后二次探测”的状态闭环;下一步实现受控恢复并补回归。
- 已实现异常恢复单飞锁、2 分钟冷却、现有 allowlisted ERP 标签页绕缓存刷新、加载完成后的只读复测,以及恢复状态持久化;执行中任务、关闭开关、无现有标签页和权限异常均保持跳过/失败关闭。
- 平台状态新增 ERP 会话和链接恢复告警;异常或恢复中不领取新任务,业务 operation/Schema/Skill 未扩展。
- 定向验证:background/popup/platform/inpage/team-batch 语法通过;保活回归 4/4、生命周期契约 47/47;已生成
dist/ltjt-order-assistant-0.5.140.zip,SHA-256 为5d2eceb77a337849bd20bc3e03dea4c86b617c789dd196b8a47bbb33c0da0338,旧包已归档。 - 完整门禁通过:
check:repo9/9、check、串行test:control-plane66/66、test:legacy214/214、build、git diff --check;并行首轮控制面测试的 50ms listener 断言波动已通过串行复跑确认不是本次改动回归。 - 本轮未执行真实 ERP 写入、任务重试、重启、部署或外部发送;当前未提交改动及其他既有工作区改动均保留。
2026-08-22 — 取消产品/客户来源地强制匹配(已完成)
- 已从用户日志确认阻断来自
product_customer_source_region,产品“贵阳八天”与客户来源信息不一致;任务在 ERP 写入前停止。 - 已移除散拼子单、散拼母团可选客户、独立团单/批量下单的产品/客户来源地兼容阻断,并移除产品参与客户候选消歧;产品和客户仍分别要求唯一 ERP 候选,客户自身来源词 fallback 保留。
- 已同步业务页、mapping、生命周期夹具、扩展说明、控制面测试和静态契约;扩展/平台/mapping 版本为
0.5.139,旧 ZIP 已归档,新 ZIP 哈希见findings.md。 - 定向语法、产品/客户解析、生命周期契约和 AgentBus 测试通过;完整验证
check:repo9/9、check、控制面 66/66、legacy 213/213、build、git diff --check全部通过。未重试任务、未写 ERP、未重启、未部署、未外发。
2026-08-20 — AgentBus 通讯测试(已完成)
- 面板 PID
74544仍监听127.0.0.1:8786;/health/ready、/api/status通过,数据库、Schema、迁移和 4 个 AgentBus 渠道均connected=true、session_ready=true。 - 重启后日志确认 4 次 WebSocket 握手、4 次
session.ready、1 次入站消息受理、2 次出站回执发送;无socket_close或本地出站失败。未主动发送新的测试消息。 - 上游返回 2 个
type=error帧,当前监听器按协议将非event帧忽略;不影响连接状态,但如需确认远端渠道最终收件,还应结合 AgentBus 服务端回执核对。
2026-08-20 — ERP 会话待机保活(已完成)
- 已确认当前扩展只有任务执行期间保活;已按业务登记、
lwlt-confirmationSkill/契约、生命周期 mapping 和现有宿主实现核对,待机保活属于插件维护能力,不属于业务 operation。 - 已实现
chrome.alarms定时调度:首次约 1 分钟、之后每 5 分钟;仅对现存 allowlisted ERP 标签页发起带 Cookie 的GET /System/Mainlt.asp,不刷新页面、不新开标签、不执行 ERP 写入。 - 已增加执行中跳过、automation/独立保活开关、登录/权限响应识别、本地最近状态记录、桥接回传和 popup 状态展示;浏览器/系统休眠延迟属于明确边界。
- 定向语法与回归已通过:background/business-bridge/popup
node --check,ERP 保活测试 3/3,生命周期契约 50/50;已生成dist/ltjt-order-assistant-0.5.138.zip,SHA-256 为751dfe6022d61c7388c602089c703b88a9bfeebf67f81edacea1555545d7bcd0。 - 项目规定验证通过:
check:repo9/9、check、控制面 66/66、legacy 218/218、build、git diff --check;未进行真实 ERP 登录/写入、任务重试、外部发送、重启或部署。
2026-08-19 — AgentBus 无状态消息但任务成功(进行中)
- 已读取 README、活动 planning 文件并运行
git status --short;既有工作区改动全部保留。 - 已选择只读诊断范围:AgentBus 契约、
confirmation_export业务登记、任务事件、消息路由、渠道 listener、outbox 和回归测试。 - 已确认对外契约只定义 accepted 与最终 result,不定义 processing;生产数据库渠道先持久化 accepted,再在 accepted 送达且任务终态后入队 result。
- 已确认成功任务与 AgentBus 回执解耦:手工来源或缺少
channel_id/入站 frame 路由时,任务照常可完成但不会写入 AgentBus delivery;连接/session.ready不可用时,delivery 留在 pending/failed 等待重试。 - 已确认执行结果提交只写任务与内部生命周期事件;AgentBus 的 result 在 listener 后置 flush 中生成,故需同时检查任务终态和
agentbus_deliveries/outbound_*日志。 - 已完成源码、契约、迁移和回归测试核对:processing 不发送;accepted 依赖入站路由与渠道 outbox;result 依赖 accepted 已送达且任务终态。
- 当前
/health/ready只读检查通过,4 个 AgentBus 渠道均已连接并 session-ready;未取得用户所指历史任务 ID,因此保留历史归因边界。 - 验证通过:
check:repo9/9、check、test:control-plane66/66、test:legacy215/215、build、git diff --check。 - 本轮未修改业务源码、未重试任务、未发送外部消息、未重启或部署。
- 用户补发任务后从
/private/tmp/lwltAPI-dev.stdout.log定位到TASK-20260819102429-R13bn8w;accepted/result 均已由控制面写出并收到 AgentBus server 的 accepted/delivered 回执,未见本地发送错误。 - 诊断结论更新:问题不在任务执行成功与否,也不在控制面 outbox/WS 发出阶段;需由 AgentBus 网关/微信适配器检查下游展示。未向该下游主动发送测试消息。
2026-08-19 — confirmation_export Chrome host 权限阻断(已完成)
- 已确认两份日志均为同一主机权限失败:外部解析和 operation 契约成功,浏览器执行阻断,
no_erp_write=true。 - 已在
background.js增加 host permission 前检、批准 ERP origin 复核、同源导航竞态重试和 fail-closed 诊断码;readErpSessionStatus()会暴露host_permission_granted,平台页面会显示并据此阻止新的 handoff。 - 已新增生命周期静态回归,覆盖 manifest host、注入封装、错误码和平台权限门禁;定向语法检查、operation plan 40/40、生命周期契约 47/47 通过。
- 扩展已递增到
0.5.137,同步inpage.js、team-batch-inpage.js、平台最低版本、mapping、README 和版本断言;已生成 ZIP/发布清单。 - 已将旧
0.5.136ZIP 归档,生成dist/ltjt-order-assistant-0.5.137.zip,SHA-256 为6c00c6e8240fad80bc8fbe8e932dfaf22ad32e494c957717c2d7537785f09fd5;check:repo9/9 确认发布清单、版本、哈希和扩展源码逐文件一致。 - 完整验证通过:
check、控制面 66/66、legacy 215/215、build、git diff --check;定向 operation plan 40/40、生命周期契约 47/47。 - 本轮没有重试用户任务、写入 ERP、发送外部消息、重启或部署;由于固定 ERP URL 的只读网络探测超时,未宣称 live 浏览器复测成功。
2026-08-18 — visitor-list XLSX 转换失败排查(进行中)
- 用户确认继续排查并修复附件日志中的
visitor_xlsx_conversion_failed:conversion_failed。 - 已确认 Agent 解析成功、ERP 只读读取发生且
no_erp_write=true;最终任务被阻断,原始 XLS 未向 AgentBus 外发。 - 下一步:用脱敏 HTML-in-XLS fixture 复核转换器和运行环境,定位具体失败点后补修复与回归验证。
- 首次复现脚本因 Node 24 的 ESM/CommonJS 混用在转换前退出,已记录;下一次改用纯 ESM 脚本。
- 用当前 bundled
soffice重跑后复现真实失败:HTML 输入按 Writer/Web 加载,Calc XLSX 导出触发SIGABRT;下一步比较保留.xls导入与中间格式路径。 - 已确认保留
.xls扩展名即可让 LibreOffice 按 Calc 文档导入并成功输出真实 XLSX;convertDocumentToXlsx()已修正,定向转换器测试 6/6 通过,真实 bundled LibreOffice fixture 生成 6,114 字节 ZIP/XLSX。 - 完整门禁通过:
check:repo9/9、类型检查、控制面 66/66、legacy 214/214、build、git diff --check;随后已优雅重启面板,新实例 PID24717,/health/live与/health/ready通过,4 个 AgentBus 渠道均connected=true、session_ready=true。未触发 ERP 重试或写入。
2026-08-18 — 散拼母团创建写后回查假阴性修复(已完成)
- 用户已确认本次 2027 年计划实际创建成功,并明确要求开始修复。
- 已定位确定性恢复缺口:完整返回团号时即使精确列表回查全空,也不会进入按日期兜底;精确查询还未显式清空其他列表筛选。
- 实施边界为纯写后只读恢复:清空筛选、有限延迟重试、失败即按日期兜底;不执行真实 ERP 写入、任务重试、重启或部署。
- 已在
split-plan-reconciliation.js增加完整筛选值构造、返回团号有限重查、恢复触发判定和回查行合并纯函数;尚未接入页面执行函数。 - 已接入
createSplitParentLive():精确团号查询显式清空非目标筛选并按0/750/2000ms有限重查;任一团号持续未命中、响应异常、数量不符或事实探针启用时均进入逐日期兜底。恢复路径只调用列表查询,不再次调用保存。 - 已补充纯函数行为测试和生命周期静态门禁,覆盖首次全空、第二次可见、完整团号仍需兜底、回查行优先合并,以及创建函数只保留一次保存捕获调用。
- 定向测试通过:
tools/split-plan-reconciliation.test.mjs14/14,生命周期回查门禁 1/1;两个修改后的插件脚本语法检查通过。 - 扩展源码、manifest、平台最低版本、生命周期 mapping、散拼计划 mapping、README 与版本断言已同步递增到
0.5.135;版本化 ZIP 和发布清单待生成。 - 已核对旧
0.5.134ZIP 的 SHA-256 与当前发布清单一致,并将其移动到archive/releases/2026-08-18/;可从归档恢复。 - 首次打包因相对路径多退一级而未创建任何 ZIP;已记录错误,下一次使用扩展目录到项目
dist/的正确../../dist路径。 - 已生成并逐文件核对
dist/ltjt-order-assistant-0.5.135.zip,压缩测试无错误,SHA-256 为9f49f5529083cb1cc497bfc52c56d0142076394c034552fcdd77e34e70ce7f14;发布清单已同步。 check:repo9/9 通过,确认发布清单哈希、版本化 ZIP 与当前扩展源码逐文件一致。- 完整验证首次运行:
check:repo与check通过;控制面 60/61,唯一失败为当前工作区的游客名单.xlsx转换测试桩未生成输出,后续 legacy/build 因set -e尚未运行。本次回查相关定向测试不受影响。 - 单独继续验证时 legacy 213/214;唯一失败是本次版本递增遗漏的一处转义正则仍断言
0.5.134。构建因set -e尚未执行,待修正版本断言后重跑。 - 已修正全部版本断言并重跑:legacy 214/214、build、
git diff --check通过。本次散拼回查修复验证完成。 - 控制面保持 60/61:唯一失败为本任务开始前已有的游客 XLSX 并行改动测试桩只生成 PDF、而当前转换器要求 XLSX;为避免越权改变未确认的游客交付策略,本轮保留该既有改动并明确记录。
- 最终复核中
check:repo9/9 与git diff --check已通过;后续哈希命令因子 shell 未继承 bundled Node PATH 中止,改用绝对 Node 路径补跑。 - 使用 bundled Node 绝对路径补跑哈希复核通过:ZIP 与发布清单均为
9f49f5529083cb1cc497bfc52c56d0142076394c034552fcdd77e34e70ce7f14;最终git diff --check通过。 - 用户明确授权后已重启控制面:旧服务进程组优雅退出,自动恢复出的新实例 PID 4554 独占
127.0.0.1:8786;live/ready、数据库、Schema、迁移与 4 个 AgentBus 渠道均正常。竞争拉起实例因端口占用安全退出,未触发任何 ERP 任务重试。
2026-08-18 — visitor-list AgentBus XLSX 交付(已完成)
- 已确认 ERP
Visitor.xls是 HTML-in-XLS 伪 Excel:桌面 Excel 可兼容打开,手机/微信通常不支持;插件、控制面和 OSS 均保持源字节,未发现传输损坏。 - 用户确认“原始
.xls保留在平台归档 + 生成真实.xlsx”,并明确 AgentBus 返回.xlsx。 document-converter.ts新增真实 XLSX 转换和 ZIP magic/大小校验;task-service.ts为 visitor-list 保存源 XLS 与派生 XLSX,其他类型继续 PDF/源文件回退。- AgentBus 直连、耐久 outbox 和统一用户回执均按
agentbus_visible过滤,转换失败 fail-closed,不回传原始 XLS。 - 已同步 Skill、输出契约、AgentBus 契约、Schema、mapping、平台/扩展提示、测试夹具和运营模板;未写入 ERP、未重试、未重启或部署。
- 表格结构已通过 artifact-tool 导入/检查/渲染验证;定向控制面回归 66/66 通过。
- 最终门禁已通过:
check:repo9/9、check、test:control-plane66/66、test:legacy214/214、build、git diff --check;Skill 校验通过,运营 DOCX 15 页渲染通过。
2026-08-18 — 三次团队文件导出同错诊断(已完成)
- 用户指出同一导出模块包含多个内容;已查看截图并转入逐类型只读核查,本轮不实施原文件策略。
- 截图可见 9 个 ERP 导出按钮;契约定义 10 种 canonical type,将继续对照路由、文件名/MIME 和历史源文件证据。
- 已确认 10 种导出内容共用一个
confirmation_exportaction;截图中的JOB Order/游客信息/大交通预订单与契约中的中文名称存在同义命名。 - 已读取
exportConfirmationSources():10 种类型各自请求 ERP 原生 URL,保留原响应元数据,插件固定标记converted=false;待继续从历史证据确认各类型的实际文件扩展名。 - 已读取历史全类型源读取证据:10 种类型的原生响应包含 Word 附件、Excel/HTML 响应和 HTML 打印页,四轮均为 10/10 HTTP 200;归档未保留全部文件名,但保留了字节/SHA-256。
- 已确认插件内
normalizeExportType不直接映射截图中的部分中文/界面别名,下一步核对外部 Agent 解析层与测试覆盖,避免把“按钮名称”误判为 canonical type。 - 已核对外部 Agent 校验与测试:
confirmation.type/export_types只接受 10 个 canonical 字符串,现有 Skill/测试未直接覆盖截图的JOB Order、游客信息、大交通预订单文案;该别名覆盖缺口与 PDF/原文件策略相互独立。 - 已定位并记录逐类型 ERP 路由、源响应元数据和历史格式矩阵;同时确认控制面
prepareExecutionArtifacts()才是全类型统一转 PDF 的实际调用点。 - 已读取本轮 920 行日志,确认 action 为
confirmation_export,ERP.xls源文件被转为.pdf后成功交付。 - 已确认用户的新要求是仅
visitor-list(游客信息)保留 ERP 源 XLS 并生成真实 XLSX,AgentBus/微信只交付 XLSX,其余 9 类继续转 PDF;已完成实现与回归。 - 已定位最小实现点:控制面
prepareExecutionArtifacts()按 artifact type 选择转换;转换器、插件源读取、存储和下载链路均保留。 - 已完成控制面双文件交付:
visitor-list保留源 XLS 归档并生成真实 XLSX,其他类型沿用 PDF/失败回退;同步契约、过滤和测试均已验证。 - 已同步控制面、Skill、业务登记、输出契约、mapping、Schema、插件提示、发布门槛和测试;选择性转换回归测试通过,运营 DOCX 已重建并完成 15 页渲染检查。
- 首轮全量验证发现的两个同步项已收敛:0.5.134 扩展 ZIP 已按当前源码重打并逐文件核对,operation-plans 提示断言已同步;控制面测试 61/61 已通过。
- 最终验证通过:
check:repo9/9、check、控制面 61/61、legacy 208/208、build、git diff --check;lwlt-confirmationSkill 官方校验通过,DOCX 15 页渲染检查通过。未执行 ERP 写入、重试、重启或部署。 - 新增诊断与实施已完成:
Visitor.xls是 ERP 返回的 HTML-in-XLS 伪 Excel,native 分支与 OSS 链路保持原字节;平台现在生成真实 XLSX,移动端/微信通过 AgentBus 只收到 XLSX。 - 已通过业务登记和 Skill 确认当前 PDF 规则是 action 级全局默认,不是本次
.xls的特例。 - 已核对 Schema、mapping、插件源文件契约、控制面 artifact 准备/保存、平台下载、AgentBus 附件回传、Skill 包和运营 DOCX 的影响面。
- 用户已确认共享理解;本轮已修改业务实现并完成本地验证,未部署或重启。
- 已读取三份日志并确认它们是独立运行但具有相同失败签名。
- 共同失败发生在
confirmation_export的浏览器来源解析:row_count=0、child_link_count=0,尽管响应存在ddid/tid;插件按安全门禁阻断。 - 三次均未写入 ERP;下一步对比各自查询条件和当前适配器实现。
- 第一份任务已确认前置唯一解析成功,失败集中在随后按母团/日期加载来源页面后的行与子单链接识别。
- 已通过业务登记定位到
lwlt-confirmation/confirmation_export,开始核对该业务页、Skill、Schema、mapping 和插件实现。 - 已完整读取
lwlt-confirmation主 Skill;Agent 侧职责与日志中的成功解析一致,继续检查输入/输出契约及插件二次查询。 - 已核对输入/输出契约、执行态 Schema 和生命周期 mapping;三份日志里的执行态引用满足契约,故障定位进一步收敛到散拼母团查询响应中的子单叶子行解析。
- 已读取
exportConfirmationSources()与唯一解析辅助函数:错误中的ddid/tid=true只是已解析引用兜底;二次查询现场连母团行也为零。正在核对强制“收客中”过滤与母团子单展开逻辑。 - 已定位历史散拼子单导出证据集,准备对比成功运行的 preflight/查询字段与当前三次失败。
- 已排除把生成清单的
ok=true误当成 ERP 浏览器成功;继续从 replay state 和证据登记提取真实执行结果。 - 已确认旧基线存在两轮散拼子单导出真实成功证据(各运行合计 40/40、失败 0);下一步对比当前工作树与旧实现/查询条件,识别回归点。
- Git 提交历史不足以定位细粒度变更,已改用归档版本化扩展 ZIP 做逐版本函数对比。
- 0.5.84 已包含当前类型的严格散拼导出二次门禁,排除“0.5.133 最近才引入”这一简单解释;继续查 0.5.81 证据源码及查询状态差异。
- 已完成 0.5.84/0.5.93/0.5.118/0.5.132/0.5.133 导出函数对比:查询门禁未变,当前根因最高概率为只读导出强制
收客中与目标母团实际状态冲突。 - 已确认三次都针对同一子单/母团/日期/内部引用;显式
收客中通过原生菜单点击和 AJAX 真正参与查询。三次同错诊断完成,未改业务代码、未重试、未写 ERP。 - 完整本地验证通过:
check:repo9/9、check、控制面 60/60、legacy 207/207、build;未重启服务或部署。 - 用户已确认本轮实施:仅移除
confirmation_export散拼子单二次查询的固定“收客中”过滤,继续保留母团/子单/ddid/tid唯一核验;不触发 ERP 重试或写入。 - 已确认当前源码改动点为
chrome-extension/ltjt-order-assistant/inpage.js的exportConfirmationSources(),接下来补回归测试并同步扩展版本与版本化交付物。 - 已移除该函数对
S_zhuangtai='收客中'的固定赋值;新增回归测试验证导出查询不携带生命周期状态过滤,同时保留母团/子单/ddid/tid门禁。 - 扩展源码、manifest、平台最低版本、mapping 和插件 README 已递增到
0.5.134;版本化 ZIP 与 release manifest 待打包后更新哈希。 - 已生成并校验
dist/ltjt-order-assistant-0.5.134.zip,SHA-256 为7434d8221f8bf80a432aed64a10c4c2cf46c9160ccef5d97f86173a95102ddea;旧0.5.133包移入archive/releases/2026-08-18/,待完成全量验证。 - 完整验证通过:
check:repo9/9、check、控制面 60/60、legacy 208/208、build;git diff --check通过。首轮直接调用 bundled Node 的--run因脚本子进程 PATH 缺失失败,显式前置 bundled Node 路径后通过。 - 最终补跑
check:repo9/9 与git diff --check仍通过;本轮修复闭环完成,未触发 ERP 写入、重试、重启或部署。
2026-08-18 — “取消订单”外部解析超时诊断(已完成)
- 用户日志显示外部会话创建成功,但 SSE 连接后约 120 秒没有任何事件,最终为
external_cancelled;event_count=0。 - 已确认
agent_returned=false、未进入插件、未写入 ERP;问题发生在外部解析请求阶段,不是 ERP 订单状态或写入失败。 - 已核对客户端 abort/timeout 路径,并用 bundled Node 的挂起 SSE 探针复现:单次读流超时因 abort 竞态被归类成
external_cancelled。 - 已确认当前
order_cancel的解析/执行契约只接收单个existing_refs.identifier;用户给出的 3 个单号需要拆成 3 个独立任务,不能拼成一个标识。 - 本轮未读取
.env,未发送外部请求,未修改代码,未执行 ERP 写入;后续若修复错误归类或增加批量取消能力,需用户明确授权。
2026-08-18 — 散拼计划创建回执不确定诊断(已完成)
- 新日志的 SSE 解析正常完成(174 个事件),已进入
shared_plan_create插件执行;不是外部解析超时。 - ERP 写入请求返回 HTTP 200 和“操作成功,共计新增 3 个团队”,返回团号
LW-260107A-H、LW-260115A-H、LW-260126A-I;已确认跨过 ERP 写入边界。 - 写后逐团号回查三个均未命中,任务安全地进入
execution_uncertain/reconciliation_pending,停止且不自动重试;当前不能判定未写入。 - 已定位当前实现:当返回团号数等于指定日期数且未启用 probe 时,不执行按日期 fallback,可能放大回查假阴性;本轮只诊断,未修改代码。
- 后续安全动作是先在 ERP 散拼团计划表逐个精确核验三个团号,并核对 2026 年 1 月日期是否符合原意;未核验前不得重新创建。
- 显式注入 workspace bundled Node PATH 后完成项目验证:
check:repo9/9、控制面 60/60、legacy 202/202、build 通过;首次 shell 未找到node已修正。
2026-08-18 — 散拼计划日期跨年归一化诊断(待策略确认)
- 已确认原始输入没有年份,运行日期为 2026-08-18;用户意图是 2027-01-01 至 2027-01-30,指定 01-07/01-15/01-26。
- 已确认错误 operation 在外部 Agent 阶段生成了 2026 年日期;插件只消费四位年份,不负责推断或纠正年份。
- 当前 Skill 与运行时提示不一致:Skill 允许“年份不确定时追问”,但宿主没有强制执行;需要确认是否改为新建业务按下一次发生日自动补年。
- 未修改代码、未对既有错误计划执行 ERP 变更;策略确认前禁止重试。
2026-08-18 — 散拼计划日期跨年归一化修复(已完成)
- 用户确认:新建业务无年份日期按下一次发生日补年;修改/查询保留既有 ±1 年匹配逻辑。
LianSyn-platform/external-agent-client.mjs已增加宿主侧确定性补年:只作用于四类lwlt-newbooking新建 action;明确年份和生命周期修改/查询 action 不改写;续问时合并原任务历史日期上下文。- Agent Prompt、
lwlt-newbookingSkill 和宿主接入文档已同步到ltjt-agent-prompt-v1.5-next-date-rollover规则。 - 定向回归测试 72/72 通过,覆盖 2027-01 跨年、当年未来日期、显式年份、修改不变和补充信息续问。
- 五个 Skill 已发布为
0.5.119版本,旧0.5.118制品已移入日期归档,dist/release-manifest.json已同步哈希和版本。 - 完整验证通过:
check:repo9/9、check、控制面 60/60、legacy 207/207、build;未执行真实 ERP 写入、部署或重试。
2026-08-18 — PDF 转换内容完整性修复(已完成)
- 源
.doc确认为 Word 生成的 HTML;旧 PDF 缺失中文是 LibreOffice 子进程未加载字体配置造成的。 - 转换器固定使用
writer_pdf_Export分页 PDF 导出,并自动加载显式、系统或随转换器捆绑的 fontconfig;失败继续回退源文件。 - 修复 Word HTML 宽表在 A4 右侧被裁切:按最大声明宽度动态缩放到可打印区域;实际附件 2 页 A4 的右边框、右栏和正文均完整。
- 控制面已重启,AgentBus 健康检查通过。
- 源文件引用的远程图片因当前 DNS 不可达无法获取,未将其误判为可恢复内容。
2026-08-18 — AgentBus 渠道状态同步修复(已完成)
- 修复旧控制面进程停机回写
disabled覆盖新连接的问题。 /api/channels优先使用当前 listener 实时状态,启用且已握手的渠道显示connected。- 状态回写增加 session epoch 防护;listener 重载/进程关闭不再等同于管理员停用。
- 控制面测试 59/59、类型检查、build、
git diff --check通过。 - 重启后 3 个启用渠道均为
enabled=true、connected=true、session_ready=true;重复兼容渠道保持停用。
2026-08-18 — 文件获取统一转 PDF(已完成)
confirmation_export成功获取文件后统一转 PDF;转换失败、超时或无效输出回退源文件。- OSS/AgentBus 附件链路保持一致;实际
.doc已验证可生成有效.pdf。 - 转换器路径已固定到运行环境的 bundled LibreOffice,面板已重启并通过 AgentBus 健康检查。
2026-08-18 — 外部 Agent 解析契约错误(进行中)
- 已读取用户提供日志:SSE 正常完成,但标准解析契约校验拒绝结果;确认没有插件调用和 ERP 写入。
- 已核对
normalizeParseResult()、解析结果 Schema、lwlt-confirmation输入/输出契约和外部 parser prompt;当前阻断规则一致且不应绕过。 - 当前待确认:外部实际返回的
status、blockers内容、operation摘要及已发布 Profile 版本。未读取.env,未发送外部请求,未修改业务代码。 - 定向解析器测试 50/52 通过;2 个 HTTP 边界用例因沙箱
listen EPERM未执行成功,已记录为环境限制。
最近已完成里程碑
- AgentBus 源文件附件回传、HTTPS OSS URL-only 协议和平台下载入口已接通。
- 多用户渠道、持久化 accepted/result 回执、插件串行队列和历史任务超时自愈已完成。
- 历史文件名乱码读取兼容已修复;前端渠道页使用独立
/channels路径。
验证与边界
- 项目规定的 check:repo 9/9、check、control-plane 59/59、legacy 202/202、build 和 git diff --check 均已通过。
- 本轮未执行 ERP 写入、未发送新的外部业务探测消息;用户既有未提交改动全部保留。
- 不读取、复制或输出
.env等本地秘密配置内容。
归档
- 本文件压缩前完整快照:archive/project-history/2026-08-18/progress-pre-compression-agentbus-status.md。
- 更早历史进度和 findings 快照位于
archive/project-history/;归档仅供追溯,当前规则以源码、契约和本文件为准。