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 }) )