位置
apps/sidecar/src/services/agent/agent-thread-manager.ts:243-245(getAgentThreadMeta 每次 readFileSync+JSON.parse 整个线程索引,无缓存;被 25 个文件调用)
apps/sidecar/src/services/agent/agent-workdir-resolver.ts:118-159,282-289(每次走 migrateLegacyThreadRoot:readdirSync 全部 workspace + 每 slug 两次 existsSync/statSync + 跨进程锁)
- 叠加:
agent-files-service.ts 几乎每个导出函数经 resolveSessionDir(:92-101) + getThreadAttachmentScope(:113-127) 各触发一遍上述两条链
问题
单次文件面板 IPC(列目录、附件保存、搜索)叠加 2-4 次全量 parse + 2-4 次目录扫描;文件面板树常驻与搜索场景高频触发,Windows 上 stat 成本显著。
修复建议
线程索引加 mtime 失效缓存;migrateLegacyThreadRoot 在 marker 存在且 legacy root 已确认不存在后短路(进程内 memo"已收敛"标记)。
位置
apps/sidecar/src/services/agent/agent-thread-manager.ts:243-245(getAgentThreadMeta 每次 readFileSync+JSON.parse 整个线程索引,无缓存;被 25 个文件调用)apps/sidecar/src/services/agent/agent-workdir-resolver.ts:118-159,282-289(每次走 migrateLegacyThreadRoot:readdirSync 全部 workspace + 每 slug 两次 existsSync/statSync + 跨进程锁)agent-files-service.ts几乎每个导出函数经 resolveSessionDir(:92-101) + getThreadAttachmentScope(:113-127) 各触发一遍上述两条链问题
单次文件面板 IPC(列目录、附件保存、搜索)叠加 2-4 次全量 parse + 2-4 次目录扫描;文件面板树常驻与搜索场景高频触发,Windows 上 stat 成本显著。
修复建议
线程索引加 mtime 失效缓存;migrateLegacyThreadRoot 在 marker 存在且 legacy root 已确认不存在后短路(进程内 memo"已收敛"标记)。