gstack 1.91.162.0 lets a merge train of PRs share one full eval gate

1 hour ago

gstack 1.91.162.0 for Claude Code: gstack's evals workflow now runs merge trains for gstack-ship-queue. Several ready PRs share one full gate, a red train bisects with one executor per prefix, PR pushes print a free screen estimate, and a main backstop gates only the trees that a green train left uncovered. All of it stays off until the ship policy declares a train block. Release notes: https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#1911620---2026-10-19 Merge-train walkthrough: https://github.com/garrytan/gstack/blob/main/docs/ship-policy.md#run-a-merge-train Commits: https://github.com/garrytan/gstack/commits/main

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Trains
  2. 0:13Bisect
  3. 0:25Screens
  4. 0:39Backstop
  5. 0:52Still off
Show transcript

Trains

gstack logo

gstack 1.91.162.0 lets a merge train of PRs share one full eval gate

PR #41→PR #42→PR #43→one full gate
publishestrain record + gstack/full-gate check
TrainsBisectScreensBackstopStill off
garrytan/gstack · CHANGELOG.md · 1.91.162.0

gstack's evals workflow can now run merge trains. Several ready pull requests share one full gate. That run publishes the train's record and the full gate check that the ship queue waits for.

Bisect

A red train bisects with one executor per prefix

T1T2T3T4
Each executor checks out its prefix, verifies it and uploads a record for train bisect
TrainsBisectScreensBackstopStill off
garrytan/gstack · CHANGELOG.md · 1.91.162.0

When a train goes red, the bisect now runs one executor for each prefix of the train. Each one checks out its prefix, verifies it, and uploads its own record for train bisect.

Screens

Under a train block, a PR push prints a free screen estimate

beforepaid slices on every push
nowscreen selection + estimated cost
ready --screendispatches the real, paid screen
TrainsBisectScreensBackstopStill off
garrytan/gstack · CHANGELOG.md · 1.91.162.0

With a train block in the policy, pushing a pull request stops starting paid eval slices. It prints the screen selection and an estimated cost instead. Asking ready for a screen dispatches the real one.

Backstop

A five-PR train fires zero backstop gates on main

evals-main-backstop.yml
runs on every push to main
full gateonly for a tree no green train covered
TrainsBisectScreensBackstopStill off
garrytan/gstack · CHANGELOG.md · 1.91.162.0

A new backstop runs on every push to main. It runs the full gate only for a tree that a green train left uncovered, so a five pull request train adds zero backstop gates.

Still off

Trains stay off until the ship policy declares a train block

docs/ship-policy.mdRun a merge train
Do you run gstack-ship-queue on your own repo yet?
TrainsBisectScreensBackstopStill off
garrytan/gstack · CHANGELOG.md · 1.91.162.0

Without a train block, every push runs today's jobs, and gstack's own policy doesn't carry one yet. Turning trains on there is a separate one-line pull request. Do you run the ship queue on your own repo yet?