Repository navigation
LAND-3: merge-train fixes from train 1 (device run judged on evidence, regen after devices, no-code skip vouch, rebuild on an earlier position) - #76
Merged
Conversation
- train build judges each position's device run against the device evidence committed on the train's base (lanes.json and device-failures-<target>.json), not by the lanes command's exit code: every lane must pass or fail as on the base, a failing lane may list no failure the base does not, and lane parity must pass with no stale lane (deviceRunProblems). It also checks the run rewrote lanes.json and the lanes commands exited 0 or 1. - train build runs pnpm regen again after the device run (POSITION_STEPS), so native-lanes.ts follows the run's lanes.json in the position's regen commit. - pr:review vouches for Macroscope's 'No code objects were reviewed.' skip under the 'already reviewed' guard: the head's patch id over reviewed paths must equal an earlier reviewed commit's. - A member whose PR head is a position from an earlier build is merged at that head (memberTip walks its train-made commits down to the clean head), so land's push fast-forwards it; check still predicts against the clean head's patch id. - land stops on a review/* base with the exact 'gh pr edit <n> --base master'.
…review passes a commit whose every Macroscope check was skipped with exactly 'Monthly spending limit reached (workspace setting).', prints UNREVIEWED, and still requires CI to pass and every finding to be answered (reviewExit); a near-miss title or a mixed result fails. AGENTS.md step 4 records the rule. pr-review.test.ts pins each case; the outcome pins gain unreviewed: false
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.
What changed
Merge-train fixes for the four gaps train 1 hit at position 1 (PM ruling, option A; freeze exception). All changes are in
scripts/and their tests.Device run judged on its evidence (
deviceRunProblems,parseDeviceEvidence).train buildused to stop wheneverpnpm run parity:devicesexited non-zero. Master's own device-pixels lane fails on purpose (iOS 57 / Android 86, listed indevice-failures-<target>.json), so every run exits 1. Now each run is compared with the lanes.json and failure lists committed on the train's base. The run passes when:parity:lanesprints no STALE line.The build also stops if the run did not rewrite lanes.json, or if either lanes command ends with anything but exit 0 or 1.
Regen after the device run (
POSITION_STEPS). The position runspnpm regenagain after judging the run, so native-lanes.ts (which reads lanes.json) is current in the position's regen commit. Train 1 position 1 failed p6a-promotion without this."No code objects were reviewed." skip.
pr:reviewnow vouches for this skip under the same guard as "All code in this push has already been reviewed.": the head's patch id over reviewed paths must equal that of an earlier commit of the PR whose correctness check succeeded. Near-miss titles and non-skipped conclusions still fail. Macroscope gave T128: column flex automatic minimum size measures content with the item height as auto (Blink IntrinsicBlockSize) #59's position commit (2d47e5d, regen-only) this title.A PR head that is an earlier build's position.
buildmerges the member's PR head when it is a position from an earlier build, soland's plain push fast-forwards it. T128: column flex automatic minimum size measures content with the item height as auto (Blink IntrinsicBlockSize) #59 is in this state, at 2d47e5d.memberTipaccepts that head only if it contains the clean head and every commit on the chain down to the clean head is a "Train position" commit.planPositionsrecords the merged tip, andprProblems/mergeGateaccept it as the PR head.checkstill predicts against the clean head's patch id. So a fake "Train position" commit that changes code is caught there, and a test pins that.Spending-limit waiver (owner directive, 2026-10-02: "When it hits limit that's fine you just dont do the review").
pr:reviewpasses a commit only when every Macroscope check on it was skipped with exactly "Monthly spending limit reached (workspace setting).". It prints a loudUNREVIEWED: Macroscope spending limitline. CI must still pass and every finding (from any commit) must be answered (reviewExit). A near-miss title or a mixed result fails. AGENTS.md step 4 records the rule in one sentence.review/ base.*
landstops before pushing and printsgh pr edit <n> --base master.What passed
pnpm typecheck: pass./tmp/heavy-lease.sh pnpm teston d2d3f0c: 3623 pass, 1 skipped (the DRAGON_REGEN_CHECK suite), 0 fail. On the previous scripts, pr-review.test.ts fails 9 tests.Review
Macroscope skipped this PR for its monthly spending limit. Under the owner's directive it lands unreviewed once CI passes;
pr:review(this branch's script) reports it as UNREVIEWED.Changed tests and checks
outcomepins gainunreviewed: false, because outcome now reports the waiver. Their intent is unchanged. New tests cover the waiver: the exact title passes; CI that is pending or failed, a near-miss title, a mixed result and an unanswered earlier finding all still fail.🤖 Generated with Claude Code