skip to content
Replays

Resume Verdict Guard

Safe Resume Verdicts

Resume keeps unfinished work visible in the ledger and checkpoint state.

Gantry milestones

2 milestones 4 tasks 21 agents

3 plan 4 execute 8 review

119k peak context

97k median execute

Resume keeps unfinished work visible in the ledger and checkpoint state.

1h 34m total 10m 26s per task

6m 31s plan 27m 13s execute 30m 11s review

67 edits 584 commands

codex harness

1.5M tokens in 138.6k tokens out

Resume Verdict Guard changed how Gantry resumes work stopped inside a `for` iteration. The run separates ledger verdicts from restored cursor state, then carries the enclosing iteration through a tail call in the position checkpoint. The current interpreter and position checkpoint code retain both protections.

How this walkthrough is structured

Feature

What did the run build and ship?

A resumed run now preserves unfinished verdicts and restores the iteration context needed to continue them.

Build

How did Gantry structure the work?

The cut split resume correctness between the ledger's current verdict and the checkpoint's restored frame state.

Milestone 1

Ledger Grounded Resume

1 tasks 7 agents 24m 41s wall time 97k peak context

The production pattern world now reads the latest ledger row for the task being restored. The interpreter requires work in the current resume session, no unfinished latest row, and no unfinished descendant before it records completion. The interpreter tests cover a restored task whose prior verdict remains unfinished and is re-entered rather than replaced with `DONE`.

Restored loop frames needed a verdict rule independent of their cursor position. The brief confined that rule to the latest ledger row and to unfinished descendants, so a resume could re-enter unfinished tasks without manufacturing completion. The ledger marks this milestone green, while the available run facts provide no milestone-local stages or recoveries.

Milestone 2

Checkpoint Frame Stack

3 tasks 11 agents 53m 27s wall time 119k peak context

The position checkpoint records frame roles and an enclosing `for` iteration on tail-call frames. Checkpoint validation restricts that enclosing iteration to the frame shape that can carry it, and interpreter restore rebuilds the iteration before completing the restored frame. The current code also accepts the legacy checkpoint version only through its restore path while requiring frame state for the current version.

The remaining boundary was a tail call that had replaced the enclosing `for` frame before a stop. The brief assigned the checkpoint enough structured state to retain that enclosing iteration and to reject invalid frame shapes, without depending on the ledger protection. The ledger marks this milestone green, and the run facts again contain no milestone-local stress record.