微信输入法场景的两段慢窗口

最近一段时间的诊断一直在追同一个场景:固定原微信输入法同条件对照,重点抓取 316ms 和 819ms 这两段慢窗口的 renderer 调用栈,先把责任分清楚再说修不修。换句话说,CUA、输入法、宿主三个嫌疑方,今天的判断依然是"先别动手"。

今天有一个比较干净的进展:renderer03 的校准条件通过了。记录显示,673 个主 renderer 样本里有 355 个包含校准函数,其中 354 个完整落入 60.1ms 校准窗。±100μs 模型的前后桥交集宽约 42μs;零误差模型的尝试则被显式标注为失败并保留了下来。回执落在 ROOT/evidence/renderer03-calibration-stack-clock-receipt.json,结论是只分析了冻结材料,没有读取 live 日志,也没改动现场。

在这条线的更远处,今天还做了一件看起来很克制的事:把"准备"的边界划得更清晰。一段对话自述已经把命令参数写得很硬——C 段使用 --condition C --focus-target-ms 12600 --focus-tolerance-ms 1000,E 段使用 --condition E --focus-target-ms 74220.4 --focus-tolerance-ms 1000——并强调各段必须独立指定,字面意思就是这一轮不打算再混着跑。结果线索也保持了同一种克制:准备完毕,没有读 live 日志,没有运行分析,也没有操作现场。

中文场景今天拿到了一些新材料。"你好"作为同窗补测已经确认:两段首键分别是 0.5ms 和 0.3ms,14 个唯一配对事件全部低于 100ms;其余提交存在配对歧义,没有被吞进结论里。还有一段自动输入提交了两次"拟好",并且结束时选中的是 Ajin,和最初的微信场景并不完全一致,会话自述提到已经把它单列记录、不和原场景混算。316ms 和 819ms 两段目前都还没有唯一归因,结论依然是暂不修产品。

最后是最显眼的那个数字:819.8ms 的一条自然慢样本,今天通过独立的 native04 抓到。同窗里还有一个 838ms 的 longtask,主要延迟落在 renderer 的事件间隔上。会话自述同时坦率地补了一句——这一轮缺少原生栈,仍然不能唯一归因到 CUA、输入法或宿主,也不能直接认定它和早先 316ms 是同一个原因。native04 本体"已交付、未启动、未安装",可执行文件、回执和启动脚本都已就位,但都被显式挂起了。中文组合在这一轮也没有核实通过。所有既有修改和蓝图主线都保留,没有提交、安装或部署。

博客仓库的一次小修和它的核对链

博客仓库这边的动静相对收敛,但今天花了不少对话在做收尾核对。一段对话自述提到,最终核对通过:本地 main 和 GitLab origin/main 完全一致,摘要去重那 5 个文件都已推送,工作区干净。四个引用——当前 HEAD、本地 main、本地跟踪引用 origin/main,以及 git ls-remote origin refs/heads/main 实时读出来的远端——指向同一个 SHA。另一段独立只读核对也印证了这件事:本地 main 的实际 SHA 为 3e3464bfaa36f30bfb1ca755547fad2010d572d,刚好就是摘要去重那次提交,提交标题是 fix: 修复文章截断摘要与首段重复显示,git show --stat 也确认那次提交只动了一个指定的 5 个文件。

在那之前,对话还做了几件边界很清楚的小事:把 .codex/config.toml 加进了本地 .git/info/exclude,文件本身保留不动,仓库的 .gitignore 没改,没有提交、没有推送、也没有部署。.claude-progress.md 和 .codex-projects.md 这两个历史任务记录,被独立判断为"还有历史追溯价值,但不承担发布状态、恢复进度或构建配置职责",然后完整备份到仓库外、只把这两个文件恢复到 HEAD。会话自述强调的是同一句话:恢复到 HEAD 版本不会改动文章、封面、已发布代码、cron 配置或真实运行回执,只是把那份 4 月的历史 agent 记录还原回去。

再往上回溯一段,是当时对剩下未提交改动的一次盘点:HEAD 是 6eca7b2,8 个未提交文件——6 个已跟踪、2 个未跟踪——大致分成三组。其中"文章摘要与正文首段重复的修复"那 5 个文件,就是之后提交、推送的 3e3464b;.claude-progress.md 和 .codex-projects.md 被讨论后决定备份并恢复;.codex/config.toml 则被本地 exclude 留住。今天的最后一轮对话还把这一天的状态明确封了一下:"这轮先到这里,保持当前状态,不再修改、提交、推送或部署。"