Trains
gstack-ship-queue runs merge trains: several ready PRs, one full gate
gstack's ship queue can now run merge trains. Several ready pull requests stack onto main in order, and the whole stack shares one full eval gate instead of one gate per pull request.
Merge
Each PR merges only while main matches the prefix the gate tested
T0 main · T1 +PR 1 · T2 +PR 2verify --pr <n> --train <nonce>train stops partwayThen each pull request merges one at a time, and only while main still matches the stack that gate tested. If a train stops partway, the queue freezes until one repair pull request lands.
Bisect
A red train is bisected on its red cases alone
ATTRIBUTED #<pr>red on every prefix, T0 includedA red train reruns only its failing cases on each step, under your dollar cap. It blames one pull request only when failures start there and stay red. Red everywhere means main is red.
Off by default
Trains stay off until the base branch declares a train block
.gstack/ship-policy.jsonno train blockgstack’s own policyevery laneTrains stay off until the ship policy on your base branch declares a train block. gstack's own repo still waits on its workflow side and a dry run, and every lane needs this version first.
Guide
The walkthrough: Run a merge train
docs/ship-policy.mdgstack ship policy guideThe full walkthrough sits in gstack's ship policy guide, under Run a merge train. How many pull requests wait in your queue on a busy day?
















