checkpoint: store full compact transcript per checkpoint with boundary marker
Commit

writeCompactTranscript now uses compact.FullWithBoundary to write the entire compacted session into transcript.jsonl on every checkpoint, and returns the checkpoint's boundary so it can be recorded in session metadata as CompactTranscriptStart. Both write paths are covered:
- normal write: writeTranscript returns the boundary, threaded into the per-session metadata.json.
- pre-push OPF rewrite: replaceTranscript re-records the boundary via setCompactTranscriptStart after regenerating the compact transcript.
This makes each checkpoint self-contained: the session is reconstructable from any single surviving checkpoint, robust to a mid-history checkpoint being lost, reverted, or dropped during a rebase. Readers segment a checkpoint's slice as fullCompactLines[CompactTranscriptStart:].
fsstore writes no compact transcript, so its metadata leaves the marker nil.
Update the existing scoped-transcript tests to assert the new full-content + marker contract instead of the old delta semantics.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Entire-Checkpoint: 27a4b7b0bdeb