gstack now offers an upgrade the moment main moves, even before a new version

2 hours ago

gstack 1.91.116.0 to 1.91.117.0: the update check offers an upgrade when main moves without a version bump, lanes and the coordinator share a merge queue that checks every stamp claim, risky changes need a cited owner approval, /review checks state machines cell by cell, pregate runs bats suites and flags timing assertions, and gstack-doctor lists rescued edits. Release notes 1.91.116.0: https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#1911160---2026-10-17 Release notes 1.91.117.0: https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#1911170---2026-10-17 Ship policy and merge queue: https://github.com/garrytan/gstack/blob/main/docs/ship-policy.md#run-a-shared-merge-queue Commits: https://github.com/garrytan/gstack/commits/main

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Update
  2. 0:16Queue
  3. 0:30Approvals
  4. 0:42States
  5. 0:57Pregate
  6. 1:10Doctor
Show transcript

Update

gstack logo

gstack now offers an upgrade the moment main moves, even before a new version

UPGRADE_AVAILABLE <ver> <ver>+<n> <sha>
New commits on main, same VERSIONread through the GitHub compare API, never git fetch
/gstack-upgradesummarizes the commits
UpdateQueueApprovalsStatesPregateDoctor
garrytan/gstack · CHANGELOG.md 1.91.116.0

gstack's update check now notices new commits on main, even when the version number has not changed. It asks GitHub's compare API and never runs a fetch. The upgrade then summarizes those commits for you.

Queue

Lanes and the coordinator share one merge queue, and every stamp claim is checked

$ gstack-ship-queue ready · stamp
A tree that differs from the pushed headready refuses
The coordinator's verifyreruns the tree receipt, recomputes the gate-ahead merge
A gstack older than a policy key it readsrefuses: POLICY_GSTACK_TOO_OLD
UpdateQueueApprovalsStatesPregateDoctor
garrytan/gstack · CHANGELOG.md 1.91.116.0

Parallel lanes and the coordinator now share one merge queue. The coordinator reruns each lane's proof itself instead of trusting its stamp. An older gstack refuses a ship policy it cannot read.

Approvals

Risky changes need a cited owner approval before they ship

.gstack/approval-classes.json, read from the base branchdeclares what needs an owner
A branch that touches a classno ship receipt until the PR body cites the approval
The cited approvalbound to the effects being shipped
UpdateQueueApprovalsStatesPregateDoctor
garrytan/gstack · CHANGELOG.md 1.91.116.0

Your repo can now name the changes that need an owner's sign off. A branch touching one gets no ship receipt until the pull request cites that approval. The approval covers only what ships.

States

/review checks a changed state machine cell by cell

A diff that changes a state machinekind × owner action matrix
gstack-state-matrix checkreports every missing cell
An untested cellCRITICAL
UpdateQueueApprovalsStatesPregateDoctor
garrytan/gstack · CHANGELOG.md 1.91.116.0

/review has a new state machine specialist. When a diff changes one, it maps every kind of state against every owner's action. Each missing cell is reported. An untested cell counts as critical.

Pregate

Pregate runs bats test suites and flags timing assertions

Bats repositories get a lane instead of failing every run with PREGATE_NO_LANE1.91.117.0
The timing check warns on new tests that bound wall or CPU time, then assert1.91.116.0
Markdown with no dependent test is a docs lane with zero tests1.91.116.0
UpdateQueueApprovalsStatesPregateDoctor
garrytan/gstack · CHANGELOG.md 1.91.116.0 · 1.91.117.0

Pregate used to fail every run in a repo with bats tests. Those now get a lane. Tests that time themselves and then assert get a warning. Docs-only changes get an empty lane.

Doctor

gstack-doctor lists the edits an auto-update rescued

Rescued edits appear with dates and the inspect and delete commands1.91.117.0
A skill list pasted into CLAUDE.md gets a warning and the short block to use1.91.117.0
Hosts without plan mode drop about 1.5k characters of preamble per skill1.91.117.0
docs/ship-policy.mdThe shared merge queue and policy keys, in full
UpdateQueueApprovalsStatesPregateDoctor
garrytan/gstack · CHANGELOG.md 1.91.117.0

When an auto update rescues your local edits, gstack doctor now lists each one with its commands. It flags a pasted skill list. And Codex and Cursor skills drop the plan mode preamble.