qwen-code/packages
wenshao 8fa7f4c498 perf(core): cache repeated fs lookups on tool hot path
Each tool invocation went through validatePath → isPathWithinWorkspace
→ fullyResolvedPath, plus its own existence/dir checks. The same paths
got re-resolved across back-to-back tool calls, and ripGrep re-
discovered .qwenignore on every Grep.

- workspaceContext.fullyResolvedPath: bounded LRU on input path
  (1024, FIFO). Failed resolutions are NOT cached so retries work.
- paths.validatePath: cache positive isDirectory results; ENOENT
  falls through every time so a freshly created file is picked up
  immediately.
- ripGrep: module-level caches for searchPath-is-dir and per-dir
  .qwenignore presence (256 each, FIFO).
- fileUtils.processSingleFileContent: drop the existsSync gate;
  let fs.promises.stat throw ENOENT and convert to FILE_NOT_FOUND
  in catch.

Trace: 20 → 10 sync I/O calls. Cumulative reduction since the
chat-recording change: 110 → 10, -91%. All 6057 core tests pass.
2026-04-24 14:28:28 +08:00
..
channels chore: bump version to 0.15.1 (#3541) 2026-04-23 11:06:07 +08:00
cli fix(cli): remove residual blank lines after MCP init completes (#3509) 2026-04-24 09:50:20 +08:00
core perf(core): cache repeated fs lookups on tool hot path 2026-04-24 14:28:28 +08:00
sdk-java Fix typo in class name (#2189) 2026-04-18 11:59:36 +08:00
sdk-typescript fix(sdk): settle pending next() promise in Stream.return() to prevent hangs (#2981) 2026-04-18 09:46:56 +08:00
vscode-ide-companion chore: bump version to 0.15.1 (#3541) 2026-04-23 11:06:07 +08:00
web-templates chore: bump version to 0.15.1 (#3541) 2026-04-23 11:06:07 +08:00
webui chore: bump version to 0.15.1 (#3541) 2026-04-23 11:06:07 +08:00
zed-extension chore(zed-extension): update package version to 0.10.0 2026-02-06 14:26:01 +08:00