From a90a1645aa41ca7f03c624ae7159cdd9e5ddc2a9 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Tue, 4 Aug 2026 12:06:01 +0800 Subject: [PATCH] fix(jsonl): tolerate truncated Zstd frames on Node 26 --- .../session-persistence-jsonl/src/zstd.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/session-persistence/session-persistence-jsonl/src/zstd.ts b/packages/session-persistence/session-persistence-jsonl/src/zstd.ts index bba2ef6344..e1f5f18cef 100644 --- a/packages/session-persistence/session-persistence-jsonl/src/zstd.ts +++ b/packages/session-persistence/session-persistence-jsonl/src/zstd.ts @@ -14,6 +14,9 @@ const zstdDecompressAsync = promisify(zstdDecompress) const CHECKSUM_OPTIONS: ZstdOptions = { params: { [constants.ZSTD_c_checksumFlag]: 1 }, } +const PARTIAL_DECOMPRESS_OPTIONS: ZstdOptions = { + finishFlush: constants.ZSTD_e_flush, +} /** Byte range occupied by one structurally complete Zstandard frame. */ export interface ZstdFrameRange { @@ -112,5 +115,5 @@ export async function compressZstdFrame(input: Buffer | string): Promise * @returns plaintext produced from the available input. */ export async function decompressZstdFrame(input: Buffer): Promise { - return zstdDecompressAsync(input) + return zstdDecompressAsync(input, PARTIAL_DECOMPRESS_OPTIONS) }