2026-10-31 设置、主题、网页与文档审阅修复
本批承接 2026-10-31 的浏览器与源码审阅。代码基线为 81ce93574,文档基线为 cf28e852d,网页编辑器基线为 ffa77d3。主代码在 fix/review-20261031,文档在 fix/docs-review-20261031,网页编辑器直接提交到其默认分支 site。本页记录本批行为与验证,不替代后续版本的验收。
逐项处理
| 审阅编号 | 处理结果 | 验证与边界 |
|---|---|---|
| 1 | 图片写入独立资源目录,最后原子发布主题定义;失败只清理本次暂存资源 | 故障注入检查原图和旧定义不变、完整图片先于定义发布 |
| 2 | 合成覆盖重建仅在 API 29+ 使用 suppressLayout | Lint 检查 API 分支;保留低版本重建及按住按键的延迟替换逻辑 |
| 3 | 恢复页面使用 ComponentActivity 的返回回调 | 不继承会读取设置或启动引擎的普通设置基类 |
| 4 | 动画恢复默认按旧值与目标值差异决定是否重建 | 从开启与关闭两种状态执行恢复默认的 JVM 页面测试 |
| 5 | Activity 恢复时不重放最初的 ACTION_RUN 快捷入口 | 新 Intent 仍执行请求的导航 |
| 6 | 主题草稿、原始身份与私有裁剪文件引用进入保存状态;脏状态退出提供保存、放弃、继续 | 全新 Activity 恢复及退出确认测试;不传递大 Bitmap |
| 7 | 图片主题在后台按显示尺寸加载;尺寸观察改为布局事件并异步更新 | 补测发现并移除每帧自调度的轮询 |
| 8 | 编辑器等待完整持久化成功后返回,主题列表不再在结果回调里同步写盘 | 失败留在编辑器;原主题资源保持可用 |
| 9 | 主题网格装饰器读取当前列数 | 宽度 360→800→360 与相同宽度新网格的实际间距比较 |
| 10 | 预览限宽与高度共用计算基准,移除窄窗口强制拉伸规则 | 本地浏览器 1440/980 px 下首排均为 576 px;CI 覆盖 980/981、1080/1081 等边界 |
| 11 | 既有 QR/ZIP 组件改为按需加载,有超时、去重及重试 | 普通编辑不请求这些 CDN;组件加载器的成功、超时和重试测试 |
| 12 | 主题卡片操作目标扩大到 48 dp,说明文字使用语言资源 | 原生画面验收仍须使用设备截图 |
| 13 | 选图使用 setDataAndType 保留 URI | Lint 的 Intent 重置告警消除 |
| 14 | 修正版本契约、菜单与 tint 属性、格式字符串及受限 API 使用;补齐缺译 | 使用公开的 Preference 位置回调;完整 Lint 作为 CI 门禁 |
| 15 | 原子替换、路径、数据库与 TLS 测试夹具支持宿主环境 | Windows 链接权限不足时显式标记不可执行;Linux 门禁要求零跳过 |
| 16 | 新增动画开启的真实边缘返回测试与 API 34/35/36 矩阵 | 五个用例覆盖四种页面动画、连续返回、搜索态、未保存主题和主题页横滑;完整系统镜像确认 SystemUI、手势导航和桌面焦点,设备 XML 要求零跳过 |
| 17 | 推页效果明确命名为横向/纵向页面滑动 | 既有样式值、速度档位和预测性返回默认值保持兼容 |
| 18 | 主题预览监听、图片任务及 ViewPager 随视图销毁清理 | 取消已失去视图的图片任务 |
| 19 | 设置搜索按语言缓存检索文本,每次查询只分词一次,并复用结果行 | 搜索覆盖与匹配规则测试 |
| 20 | 网页高亮每轮只验证一次布局;输入重绘合帧,草稿写入合并 | 保留离页补写和每次明确应用的撤销边界 |
| 21 | 网页点键后聚焦属性字段,Escape 经草稿检查回到原按键 | 本地浏览器与完整交互回归 |
| 22 | 语音归入输入与候选;主题页区分主题库和全局键盘样式 | 同步分组表、搜索路径与用户手册 |
| 23 | 目录筛选写入 URL,记录返回位置,并优先显示上手和手册 | 搜索布局后进入文章再返回,仍为同一筛选结果 |
| 24 | 站内搜索默认现行文档,可包含历史与上游参考;目录支持参考类型 | 本批最终内容下,“预测性返回”本地检查为现行 5 条、包含历史 15 条 |
| 25 | 首次导入方案提示移到安装入口附近,缩短首页标题并展示 Android 模拟器实测预览 | 首页截取主题编辑器的键盘区域,保留原始全屏截图用于验收;补修窄屏负边距和桌面图片位移导致的遮挡,网页预览另放在线编辑器功能页 |
验证记录
代码首批提交 1d58fbbcc 的 Linux CI 已完成:174 份 JUnit 报告、1,388 个用例,失败、错误、跳过均为零;ARM64 Debug 和原生依赖审计通过。该结果对应首批代码,不自动替代后续补充测试与语言资源提交。
网页编辑器 4bfb202 的 Editor checks 已通过 118 项 Node 测试及完整 Chromium 交互、几何回归,GitHub Pages 部署成功。首次接入 CI 时暴露的路由事件先后顺序已改为等待实际 Route 回调,未放宽图标请求去重断言。
Windows 验证中的符号链接能力不足与真实失败分开报告;不把本地跳过计作通过。原生动画、取消返回及 Android 画面最终以已启用的设备回归结果为准。没有运行的项目不会沿用旧报告的成功结论。
补充修复包含主题预览布局监听、草稿恢复与网格缩放回归,以及德、西、日、韩、俄语缺译。最后一轮本地验证为 176 份 JUnit 报告、1,390 个用例,零失败、零错误,29 个 Windows 符号链接用例因权限不足跳过;Lint 为零错误、681 条警告。ARM64 Debug、测试 APK、打包白名单和原生链接审计均已通过。修复分支的 Linux CI 继续要求所有用例零跳过。
设备门禁补跑发现并修正了两类夹具问题:原手势镜像缺少 SystemUI,不能接收系统边缘返回;原剪贴板页面测试没有提供记录 ID,触发了页面正确的关闭行为。手势矩阵改用完整镜像,剪贴板测试通过真实数据库记录打开页面并等待加载完成。完整镜像首次开机与编译并行时还出现桌面无响应,后续将编译前移,并在测试开始前验证桌面就绪;这些失败记录不计为验收成功。
最终验收
产品代码及 Kotlin 测试对应 6ae4484cd 的 PR CI 已通过。其后的代码分支头 85b1a500b 仅调整设备工作流和手势运行脚本,对应 Material settings UI 四个节点全部成功。
| 门禁 | 报告与实际用例 | 结果 |
|---|---|---|
| Linux JVM | 176 份报告、1,390 个用例 | 失败、错误、跳过均为 0 |
| ARM64 Debug、Android Lint、APK 与链接审计 | PR CI 的 Debug 节点 | 全部通过,Lint 零错误 |
| API 34 系统手势 | 1 份报告、5 个用例 | 失败、错误、跳过均为 0 |
| API 35 系统手势 | 1 份报告、5 个用例 | 失败、错误、跳过均为 0 |
| API 36 系统手势 | 1 份报告、5 个用例 | 失败、错误、跳过均为 0 |
| Material 设置页面 | 1 份报告、6 个用例,含亮暗模式控件检查 | 失败、错误、跳过均为 0 |
| 网页编辑器 | 118 个 Node 用例及 Chromium 交互、几何检查 | 通过,site 分支部署成功 |
| 文档站 | 构建、链接、原站完整性、目录四项门禁;桌面与手机浏览器检查 | 通过 |
三个手势节点的环境记录均确认手势导航模式为 2,系统动画三项缩放均为 1;完整 XML、全屏截图和日志保存在该次 CI 的 settings-navigation-api-34/35/36 产物中。首页图片来自 API 36 主题编辑器截图的键盘区域,明确标注模拟器来源;图片裁切不替代原始全屏验收证据。
本轮没有运行实体设备回归和性能 A/B,不据此承诺性能提升比例。Windows 的 29 个链接权限跳过已由 Linux 的零跳过结果补齐;本地 Lint 仍有 681 条 Warning,主要包括 248 条 LogNotTimber 和 178 条 UnusedResources,没有将这些告警宣称为已清零。
保持的边界
只保留 Rime 直连后端,未移动引擎子模块 pin。输入 ticket、事件保序、候选分页代次与原生维护门控不变。Debug 仍使用独立包名,APK 不附带中文方案。主题原有日夜偏好继续使用既有类型;页面配色与键盘配色保持独立。冻结的旧站正文及原始历史证据未改写。