v5.2.0
OhGithubLost 5.2.0 · 正式版 / Stable
主题 · Theme — 动画严格按档位分级(降档 = 降质量)、一轮性能优化、以及一次被对抗性探针发现的内核一致性硬化。
Strictly tiered animations (lowering the tier reduces quality, never removes effects), a performance pass, and a kernel-consistency hardening found by an adversarial probe.
变更 · Changed
-
动效改成「按档位给质量」· Animation tiers now mean quality
每一档都保留完整动效,只是开销逐级降低;档位0静默但内容依旧完整呈现:档位 快/中/慢 入场效果 错峰项数 过渡位移 缩放 模糊 0 静默 0 / 0 / 0 无 0 0 无 无 1 保守(默认) 110 / 150 / 190 ms 只淡入 前 4 项 0.012 无 无 2 标准 170 / 220 / 280 ms 淡入 + 轻位移 前 9 项 0.035 无 无 3 拉满 220 / 300 / 380 ms 淡入 + 位移 + 轻微缩放 前 17 项 0.06 0.99 / 0.985 ≤6 Every tier keeps the full vocabulary; only cost drops. Tier 0 is silent but shows all content.
设置项文案随之改为 静默 / 保守 / 标准 / 拉满(15 种语言同步,写清每档做了什么)。 -
入场动画按档位限项 · Bounded entrance animation
OgLAnim.staggerOf()对超出档位上限的序号返回null,OgLReveal见到null
直接静态渲染。此前长列表的每一项都挂动画、且越靠后的项越晚——这是"列表滑动发涩"的常见来源。 -
长列表懒加载 · Lazy long lists
5 处数据驱动长列表改用懒加载(其余保持急加载的已在审计里登记理由):
仓库文件列表 / PR 文件 / 提交文件 →CustomScrollView+SliverList.builder;
议题评论 →OgLAsyncSliver;Actions 作业 →SliverList.builder。
Five data-driven lists now build rows on demand instead of eagerly; bounded lists are
explicitly registered in the audit with reasons. -
窄
MediaQuery选择器 · Narrow selectors
OgLAnim.enabled改用MediaQuery.disableAnimationsOf:列表项不再因为键盘 / 旋转 / insets 变化整列重建。 -
隐藏页停表 · Offscreen pages stop ticking
切 tab 时给隐藏页套TickerMode(enabled: false)。 -
主题缓存 · Theme cache
主题按(亮度 + 种子色 + 密度 + 动效档位)缓存,避免每次重建ThemeData。 -
日志通知合并 · Coalesced log notifications
批量写日志时把通知合并为同一事件循环一次(微任务,不引入计时器;数据仍逐条入表)。
新增 · Added
- 内核一致性硬化:清单 ↔ 运行期模块交叉校验 · Manifest coverage cross-check
引导清单声明了某模块、装配时却没提供它,此前既不拒绝也不留痕;现在记为
OGL-BOOT-108(warn 级诊断 + 引导信任告警)——仍可启动,但一定留痕。附回归用例。
Found by a throwaway adversarial probe: a declared-but-never-assembled module is now
recorded asOGL-BOOT-108instead of passing silently. - CI 门禁扩到四个维度 · Four CI gates
layer_audit(依赖只能向下)、i18n_scan(界面文案 0 遗漏 / 分片键集合一致)、
motion_audit(动画必须走档位质量表,禁止硬编码时长 / 缩放 / 模糊)、
perf_audit(禁止shrinkWrap与过宽MediaQuery.of)。
修复 · Fixed
- 修掉
issue_page在列表懒加载改造中丢失「发表评论」输入区的问题
(由 CI 的unused_element警告当场拦下,已按原文恢复)。 - 修掉主题切换 / 切换 tab / 下载进度 / 引导翻页绕开档位硬编码时长的问题。
已知限制 · Known limitations
- 分片下载的暂停 = 重新开始(不假装续传);单连接库任务的断点续传不受影响。
- 数量有界的列表(关于 / 账号 / Gist 文件 / Release 附件 / 工作流 inputs / 分支弹层)
刻意保持急加载:数据量小,懒加载反而多一层每帧判断。 - 桌面端仍使用库下载;分片引擎按
Range能力自动判定。 - 翻译由 AI 产出并通过格式 / 占位符校验,未逐条人工校对。
产物 · Artifacts
Android(arm64-v8a / armeabi-v7a / x86_64 / universal APK / AAB)、Windows、Linux、macOS、iOS,以及引导清单 boot-manifest.zip —— 共 19 个文件。
Android (arm64-v8a / armeabi-v7a / x86_64 / universal APK / AAB), Windows, Linux, macOS, iOS plus the signed boot manifest — 19 files in total.