Logs
让不同表示重新对齐的一天
这一天真正推动我前进的,不是哪条线又多做了一点,而是越来越不愿意接受不同界面、不同链路和不同表示彼此说不拢。
这一天真正推动我前进的,不是哪条线又多做完了几个点,而是我越来越不愿意接受“这一层看起来已经差不多”这样的答案。可恢复的主证据主要来自本机 Codex、周边 repo 产物和同日文件;Claude 没有留下可用正文,远端 Codex 和 ChatGPT 也因为访问受限没能补上。但剩下来的材料已经足够说明,这一天从读书、做工具到想做移动版 Codex,其实都在逼同一个问题落地:不同界面、不同表示、不同链路,最后到底是不是在说同一件事。
凌晨到下午,注意力先落在阅读上,但它没有停在“把书读懂”这里。我先沿着《人类学历史本体论》第一小节“自由意志的绝对性”慢慢读,把自由意志、绝对律令、人类总体这些概念拆开,再尝试重新组织它们之间的关系。到了下午,线索继续往王德峰身上走,本来还是想做细密的文字分析,可很快又对“纯文本解释”本身不满意,觉得理解如果只能停在段落和评述里,作用还是太弱。于是这条线干脆拐进了一个本地交互应用:起脚手架、做段落和句子的联动、加分析镜头、加命令台,再用浏览器把命令输入和快捷键走通。这里真正往前的,不是“又做了个小网页”,而是我开始更明确地把“讲清楚一件事”理解成一种媒介问题,而不只是多写几段解释。
中午到晚上,文档脱敏工具那条线把这种不耐烦体现得更直接。事情表面上是 staging 环境里的图片文件 PP-OCR 失败,但很快暴露出这不是一个孤立报错,而是多个层面互相说不拢:OCR 链路、手动涂抹、历史记录、定位逻辑、遮罩效果、Word 和 DOCX 的规则、预览里的命中结果、下载后的真实脱敏结果,以及最终 staging 上 secrets 和 envs 的部署方式。于是这条线一天里留下来的,不只是若干 UI 修补,而是一整串把系统重新拉齐的动作:补自由涂抹的撤销和取消语义,完善循环定位,让遮罩和提示更明确,把 DOCX 的查找替换和空白折叠变种处理补进去,再继续往下追 preview 和 download 为什么会对同一段文本给出不同答案,最后连 lvshe_infra 里的 PPOCR_API_ENDPOINT、.envs 和 secret 迁移也一起动了。真正被修的不是某个按钮,而是“同一份文档在不同路径下不该表现成两套东西”。
夜里,Codex App 移动化这条线又把同样的倾向重复了一遍。起点仍然像一个很大的问题:桌面版 Codex 是 Electron,能不能移植到移动端?但真正往前走的时候,关注点很快就不是“换个前端壳子”这么轻,而是必须先承认桌面版到底靠什么成立,它和 app-server 的关系是什么,哪些体验是协议层的,哪些只是 Electron 的外壳,移动端到底该保住什么。于是同一个晚上,既有对桌面结构和协议边界的梳理,也有对 Expo WebView 壳、live websocket 生命周期、shell 渲染、diff 和 token 状态,以及更像桌面版 Codex 的时间线表现的具体推进。它还远没有收口,但方向已经比一句“做个移动版”清楚得多:不是模仿外观,而是尽量让移动端和桌面端围绕同一个协议事实和交互事实长出来。
夹在这些主线之间,早上还有一次前一天公开日志的发布和更新,夜里还有一条关于多 agents 方法论的文章提炼请求。它们都不是当天主轴,但也都指向同一种取向:把经验整理成可复用、可检查、可落到对象上的东西。回头看,这一天最值得记住的,不是我同时做了读书、产品和移动端三件事,而是我越来越不愿意让系统的某一层替另一层撒谎。解释要能落到媒介里,预览要能在下载里兑现,部署配置要对得上运行行为,移动端也要回答它和桌面版究竟共享什么。真正塑造这一天的,就是这股持续的对齐冲动。