Skip to content

chore(scripts): re-sync the ported sweeper to upstream's H32 board-independent specimens - #6691

Merged
os-litant merged 1 commit into
mainfrom
claude/issue-6689-parity-pin-bump
Aug 28, 2026
Merged

chore(scripts): re-sync the ported sweeper to upstream's H32 board-independent specimens#6691
os-litant merged 1 commit into
mainfrom
claude/issue-6689-parity-pin-bump

Conversation

@os-litant

@os-litant os-litant commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

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

before after
upstream.ref 2b4178aa53ca62089f43e2cfae0b7838cf340dd1 bf10debd587f6ba891be9eadc2b76c91e15bd82b
check-half-states.mjs digest c06c8451… 449a0aec0cfa36738e0fc5651ec978faf846316522daeb9ca6efa1714daf6ac9
declared divergences on that file 14 11

Moved 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 the sha256sum taken independently of upstream's blob before anything was touched.

scripts/invoked-as.mjs is the other pinned file and shares the one upstream.ref. Its blob is byte-identical at both refs (90f72bf45a2fd158b19d5774269eb96a6b8b61540251ce68c29ddce7c93bfaa7 at 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-board
  • h32-foreign-out-of-scope
  • h32-foreign-no-fetch

Their entire content was swapping the two repo names. seatLane judges an @ repo suffix 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:

const OWN_BOARD = SWEEP_REPO.repo.split('/')[1];
const SIBLING_BOARD = OWN_BOARD === 'objectui' ? 'objectstack' : 'objectui';

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:

  1. The sweep for other vanished anchors. --resync was 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.
  2. The property holds on this board. The sweeper's --self-test passes 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.
  3. The rows are not vacuously green. On this board the sweep repo resolves to objectstack-ai/objectui, giving OWN_BOARD = objectui and SIBLING_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.

gate exit verdict line
check-upstream-port-parity 0 ✓ … 2 ported file(s) match objectstack-ai/objectstack@bf10debd5 modulo their declared divergences.
check-upstream-port-parity --self-test 0 ✓ … self-test: 37 cases pass
check-half-states --self-test (this board) 0 ✓ check-half-states self-test: 1574 cases pass.
floor end-to-end spot check 0 FLOOR SPOT CHECK: PASS (4/4) — pre-floor skipped, on/post-floor reported
vitest adaptation + parity wiring 0 Test Files 2 passed (2) · Tests 30 passed (30)
pnpm type-check:scripts 0 tsc -p tsconfig.scripts.json, no diagnostics
check-control-bytes 0 ✅ OK (scanned 5537 tracked text file(s); skipped 85 binary).
check-entry-guard 0 ✓ 51 scripts/ file(s) — no entry guard outside the baseline
check-lint-coverage 0 ✅ lint coverage: 46/46 packages linted, 0 with outstanding errors (0 total).
check-changeset-presence 0 ✅ 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-changeset label applied — that label is a phantom in this repo.

Declared narrowing

eslint was 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 json reports 2 files, 0 errors, 0 warnings; and no type-aware linting is configured (no projectService, no parserOptions.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-load is not implicated: it enumerates published packages (discoverPackages(root) filtered to non-private manifests), and this diff touches 0 files under packages/ and 0 manifests.

Generated by Claude Code

…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
os-litant marked this pull request as ready for review August 28, 2026 15:28
@os-litant
os-litant enabled auto-merge August 28, 2026 15:28
@os-litant
os-litant added this pull request to the merge queue Aug 28, 2026
Merged via the queue into main with commit e0d83da Aug 28, 2026
28 checks passed
@os-litant
os-litant deleted the claude/issue-6689-parity-pin-bump branch August 28, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Parity pin bump: re-sync the ported sweeper to upstream's H32 board-independent specimens and delete the three name-swap divergence entries

2 participants