Skip to content

【性能】文件面板热路径重复同步 IO:线程索引无缓存重读 + workdir resolver 每次全量扫描 workspace #170

Description

@CavinHuang

位置

  • 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"已收敛"标记)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions