checkpoint: pin straddling-boundary rounding and refresh compact-transcript docs

main

Commit

Soph2mo ago

P2: when StartLine falls between same-ID streaming assistant fragments, compaction merges them into one line that no integer offset can split. Document that the boundary rounds toward inclusion — the merged line stays in the slice, so fullCompactLines[boundary:] never drops this checkpoint's content but its head may repeat up to one merged line from the previous checkpoint. Add a regression test pinning this deterministic behavior, and note the bounded head overlap on CompactTranscriptStart so downstream segmenters tolerate it.

P3: refresh stale docs that still described transcript.jsonl as checkpoint- scoped/pre-sliced (metadata.go field + directory-layout comments, the sessions-and-checkpoints architecture doc, and CLAUDE.md). They now state that transcript.jsonl holds the full compacted session and that consumers slice at compact_transcript_start (compact-output coordinates, distinct from the raw checkpoint_transcript_start), with nil meaning a legacy delta-only file.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Entire-Checkpoint: a23237182e15

Checkpoints

Compact Transcript Storage and Boundary Markers

Claude CodeOpus 4.8[1m]
View session
Checkpoint 1