From 6123082fa36bdf33c740e633ba64fd2b0c4f58f3 Mon Sep 17 00:00:00 2001 From: Jinwoo-H Date: Tue, 11 Aug 2026 11:35:04 -0400 Subject: [PATCH] fix(skills): normalize gzip archives across hosts --- src/main/skills/skill-package-creation.test.ts | 2 +- src/main/skills/skill-package-tar.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/skills/skill-package-creation.test.ts b/src/main/skills/skill-package-creation.test.ts index cfbb2746964..605c7f36c8b 100644 --- a/src/main/skills/skill-package-creation.test.ts +++ b/src/main/skills/skill-package-creation.test.ts @@ -125,7 +125,7 @@ describe('skill package creation and extraction', () => { archiveSha256: created.archiveSha256, packageDigest: created.manifest.packageDigest }).toEqual({ - archiveSha256: '6537c6c1820e08f175206df49bc918893770efc464916724869f78374709f90f', + archiveSha256: '4a62b276b1e8100f0b437f2f0aa182d844768160ba30c5f76afd027acfe50ac8', packageDigest: '3bb1fc63cfea2f2b7f2cf80e539735eebd5bfb6aa65f47cf0db7e9fd35297f57' }) }) diff --git a/src/main/skills/skill-package-tar.ts b/src/main/skills/skill-package-tar.ts index f2a453fcff9..f4295939396 100644 --- a/src/main/skills/skill-package-tar.ts +++ b/src/main/skills/skill-package-tar.ts @@ -80,6 +80,23 @@ async function writeWithBackpressure(stream: Writable, bytes: Buffer): Promise 9) { + const portable = Buffer.from(chunk) + portable[9 - emittedBytes] = 0xff + emittedBytes += chunk.length + callback(null, portable) + return + } + emittedBytes += chunk.length + callback(null, chunk) + } + }) +} + export async function writeSkillTarGzip( archivePath: string, entries: readonly SkillTarWriteEntry[] @@ -100,6 +117,7 @@ export async function writeSkillTarGzip( }) const sink = pipeline( gzip, + portableGzipHeader(), hashTransform, createWriteStream(archivePath, { flags: 'wx', mode: 0o600 }) )