Uh oh!
There was an error while loading. Please reload this page.
fix(meta-13010): rebuild sequent-core wasm so main ships #12975's fix - #3093
Open
vic3lord wants to merge 1 commit into
Open
fix(meta-13010): rebuild sequent-core wasm so main ships #12975's fix#3093vic3lord wants to merge 1 commit into
vic3lord wants to merge 1 commit into
Conversation
adc226f changed packages/sequent-core/src/util/voting_screen.rs and updated packages/yarn.lock to the hash of the rebuilt package, but did not commit the rebuilt tgz. The four committed copies stayed at cd416dc's build, so the lockfile described an artifact that was not in the tree: committed tgz (all 4): 9965f4fca902ff88492a298e67bddf8ba639fea0 packages/yarn.lock: f1b9927da27e25fc6d6d490e603ac07bc640d991 That is what fails build_wasm's hash check, and what fails `yarn install` in Lint & Prettify with an integrity error, on every PR since 24 August. The lockfile was not the stale side. The artifact was, which means main has been shipping a voting portal built before the fail-closed guard in check_voting_not_allowed_next_util - reachable from the browser via wasm.rs:929 -> ui-core/src/services/wasm.ts -> voting-portal VotingScreen.tsx. Realigning the lockfile to the old hash would have turned CI green while leaving that fix out of what voters load. Rebuilt with .devcontainer/scripts/build-sequent-core.sh, with only its hardcoded /workspaces/step path changed. Toolchain matches flake.nix on the two versions it pins - rustc 1.96.0 and wasm-bindgen 0.2.104 - installed via rustup rather than nix; wasm-pack 0.15.0 and wasm-opt 132 come from crates.io and homebrew. The resulting hash therefore differs from f1b9927d, which is expected: the workflow already documents that this build is not reproducible across environments, and its check compares the committed tgz against the committed lockfile, not against a fresh build. Verified: all four tgz identical at 1c9e1d19, the workflow's hash comparison run verbatim passes, and the wasm inside the committed tgz is byte-identical to a build from the fixed source. To show the artifact really does carry the change rather than merely being newer, reverting the two-line fix and rebuilding yields a different wasm (40ca56c9 fixed vs d48b95da reverted). Refs sequentech/meta#13010, sequentech/meta#12975 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Important Review skippedReview was skipped as selected files did not have any reviewable changes. 💤 Files selected but had no reviewable changes (4)
⛔ Files ignored due to path filters (1)
⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
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 freeto 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.
Closes sequentech/meta#13010. Unblocks CI on every open
stepPR.This is not a stale lockfile
The obvious reading of the red checks is that
packages/yarn.lockdrifted. It's the other way round.adc226f changed
packages/sequent-core/src/util/voting_screen.rsand updated the lockfile to the hash of the rebuilt package — but did not commit the rebuilt tgz:So the four committed tgz copies stayed at
cd416dc's build:The pair had matched on 11 consecutive commits before that:
Why the easy fix would have been the wrong one
Setting the lockfile back to
9965f4fcturns both checks green in one line. It also leaves this out of what voters load:check_voting_not_allowed_next_utilis reachable from the browser —sequent-core/src/wasm/wasm.rs:929exports it via#[wasm_bindgen],ui-core/src/services/wasm.tswraps it,voting-portal/src/routes/VotingScreen.tsxcalls it. The frontends consumesequent-corefrom the committed tgz, so #12975's guard has been fixed in source and merged but absent from the shipped artifact since 24 August.How it was rebuilt
.devcontainer/scripts/build-sequent-core.sh, with only its hardcoded/workspaces/stepTARGET_DIRchanged. Samewasm-pack build --mode no-install --out-name index --release --target web --features=wasmtest,default_features, samewasm-pack pack, same awk lockfile rewrite driven by theshasum:line, same copy to all fourrust/directories.Toolchain matches
flake.nixon both versions it pins:Installed via rustup rather than nix, so
wasm-packandwasm-optare not the flake-pinned builds. Worth a reviewer's attention, though the resulting hash was never going to bef1b9927dregardless — the workflow already documents this build as environment-dependent:and its check compares committed tgz against committed lockfile, not against a fresh build. If you'd rather the artifact came from the devcontainer, this PR is still the right diff — just rebuild and force-push over it.
Verification
All four tgz identical, and the workflow's own comparison run verbatim:
The wasm inside the committed tgz is byte-identical to a build from the fixed source (
40ca56c9).And to show the artifact carries the change rather than merely being newer — reverting the two-line fix and rebuilding produces a different wasm:
The lockfile diff is exactly three
resolvedfragments and nothing else; the tarball file list is unchanged.Follow-up
meta#13010 also notes the gap that let this through: the
build_wasmcheck verifies the lockfile describes the tgz in the tree, not that the tgz was built from the tree's sources. A commit touchingsequent-coresources and neither of those two files would go green with a silently stale artifact. Re-enabling the disabled "compare against a fresh build" step is what closes it.🤖 Generated with Claude Code