搜索文档

输入关键词查找当前使用指南和维护文档。

Skip to content
中州鹅 · 历史记录与验证证据文档目录

结论、提交、测试结果与安装包均对应文中记录时点。日常操作以现行维护手册为准。

草稿保存一致性与后台 JSON 准备 · 2026-10-26 ​

本轮继续修复 perf/direct-rime-startup-20261024 的草稿保存链路。完整来源与验证边界。

保存一致性 ​

  • 用实际 JSON 内容去重,避免 {"label":"Aa"} 与 {"label":"BB"} 的相同 String.hashCode() 导致后一次编辑漏存;从文件读回的草稿同样按内容判断。
  • 先写同目录唯一临时文件,再通过 rename 发布完整版本。写入或替换失败时,旧的完整快照保持可用;生命周期 Bundle 在大草稿保存失败后保留上一份成功快照的引用。不能据此保证失败前最新一次编辑已经落盘。
  • 拒绝草稿文件软链接,包括指向同目录另一草稿的链接;过期临时文件只清理本存储器严格命名的文件。
  • 发布前注入异常/替换失败测试验证旧文件不受损、临时文件清理与再次保存。该验证覆盖进程中断窗口的文件状态,不代表物理断电持久性或 fsync 保证。

第一批完整构建与回归日志保留。

后台 JSON 准备 ​

已完成的编辑操作复用撤销历史中的独立深拷贝,在 Dispatchers.Default 生成 JSON。ViewModel 保管缓存,不持有 Activity;只有一个编码任务,连续请求只保留最新待处理文档。页面所有者销毁会取消任务与完成句柄,旧版本不会发布到缓存。

onSaveInstanceState 读取缓存前逐段比较当前布局、嵌套宏、横竖屏高度、辅助栏配置与按键。内嵌表单的未完成编辑不会误用较早快照;缓存缺失、准备失败或内容不匹配时保留原同步导出兜底。序列化失败也尝试保留已有成功快照引用。

D7 仍是部分修复:上述兜底仍可能在 Main 序列化;生命周期草稿文件写入也仍在 Main。不能将后台准备等同于保存全过程已移出主线程。

验证 ​

  • 完整 JVM 统计与草稿用例:1002 项应用 JVM、6 项构建逻辑测试通过,失败/错误/跳过均为 0。本批新增 8 项实际临时文件测试和 11 项后台缓存测试。
  • 最终复跑日志:覆盖独立快照、后台线程、逐段内容失配、合并待办、失败重试、关闭前后取消以及与原导出格式一致。用例为 JVM 测试,不冒充设备杀进程验收。
  • Python 包校验 4 项通过。
  • 本轮未重新安装模拟器;上一批设备记录的运行代码仍为 6f96066b,不将其作为本轮新运行代码的设备验证。本轮未测真机启动/按键延时或堆峰值。

构建范围与原清单 ​

用户于 2026-10-26 明确仅需 arm64-v8a,四 ABI 覆盖待办 P2-15 按需求关闭,不计作代码缺陷修复。发行工作流保持 ARM64,未扩展四 ABI 构建矩阵。

原 139 条对照仍有 8 条需处理(4 条仍存在、4 条部分修复),另有 3 条待验证。本批补充发现不额外扣减旧报告条目。

远端安装包 ​

CI 40269824527 的 JVM、Python 包校验、签名 ARM64 Release 构建和包内检查均成功。下载本批 ARM64 Release,对应 7ec08c8e。

APK 校验输出来自 CI 构建作业日志:仅 arm64-v8a 的 direct-rime/c++ 原生库、16 KiB 对齐,固定规则与许可证均通过检查。CI 及产物元数据包含源提交和散列;本轮没有将 Release 安装到真机。