From aa83ac2c8f24ba6e566e645c97067bdb962ff6c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=80=E6=9C=A8?= <3218210+kazenshi@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:06:33 -0600 Subject: [PATCH 1/2] Remove unsupported tar argument --no-absolute-filenames --- src/services/code-index/semble/semble-downloader.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/services/code-index/semble/semble-downloader.ts b/src/services/code-index/semble/semble-downloader.ts index c3a0576978..a8b08abee5 100644 --- a/src/services/code-index/semble/semble-downloader.ts +++ b/src/services/code-index/semble/semble-downloader.ts @@ -258,11 +258,10 @@ export async function getSembleBinaryPath(storageDir: string): Promise { return new Promise((resolve, reject) => { const args = ["-xzf", archivePath, "-C", destDir, "--no-same-owner"] - // GNU tar: --no-absolute-filenames blocks leading-slash entries, - // --no-overwrite-dir adds defense-in-depth against ../relative traversal. + // GNU tar: --no-overwrite-dir adds defense-in-depth against ../relative traversal. // macOS bsdtar strips absolute paths by default. if (process.platform === "linux") { - args.push("--no-absolute-filenames", "--no-overwrite-dir") + args.push("--no-overwrite-dir") } const child = spawn("tar", args, { shell: false, From cc0ac635400ed00df425dbd3f4c3e743772718c8 Mon Sep 17 00:00:00 2001 From: Naved Date: Fri, 5 Jun 2026 17:59:08 -0700 Subject: [PATCH 2/2] fix failing test --- .../code-index/semble/__tests__/semble-downloader.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/services/code-index/semble/__tests__/semble-downloader.spec.ts b/src/services/code-index/semble/__tests__/semble-downloader.spec.ts index ad863424dc..210abf3e32 100644 --- a/src/services/code-index/semble/__tests__/semble-downloader.spec.ts +++ b/src/services/code-index/semble/__tests__/semble-downloader.spec.ts @@ -235,7 +235,6 @@ describe("semble-downloader", () => { "-C", path.join("/storage", "semble.new"), "--no-same-owner", - "--no-absolute-filenames", "--no-overwrite-dir", ], expect.any(Object),