Repository navigation
v1.91.173.0 fix(ship-queue): train verify accepts a slot head with main merged in (GSTA-49) - #3327
Merged
Merged
Conversation
… (GSTA-49) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
|
😎 This pull request was merged. |
…ged-head Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> # Conflicts: # CHANGELOG.md
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The first live train (gate.train-ac4baf961759-43d6ed28f2bf-9a1dbb, 5 PRs, GREEN) stopped at slot 2. Slot 1 (#3324) merged as v1.91.166.0, so main now carries that stamp in CHANGELOG, VERSION, package.json and the digest. Every later pin is unstamped and was cut from the train's base, so it conflicts with main on CHANGELOG.md. GitHub marks it dirty, runs no CI and can't squash it.
The lane's natural repair is to merge main into the pin and then stamp. That head's tree is exactly the slot's train prefix T modulo stamps: the tree the train gate covered, and what main becomes after the squash. But
verify --trainonly accepted "pin plus stamps", so it refused that head withQUEUE_TRAIN_MOVEDand froze the queue.What changes
lib/ship-queue-train-verify.ts: a slot head now passes when it's the pin plus stamps (unchanged) or T modulo stamps. Thehead:line says which, for example "T2 with main merged in, same modulo stamps (4 stamp file(s))". Anything else is stillQUEUE_TRAIN_MOVED, with the same freeze behavior. The post-merge check (main = T) is unchanged, so what lands is still the gated tree.docs/ship-policy.md: the lane procedure for slot 2 onward:git merge --no-ff --no-commit origin/main;mergeChangelogs;gstack-restamp --next;A conflict outside CHANGELOG.md means stop and report.
Evidence from the live train.
mergeChangelogs, thengstack-restamp --next(1.91.167.0).buildReceiptgivessame-modulo-stamps, where CHANGELOG.md counts as a heading stamp and VERSION, package.json and the digest as stamps.Gate integrity. A new case in
test/ship-queue-train.test.tsbuilds a lane head whose parents are the pin and the published main, with T2's tree stamped 1.2.5.0.MERGE_CONDITIONat it.QUEUE_TRAIN_MOVED.The existing verify, freeze and repair test passes unchanged.
Checks: both train verify tests pass, typecheck is clean, the module-size and spawnsync ratchets pass, and the remote free-tier pregate passed. The macOS and Windows lanes are cleared by this PR's CI.
Plan: GSTA-49. It's an urgent fix for the queue.