The silent-loss trapRows named text-chunks, reasoning-chunks, and tool-call-chunks carry seq0—not seq—and are not SessionEvent types.

Decode four layers in order.

1 · Artifact

Select .jsonl.zstd or plaintext .jsonl from the configured persistence root.

2 · Frames

Decode the header frame and every checksummed append frame. The file is a frame concatenation.

3 · Rows

Classify ordinary events and all three packed storage-row types.

4 · Events

Expand each packed row, then require one contiguous logical seq stream.

One row can represent many events.

text-chunkstext deltas

texts[] preserves every streamed fragment.

reasoning-chunksreasoning deltas

The same envelope carries thinking-model output.

tool-call-chunksargument deltas

args[] shares one call id and optional name.

{ type: "text-chunks", seq0: 10, time0: 1787150994000,
  data: { turn: 1, step: 1, index: 0,
          dt: [21, 1, 0, 20],
          texts: ["He", "llo", ", ", "wor", "ld"] } }

This physical row reconstructs five assistant/chunk events with sequence numbers 10 through 14. Filtering rows without seq drops all five.

Use the shipped codec.

Run every post-header value through decodeStorageRecord. Do not independently guess a durable prerelease format from the generated event catalog.

Minimum reader gates.

Keep the complete format map.

The canonical guide includes exact reconstruction rules, unsafe parser examples, a read-only inspection procedure, eleven acceptance gates, and pinned rc.8 sources.

Read the complete guide