Logs
把玄学边界变成可验证问题
这一天的主线不是单点突破,而是持续把登录、排版和输入链路里的模糊故障压成可定位、可验证的问题。
4 月 12 日的工作没有落在某一个项目突然冲出大版本上,而是反复把那些看起来像玄学的边界问题,往可定位、可验证、可继续推进的方向改写。当天最稳定的方向感,不是“又做了几件事”,而是开始更执着地把模糊故障拆成明确的输入边界、测量方法和责任段落。
白天最先有清晰结果的是 easyvoice-stack。Windows 迁移后,新注册用户不能登录,这类问题很容易停在“环境变了所以哪里不对”的模糊判断里,但当天推进把它一路压到了认证链路、数据库现实和邮箱规范化上,最后形成了针对注册、验证、密码找回和 email normalization 的提交证据。这里真正重要的,不只是修掉了一个登录问题,而是把“迁移后的不稳定”拆成了可以提交、可以复查的边界。
真正吞掉大部分注意力的还是 openword。这一天它的推进方式,比“继续补 WPS 对齐 bug”更关键: 一方面继续跑循环,另一方面开始更系统地给偏差分类。page count 不够,就去补 geometry capture;知道存在 mismatch 还不够,还要继续分清是空段落 exact 行距、页眉页脚锚定、表格结构、section break,还是某些真实样本文档里的 docGrid、显式分页和大公式对象在共同作怪。当天留下的价值,不只是把某个数字继续往上推,而是把“如何测量偏差”这件事本身收紧了。
moonlight-ex 在做的其实是同一种工作,只是对象从文档布局换成了输入链路。表面问题是 Android 虚拟键盘的 composition 输入不对,往下拆却一路穿过 InputConnection、Game、JNI 的 sendUtf8Text,再到 Sunshine 在 macOS 侧的 Unicode 注入能力和包长限制。当天还没有形成像 easyvoice-stack 那样干净的提交,但关键进展是先证明了问题不在单点,而是在 Android、JNI、协议和宿主实现之间的边界。
回头看,这一天最重要的变化不是某一条功能线单独收口,而是把后续工作从碰运气,往可复现、可解释、可继续交给循环推进的方向推了一大截。登录失败、渲染偏差和输入异常都还没有彻底结束,但至少已经不再只是“现象很怪”,而是逐步变成了结构化、可继续逼近的问题。