diff --git a/packages/coding-agent/src/tools/find.ts b/packages/coding-agent/src/tools/find.ts index 2f011349b..c26f4df62 100644 --- a/packages/coding-agent/src/tools/find.ts +++ b/packages/coding-agent/src/tools/find.ts @@ -244,6 +244,7 @@ export class FindTool implements AgentTool { maxResults: effectiveLimit, sortByMtime: true, gitignore: useGitignore, + signal: combinedSignal, }, onMatch, this.session.searchDb, @@ -252,9 +253,12 @@ export class FindTool implements AgentTool { try { let result = await doGlob(true); - if (result.matches.length === 0) { + if (result.matches.length === 0 && !timeoutSignal.aborted) { result = await doGlob(false); } + // Sort by mtime descending (most recent first) in JS instead of native. + // This allows native glob to early-terminate at maxResults. + result.matches.sort((a, b) => (b.mtime ?? 0) - (a.mtime ?? 0)); matches = result.matches; } catch (error) { if (error instanceof Error && error.name === "AbortError") {