Skip to content

fix(verification): let the nightly provenance rebuild pass - #588

Merged
0thernet merged 1 commit into
mainfrom
fix/nightly-provenance-success-check
Oct 9, 2026
Merged

0thernet merged 1 commit into
mainfrom
fix/nightly-provenance-success-check

Conversation

@0thernet

@0thernet 0thernet commented Oct 9, 2026

Copy link
Copy Markdown
Member

Fixes the Nightly verification messaging binary provenance job, which has failed every night since #396.

Root cause

  • must() in scripts/messaging-runtime-provenance.ts checked outcome.kind !== "succeeded", but runTool only returns exited / timed-out / output-limit / signaled / spawn-failed. Every command failed, which is why the log reads "wacli clone failed (exited, exit code 0)". The job never reached a real rebuild.
  • Once that was fixed, imsg failed assertPatchStackIdentity: git am writes new committer metadata, so the recorded tipCommit (533789…) can never be reproduced. wacli already pins sourceTree for this reason. imsg now pins sourceTree ac999492…, recomputed by applying the four reviewed patches (their From headers name the recorded tip, 533789…) to base 25beb76.

Changes

  • Adds commandSucceeded() (exited with code 0) and uses it in must().
  • Adds the imsg sourceTree pin.
  • Adds tests for both.

Verification

  • bun test scripts/messaging-runtime-provenance.test.ts: 5 pass
  • bun run ./scripts/messaging-runtime-provenance.ts nightly locally on macOS arm64: wacli rebuilt from pinned source matches the committed executable byte for byte; imsg's pinned recipe builds an arm64 executable.

Utility

This is the only check that rebuilds the shipped wacli/imsg binaries from pinned upstream source plus the reviewed patches. Per-PR CI (verify) only checks that the committed bytes match their own provenance records. Worth keeping.

🤖 Generated with Claude Code

must() compared runTool's outcome against a "succeeded" kind that
runTool never returns, so every rebuild command failed, even a clone
that exited 0. The nightly provenance job has not passed since #396.

With that fixed, imsg's tip-commit check also failed because git am
writes fresh committer metadata. Pin imsg's reconstructed source tree
the same way wacli already does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ghostget Ready Ready Preview Oct 9, 2026 3:59pm UTC

Request Review

@0thernet
0thernet enabled auto-merge (squash) October 9, 2026 15:59
@0thernet
0thernet merged commit 1183cf5 into main Oct 9, 2026
27 checks passed
@0thernet
0thernet deleted the fix/nightly-provenance-success-check branch October 9, 2026 16:09

This branch was successfully deployed

1 active deployment
Preview — 342a0f36 Deployed Oct 9, 2026 by vercel[bot]
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.

1 participant