Report and retry checkpoints whose finalize write fails

main

Commit

Muskan Paliwal1w ago

A checkpoint whose write failed inside the finalize loop was only counted as an error. Finalize then cleared every TurnCheckpointID, so that checkpoint kept its provisional transcript, no later Stop retried it, and entire status showed nothing.

The write loop now returns the IDs whose write failed. Finalize keeps them, together with any the deadline cut off, and sets CaptureDegradedAt, so a repeated Stop in the same turn retries them. An ID that is not a valid checkpoint ID is still reported but not kept, since no retry can write it.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Entire-Checkpoint: 01M63Q7RMYK8CCYYZHX916XJFA