分身跑了一阵子,忽然有人发现自己的会话截图不见了——不是谁删的,是后台的「孤儿图片回收」把它们当垃圾清掉了。这事儿发生过两次,根因都是回收逻辑只按「孤儿库自己的引用」判断,没把活跃账号正在用的图算进保护集。v0.5.3 给这段清理逻辑加了三道护栏,让「该删的删、不该删的一个都不碰」。
会话图片不再「莫名消失」
- 先算保护集再回收:回收前先并集所有活跃库引用过的图片,命中保护集的一律不动。即使同一张图被活跃库和孤儿库共享,也只删孤儿库那份引用、绝不打穿活跃账号。
- 身份存疑就停手:账号身份没解析准(拿到的是兜底键)时,整轮跳过回收、只记日志——宁可少清理,也不删错。这是 fail-closed 的设计:判断不可靠时,默认不动手。
历史图片缺失时不再满屏破图
此前若某张图片文件已不在磁盘,会话详情页会直接渲染出浏览器的破图图标,一长串会话看下来满屏裂图。v0.5.3 让前端在图片加载失败时自动降级为「图片已不可用」占位,不再出现破图;并且只处理本站图片接口的失败,外部链接图片不受影响。
升级注意
无破坏性变更,无新增必填配置。图片回收与展示都是内部行为,对外接口与配置项完全不变——你什么都不用改。