Repository navigation
v2.16.6 — 后台静默刷新 + 全量入库 + 批量订阅管理
v2.16.6 — 后台静默刷新 + 全量入库 + 批量订阅管理(R120-R121)
2026-10-19 用户三连实报:①「启动和批量更新订阅源的时候整个工具基本被卡死,无法接受」②「好多订阅源明明内容很多,只会更新出来几篇文章」③「添加进来的订阅源没法批量选择、一键移除」。
R120 后台静默刷新(「刷新即卡死」根治,三层合围)
- 主进程分片让行:单源灌库原为整段一个同步事务(node:sqlite 全同步)——大源直接把主进程事件循环堵死数百 ms~数秒,6 路并发下所有 IPC(点击/滚动/开文)排队。改为每片 20 篇一事务、片间让行:实测 300 篇大源灌库期间事件循环心跳最大间隙仅 169ms,刷新全程界面保持可交互;片内仍合批,WAL fsync 不回退。
- 启动错峰:启动刷新 800ms → 10s(首屏列表/字体/侧栏完全安定后再后台起刷);每日数据管家(窗口函数大 DELETE + FTS 孤儿扫)移出刷新热路径,空闲 45s 后单飞执行(仍在刷新则顺延)。
- 渲染层合批:批量刷新期间行集变化的重拉从「每拍快照全量拉列表+重建 DOM」合批为尾沿 1.2s 一次(最长 5s 兜底),刷新结束立即补拍——灌文高峰的渲染层重绘风暴消失。
R120 全量入库(「内容多只出几篇」根治)
灌文窗口原为 90 天硬窗——全历史源(博客/公众号桥/存档型 feed)被截成只剩几篇,新订阅首抓同样被截。现在:
- 新源首抓不吃时间窗:全量入库,按发布时间新→旧封顶 500 篇(防巨库炸弹);
- 常规刷新窗口 90 → 365 天,存量源的历史篇目随刷新逐步回补;
- 墓碑 + id/url 双去重:已删文章不复活、同文不重复入库。
R121 批量订阅管理(「没法批量移除」根治)
- 订阅管理浮层:侧栏「更多 → 管理」(或订阅源右键「批量管理订阅…」)——按账户/文件夹分组的复选框列表,行点击即选 + Shift 连选区间,搜索即时过滤(重渲染不丢输入焦点/中文组字);
- 批量动作:全选(可见项)/全不选/反选;一键移除(危险色 + 二次确认)、移入文件夹(含新建)、标为已读(徽标即时归零);
- 侧栏 Shift 连选:单击定位锚点、Shift 拉区间直接多选(折叠的文件夹/账户不会被误卷入);既有 Ctrl+点多选与批量右键菜单保留。
质量
- 探针门禁 160 → 162 项(r120:心跳间隙/首抓全量/封顶/365 窗/幂等/housekeeping 让位;r121:连选/过滤全选/确认删除真删/焦点保持锁)
- 独立代码审查 4 项发现全修(搜索焦点/连选锚点/未读徽标/折叠卷入)
- 顺手清理 I18N 历史重复键 1 处
校验和
| 文件 | SHA-256 |
|---|---|
| RobinRead-2.16.6-setup.exe | ef5ad53919870fd71eb12df23c956cbe26983a0635f5035217e5de52bf4816fd |
| RobinRead-2.16.6-portable.exe | 524d2ef6be628ceec8594d8019d195a650b3b64281db6ab7b7cc4ca08c732437 |