来源
PR #186 修复 #130 时的 subagent 审查发现。#130 已闭合两条增量丢弃路径(FIFO 淘汰/评论截断经 hooks 即时清理),但修复前已累积的存量孤儿 PNG 不会被回收,仅能手工清理。
关键约束(审查确认,做 GC 前必读)
朴素 GC(只扫 annotation sessions 引用)会误删:
saveReviewScreenshot(apps/desktop/src/browser-runtime.ts,创建 browser-review-screenshot:<threadId>:<uuid>)的 ref 完全不经过 store——文件存在但任何 session 都不引用
- 已提交聊天的附件(
browser:annotation-added 携带 screenshotRef)持久化在 thread 历史里,同样不在 store refs 内
因此 GC 的引用集必须 = store sessions refs ∪ thread 历史(消息附件)refs ∪ 运行期 saveReviewScreenshot 产物,三者并集之外的文件才可删。
位置
apps/desktop/src/browser-annotation-manager.ts(可作为 GC 宿主,已有 review-resources 目录知识与 ref 正则)
- 数据源:annotation-sessions-v2.json + thread 持久层(消息附件)
建议
关联
来源
PR #186 修复 #130 时的 subagent 审查发现。#130 已闭合两条增量丢弃路径(FIFO 淘汰/评论截断经 hooks 即时清理),但修复前已累积的存量孤儿 PNG 不会被回收,仅能手工清理。
关键约束(审查确认,做 GC 前必读)
朴素 GC(只扫 annotation sessions 引用)会误删:
saveReviewScreenshot(apps/desktop/src/browser-runtime.ts,创建browser-review-screenshot:<threadId>:<uuid>)的 ref 完全不经过 store——文件存在但任何 session 都不引用browser:annotation-added携带 screenshotRef)持久化在 thread 历史里,同样不在 store refs 内因此 GC 的引用集必须 = store sessions refs ∪ thread 历史(消息附件)refs ∪ 运行期 saveReviewScreenshot 产物,三者并集之外的文件才可删。
位置
apps/desktop/src/browser-annotation-manager.ts(可作为 GC 宿主,已有 review-resources 目录知识与 ref 正则)建议
browser/review-resources/<threadId>/,对照上述并集删除无引用文件关联