deepseek-harness/packages/fs/tool-fs-search/src
Huanqi Cao 601fb9d195 fix(fs-search): address the second-round #1119 review
- inline the collect() identity wrapper now that both streams use the
  seam's diagnostic-tail shape
- resolve the packaged rg path lazily at the first call (memoized):
  @vscode/ripgrep resolves its platform package at module evaluation, so a
  static import turned a missing/corrupt platform package into a Loader
  composition failure instead of the documented per-call SEARCH_FAILED
- classify synchronous spawn-creation throws (a NUL in argv, an abort
  racing the pre-check, a rejected resolution) into SEARCH_FAILED /
  SEARCH_ABORTED instead of leaking raw errors
- correct the stderrMaxBytes contract: the stderr excerpt is embedded in
  SEARCH_* error messages, not hidden from the model
- export virtualManifest and pin its three acceptance paths (prefix hit,
  pnpm-11 truncated-name content-scan fallback, both miss) with fixture
  unit tests

Tests: rg-path.spec.ts (resolution failure + memoized rejection),
tools.spec.ts spawn-creation classification, notices spec virtualManifest.
2026-08-02 01:11:08 +08:00
..
glob.ts refactor(fs-search): apply #1119 review fixes to the packaged-rg spawn 2026-08-01 21:56:16 +08:00
grep.ts refactor(fs-search): apply #1119 review fixes to the packaged-rg spawn 2026-08-01 21:56:16 +08:00
index.ts fix(fs-search): address the second-round #1119 review 2026-08-02 01:11:08 +08:00
invariant.ts fix(invariants): assert runtime relationships, not API shapes 2026-07-20 19:34:19 +08:00
presentation.ts Merge remote-tracking branch 'origin/master' into feat/search-presenter 2026-07-31 11:31:32 +08:00
ripgrep.d.ts feat(fs-search): spawn the packaged ripgrep binary through the subprocess seam 2026-08-01 18:04:38 +08:00
search-core.ts fix(fs-search): address the second-round #1119 review 2026-08-02 01:11:08 +08:00
surface.ts feat: add canonical typed tool outputs 2026-07-21 03:22:14 +08:00