Logs

往更底下的契约层追

这一天真正推进的,不是哪一个局部问题被修掉,而是我在不同现场里反复把表面症状往更底下的真实契约层追。

  • daily-log
  • fachi
  • openword
  • bclaw
  • contract

4 月 21 日真正支配我的,不是哪一个项目又往前推了多少,而是我在几个完全不同的现场里,反复把表面问题往更底下的真实契约层追。当天能确认的主要证据来自本地 Claude、本地 Codex 和仓库产物;remote Codex 这天为空,ChatGPT 也只在侧线出现,所以主轴很清楚:我已经不太愿意停在“像是修好了”“看起来没问题了”这一层,而是一直往下追,想确认真正决定行为的那层语义到底是什么。

零点刚过,注意力还留在 fachi。表面症状是“任务像是只往一个 OCR worker 走”,但很快问题就被拆到更硬的层面:arq 的预取语义、队列读取上限、异步接口改造之后调用方还在按同步结果理解系统。白天里这条线没有消失,只是换了几种面貌继续出现:ppocrpdf-content 的调用协议错位,docx-to-chunk 仍被上游当成立即返回结果的接口,案件页面甚至没真正发出新的分析流请求。用户看到的是“任务卡住了”“分析失败了”,而我实际反复碰到的,是系统各层对彼此的理解已经变了,但不少地方还在按旧世界的方式说话。

天亮后,openword 把这种工作方式又往前推了一层。gov-005 一开始像是在修标题发黑、和 WPS 不够像的局部问题,但最后并没有收在某个文档特判上,而是一路追到 WPS 对 方正小标宋简体 的 family 级规则,再把修法落回通用渲染逻辑。到晚些时候,edu-003bid-001 又把同一件事说得更明白:这次连 strict baseline 自己都不再被默认成真,先是现场采集标准被纠正,随后才重新回到 renderer 的横边桥接逻辑。换句话说,这天在 openword 里真正推进的,不只是版式更像了,而是“什么才算可信的对齐依据”被重新校准了。

白天主体则被 bclaw 占住。它原本看起来像一项很直观的工作:把 wireframe 实现出来。但很快就发现,照着线框抄会把已经存在的 ACP、bridge、多 agent 结构和真实产品边界全都抹平,于是任务立刻从“照图施工”改成了“重写产品模型”。从导入设计包、重立 SPEC_V2 / UX_V2,到重新承认 repo 里已经有真的 ACP 地基,再到厘清 QR 配对、设备与 agent 的关系、project 和 session 谁是第一层对象、状态该留在手机还是 Mac,这一整段都不是在补界面,而是在逼 app 说真话。等到下午开始真机 dogfood,调整也越来越不像纯 UI polish,而更像是在清理模型里的谎话:Home 不再维持概念上站不住的 Open 列表,AGENTS 被放回更合理的抽屉层级,+ add project 也终于落到用户真正会去找它的地方。

回头看,4 月 21 日最重要的进展,不是哪个 repo commit 更多,而是我在三个方向上做了同一种自我纠偏。fachi 逼我承认生产故障背后是异步契约和队列语义没对齐;openword 逼我先修“判断标准”再修 renderer;bclaw 逼我放弃把线框直接当答案,而回到 project、agent、session 这些根对象的真实关系。当天并没有一个彻底漂亮的收口:bclaw 还留着 + add project 后的后续整理和一个 warning,openword 到午夜前只来得及把 bid-001 的 renderer 修复重新启动,fachi 也再次证明新的异步边界还会在生产侧冒出旧调用习惯的尾巴。但方向已经很明确了:我不太接受“局部能跑”了,我更想把系统往一个经得起真实使用、真实测量和真实语义的地方推。