chore(scripts): re-sync the ported sweeper to upstream's H32 board-independent specimens - #6691
Merged
Merged
Conversation
…dependent specimens
Bump the upstream port pin from 2b4178aa5 to bf10debd5 via the gate's own
`--resync`, and delete the three name-swap-only divergence entries the bump
makes obsolete.
Upstream previously hard-coded `objectui`/`objectstack` in its H32 lane and
foreign-seat self-test rows. Because `seatLane` judges an `@ repo` suffix
against the LIVE resolved sweep repo, those rows asserted upstream's board
rather than the property, and inverted here -- so this port carried three
compensating entries (`h32-lane-own-board`, `h32-foreign-out-of-scope`,
`h32-foreign-no-fetch`) whose entire content was swapping the two names.
Upstream now derives both names from the resolved sweep repo
(`OWN_BOARD = SWEEP_REPO.repo.split('/')[1]`), so the specimens are
board-independent and the verbatim copy passes here. The compensation is not
merely unnecessary, it would re-introduce the literals it existed to correct.
Evidence the deletion is safe, rather than assumed:
- `--resync` run BEFORE any deletion failed loudly naming exactly those
three entries and no others -- the sweep for other vanished anchors;
- the sweeper's `--self-test` passes 1574 cases on THIS board with the
three entries gone, including the five rows they used to feed;
- the board resolves to objectui with sibling objectstack (distinct), so
the FOREIGN/own rows are not vacuously green.
`scripts/invoked-as.mjs` is byte-identical at both refs, so bumping the
shared `upstream.ref` keeps its provenance true.
Co-Authored-By: Claude <noreply@anthropic.com>
os-litant
marked this pull request as ready for review
August 28, 2026 15:28
os-litant
enabled auto-merge
August 28, 2026 15:28
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.
Fixes #6689
The gate's own documented re-sync act, owed since objectstack landed the H32 board-independent specimens (2026-08-28 15:04Z). Authored in session
session_01MnijPVVDakqK2J335JoJtq.The pin bump
upstream.ref2b4178aa53ca62089f43e2cfae0b7838cf340dd1bf10debd587f6ba891be9eadc2b76c91e15bd82bcheck-half-states.mjsdigestc06c8451…449a0aec0cfa36738e0fc5651ec978faf846316522daeb9ca6efa1714daf6ac9Moved with
node scripts/check-upstream-port-parity.mjs --resync … --ref … --path scripts/pm/check-half-states.mjs. The digest was never hand-edited: the value the tool wrote matches thesha256sumtaken independently of upstream's blob before anything was touched.scripts/invoked-as.mjsis the other pinned file and shares the oneupstream.ref. Its blob is byte-identical at both refs (90f72bf45a2fd158b19d5774269eb96a6b8b61540251ce68c29ddce7c93bfaa7at each), so bumping the shared ref keeps its provenance true rather than quietly re-dating it.The three entries deleted, and why that is safe
Deleted from
scripts/upstream-port-pin.json:h32-lane-own-boardh32-foreign-out-of-scopeh32-foreign-no-fetchTheir entire content was swapping the two repo names.
seatLanejudges an@ reposuffix against the live resolved sweep repo, so upstream's old hard-coded rows asserted upstream's board instead of the property and inverted here — these three existed only to invert them back.Upstream's fix derives both names instead of spelling them:
so the specimens are board-independent and a verbatim copy passes here. Keeping the compensation would now be actively wrong — it would re-introduce the literals it was written to correct.
Three pieces of evidence that the deletion is safe rather than assumed:
--resyncwas run before any deletion. It failed loudly naming exactly these three entries and no others, and wrote nothing. So the other 11 divergences on this file still apply cleanly, and no still-needed divergence lost its anchor.--self-testpasses 1574 cases here with the three entries gone, including the five rows they used to feed. That is the acceptance criterion the card names: a still-load-bearing entry would have red-ed.objectstack-ai/objectui, givingOWN_BOARD = objectuiandSIBLING_BOARD = objectstack— distinct, so the FOREIGN and own-board rows assert genuinely opposite values.Gate verdicts
Union re-run on the final commit
af9771c; each exit captured before any pipe.check-upstream-port-parity✓ … 2 ported file(s) match objectstack-ai/objectstack@bf10debd5 modulo their declared divergences.check-upstream-port-parity --self-test✓ … self-test: 37 cases passcheck-half-states --self-test(this board)✓ check-half-states self-test: 1574 cases pass.FLOOR SPOT CHECK: PASS (4/4) — pre-floor skipped, on/post-floor reportedvitestadaptation + parity wiringTest Files 2 passed (2) · Tests 30 passed (30)pnpm type-check:scriptstsc -p tsconfig.scripts.json, no diagnosticscheck-control-bytes✅ OK (scanned 5537 tracked text file(s); skipped 85 binary).check-entry-guard✓ 51 scripts/ file(s) — no entry guard outside the baselinecheck-lint-coverage✅ lint coverage: 46/46 packages linted, 0 with outstanding errors (0 total).check-changeset-presence✅ No source of a released package changed in this range, so no changeset is owed.The floor spot check ran with the workflow's real env (
PM_SWEEP_REPO: objectstack-ai/objectui,PM_SWEEP_CLOSED_FLOOR: '2026-08-28', window pages unset so upstream's 4 applies) and asserts both directions plus a no-residue control, so a predicate that skipped everything could not pass it.No changeset, per the gate's own verdict: scripts-only, no published source in range. No
skip-changesetlabel applied — that label is a phantom in this repo.Declared narrowing
eslintwas run on the two changed files rather than repo-wide. Population came from eslint's own config resolution (it accepted and linted both paths);--format jsonreports 2 files, 0 errors, 0 warnings; and no type-aware linting is configured (noprojectService, noparserOptions.project), so a diff confined to these two files cannot move the verdict on any file it does not touch. CI runs the full farm regardless.check-node-esm-loadis not implicated: it enumerates published packages (discoverPackages(root)filtered to non-private manifests), and this diff touches 0 files underpackages/and 0 manifests.Generated by Claude Code