feat(fs-search): spawn the packaged ripgrep binary through the subprocess seam

glob/grep now run the @vscode/ripgrep binary via ctx.subprocess with a plain
argv vector: no system rg install, no shell layer, unconditional registration.
The load-time command -v rg probe and the bash-seam coupling are removed;
timeouts ride the cooperative exec.signal plus the seam's terminate
escalation. The fs-glob-sampling ACP snapshot executes the real packaged
binary against an mtime-pinned fixture. Adds the packaged-ripgrep-search
Agent Note, updates the roster-note facts and both shipped-composition e2es,
and regenerates the doc catalogs and third-party notices (surfacing
pre-existing manifest drift plus the new @vscode/ripgrep row; the notices
generator also learns pnpm 11's truncated virtual-store names).
This commit is contained in:
Huanqi Cao
2026-08-01 18:04:38 +08:00
parent de520bee24
commit 18700f428d
32 changed files with 923 additions and 699 deletions

126
pnpm-lock.yaml generated
View File

@@ -2931,6 +2931,9 @@ importers:
packages/fs/tool-fs-search:
dependencies:
'@vscode/ripgrep':
specifier: ^1.18.0
version: 1.18.0
schemastery:
specifier: ^3.18.0
version: 3.18.0
@@ -2938,12 +2941,6 @@ importers:
'@deepseek-ai/dsh-agent':
specifier: workspace:^
version: link:../../core/agent
'@deepseek-ai/dsh-bash':
specifier: workspace:^
version: link:../../bash/bash
'@deepseek-ai/dsh-bash-local':
specifier: workspace:^
version: link:../../bash/bash-local
'@deepseek-ai/dsh-invariants':
specifier: workspace:^
version: link:../../support/invariants
@@ -2959,6 +2956,9 @@ importers:
'@deepseek-ai/dsh-spill':
specifier: workspace:^
version: link:../../spill/spill
'@deepseek-ai/dsh-subprocess':
specifier: workspace:^
version: link:../../subprocess/subprocess
'@deepseek-ai/dsh-subprocess-local':
specifier: workspace:^
version: link:../../subprocess/subprocess-local
@@ -9010,6 +9010,69 @@ packages:
'@vitest/utils@4.1.8':
resolution: {integrity: sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==}
'@vscode/ripgrep-darwin-arm64@1.18.0':
resolution: {integrity: sha512-r3ktHSvbFycQNF6sl7sNDPocpsI7J+mEzh1IaZFkY0spm3k2Z9t8hPAeOK7+p0l6p6/swkQC14XWX01low+94Q==}
cpu: [arm64]
os: [darwin]
'@vscode/ripgrep-darwin-x64@1.18.0':
resolution: {integrity: sha512-25b4gWbL138dGuQU244ebCKKc0q05ULBMoFSz9oAEUHNeqK/lOJViDS7DRvbDazzAzSEdan391Znks/R5mkaTQ==}
cpu: [x64]
os: [darwin]
'@vscode/ripgrep-linux-arm64@1.18.0':
resolution: {integrity: sha512-lQ/5zTG++U0E3IhVgS4EPTTn/U4okncaRMM5GOFfOYZywS4nuD31GhkHbNYlDk5CuDC68+hYJ0/eQeyCKJDA+g==}
cpu: [arm64]
os: [linux]
'@vscode/ripgrep-linux-arm@1.18.0':
resolution: {integrity: sha512-GDAvufNDHu8zqLEmXstalQF0Wh6wQvdsBi/Vg3Yi3CK4a8XoFXqqXVEHEZ9xQz3t0NfoSEc9JbvK9DDS6FxyxQ==}
cpu: [arm]
os: [linux]
'@vscode/ripgrep-linux-ia32@1.18.0':
resolution: {integrity: sha512-YWLkSUtFd4Jh5EepIhA9RJSfv3uMAVMo+2rBIGHPBnvgLrZciIs2cDKei1/p6Wc/aCzUoHyMAg2R6tw4ZCBKGg==}
cpu: [ia32]
os: [linux]
'@vscode/ripgrep-linux-ppc64@1.18.0':
resolution: {integrity: sha512-quXVY8fwQ8O/lvU1yrSqSl3jlUzysRSb+AfUfCL/tRtphxsKlFvPAejryZ6vg4Bgvn8XL74xb4qMCDmWgYrT5w==}
cpu: [ppc64]
os: [linux]
'@vscode/ripgrep-linux-riscv64@1.18.0':
resolution: {integrity: sha512-f5kBQBrWfQt8Q7OhSORuNDei5dkYagBj3y4jImSUXGMy8B/Ke7SltSRcUtjPv166FAFfHCAmWuZp3+cWnX2/Vw==}
cpu: [riscv64]
os: [linux]
'@vscode/ripgrep-linux-s390x@1.18.0':
resolution: {integrity: sha512-rTOcJFGGcl2c07RUOWUo4U1ndnemKhY6A9hnMB18uk7jSgJc0d/QLBGWMWpumdtoJtpizn/wIv5mXIisJukusQ==}
cpu: [s390x]
os: [linux]
'@vscode/ripgrep-linux-x64@1.18.0':
resolution: {integrity: sha512-mQ3bVrUpnD2vs7QT0vX90Lt0cnUq467uFtEktIdsJJmW296RoSULRGqWgzG1AKxyBpNDD6l4ZO4qKf6SgyC23Q==}
cpu: [x64]
os: [linux]
'@vscode/ripgrep-win32-arm64@1.18.0':
resolution: {integrity: sha512-vfTIjq1OHnzUjxZcHVQAMbnggp8dpGf+0QKFOZHwWPqFwXxQC8eCWM+5NUdoJ6yrElCeMzoUTXoK/LdZaniB+Q==}
cpu: [arm64]
os: [win32]
'@vscode/ripgrep-win32-ia32@1.18.0':
resolution: {integrity: sha512-//rfAE+BOw5AC2EMmepmiE36jUuevtQYNQqqlw1s3m9FlRxjxEut97RkRPHAu9BG4mSojatZx+kXZXNdyI9caQ==}
cpu: [ia32]
os: [win32]
'@vscode/ripgrep-win32-x64@1.18.0':
resolution: {integrity: sha512-KNPvtElldqILHdnAetujPaowkNbpqJy3ssIGGN6F6Kve9Qi+nNLI2DN01O83JjCEVQbCzl8Ov3QZ9Eov3BR8Dg==}
cpu: [x64]
os: [win32]
'@vscode/ripgrep@1.18.0':
resolution: {integrity: sha512-ns5lWe44tSfbTMbVUsyB+I1819PVSw4AdpgK0RNkzfWfwy6+3IUNSxwSrfTno1/oWaS/hERNz+XLWVyga2aJBQ==}
'@vue/compiler-core@3.5.39':
resolution: {integrity: sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==}
@@ -14110,6 +14173,57 @@ snapshots:
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
'@vscode/ripgrep-darwin-arm64@1.18.0':
optional: true
'@vscode/ripgrep-darwin-x64@1.18.0':
optional: true
'@vscode/ripgrep-linux-arm64@1.18.0':
optional: true
'@vscode/ripgrep-linux-arm@1.18.0':
optional: true
'@vscode/ripgrep-linux-ia32@1.18.0':
optional: true
'@vscode/ripgrep-linux-ppc64@1.18.0':
optional: true
'@vscode/ripgrep-linux-riscv64@1.18.0':
optional: true
'@vscode/ripgrep-linux-s390x@1.18.0':
optional: true
'@vscode/ripgrep-linux-x64@1.18.0':
optional: true
'@vscode/ripgrep-win32-arm64@1.18.0':
optional: true
'@vscode/ripgrep-win32-ia32@1.18.0':
optional: true
'@vscode/ripgrep-win32-x64@1.18.0':
optional: true
'@vscode/ripgrep@1.18.0':
optionalDependencies:
'@vscode/ripgrep-darwin-arm64': 1.18.0
'@vscode/ripgrep-darwin-x64': 1.18.0
'@vscode/ripgrep-linux-arm': 1.18.0
'@vscode/ripgrep-linux-arm64': 1.18.0
'@vscode/ripgrep-linux-ia32': 1.18.0
'@vscode/ripgrep-linux-ppc64': 1.18.0
'@vscode/ripgrep-linux-riscv64': 1.18.0
'@vscode/ripgrep-linux-s390x': 1.18.0
'@vscode/ripgrep-linux-x64': 1.18.0
'@vscode/ripgrep-win32-arm64': 1.18.0
'@vscode/ripgrep-win32-ia32': 1.18.0
'@vscode/ripgrep-win32-x64': 1.18.0
'@vue/compiler-core@3.5.39':
dependencies:
'@babel/parser': 7.29.7