Agent Timeline v0.7.1
分页交互轮:双端「加载更多」按钮改为滚到底自动加载;修一个设置窗口的 i18n 遗留 bug。
变更(双端)
- 分页入口:撤掉底部「加载更多」按钮,改为滚到底自动加载。起因是用户看 Windows
主窗口底部那颗按钮,判断它像多余功能——核实结论是功能不多余,入口形式多余:
真实库轻松涨到成百上千条,不翻页只能看最新一批;但按钮常驻占一行(Windows)/
需要手动点击(mac)都不够顺手。改成滚到接近底部即自动取下一页,按钮撤掉:- Windows:判据抽成
Core/PanelGeometry.ShouldLoadMore纯函数(9 条断言,逐闸
变异反证);顺带把重排套用方式从「每次Clear()整表重加」改成保留公共前后缀、
只动真变的槽位(新增Core/ItemDiff.cs)——自动翻页后单次会话轻松涨到两三千条,
每来一个新节点都要重排一次,冒烟 421 → 432; - macOS:
TimelineView.swift里的按钮换成LazyVStack尾部一个近乎不可见的哨兵
视图,靠惰性渲染「进入视口才实例化」本身当滚到底判据,loadMore()加重入门;
用真实二进制 + 一次性合成的 3000 条数据集实机验证,90 步慢滚(约 540 次滚轮
事件)精确触发 2 次加载(500→1000→1500),未见连锁拉全库;swift test89 → 92; - 两端都复现但都未修的存量缺陷:把滚动条直接拖到最底(或等价的一次性大跳)
会让正文稳定空白、小幅回滚不自愈,只有大幅滚开才恢复。Windows 端是
ItemsRepeater对未测量内容的 extent 估算问题;macOS 端LazyVStack复现了
几乎相同的症状。均已确认与本轮改动无关(Windows 用 worktree 对照过旧版本一样
会空白),留作已知问题、不阻塞本次发布; design/strings.json的timeline.loadMore键保留不删——两端代码都不再引用,
但它不是存储契约,留着不影响门禁,将来想加回来也不必重新过一次双端同源关。
- Windows:判据抽成
修复(macOS)
- 设置窗口标题的语言硬编码。
AppDelegate.openSettings()里window.title写死了
一段中文拼接字符串,四语接线那轮漏改,导致设置窗标题不跟随界面语言切换;改用
Strings.f("app.settingsTitle", version),并在语言切换通知里补一次刷新(此前该
通知只重建了状态栏菜单,没重设已经打开的设置窗标题)。
内部
- 演示数据集补齐日语/韩语正文(
scripts/demo_dataset.py):此前 Ja/Ko 只能切
界面 chrome、时间线内容退回英文;现补上 12 条节点 + 6 个代号定义 + 1 条调研摘录
的自然日语/韩语翻译(非逐字机翻),scripts/check-demo-dataset.py从硬编码
zh/en 泛化为遍历四语的结构一致性 + 文案两两不同 + 两端等价校验。纯开发/截图
工具链改动,不影响已发布二进制。