Repository navigation
Replay verified prepared release artifacts without rebuilding - #39
Merged
Merged
Conversation
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.
Summary
Allow
native_release.ymlto publish an already qualified prepared artifact without rebuilding it. Replay requires the original run ID, full owner source SHA, tag and manifest SHA256, then verifies the trusted successful run, upstream gitlink, artifact digest, complete archive inventory and archive checksums.Preparation defaults to
publish=false. Only the main-only publication job can write: it verifies the transferred bytes again, atomically creates a new tag at the prepared source, and creates the release without overwriting existing tags, releases or assets. Same-tag runs are serialized; failures after tag creation report the partial state. Existing explicit build-and-publish dispatches remain supported.Future manifests add the owner source; legacy prepared manifests remain usable through trusted run and gitlink provenance. The current
llamadartmanifest reader accepted the additive field in an executed compatibility check covering 12 runtimes and the Apple checksum.Validation
actionlint .github/workflows/native_release.yml, Python compilation andgit diff --checkpassed.433796eb628bc5d513728d3fc045c2afa189dd68: 82 tests, 16 expected skips (214.956 seconds), with the pinned cached Dart 3.13.5 binary on PATH. Skips require unavailable model/runtime/platform scenarios.No release workflow was dispatched, no tag or release was created, and no artifacts were published. Independent review accepted exact head
433796eb628bc5d513728d3fc045c2afa189dd68against1c1f03bbb4578c3fbf80a96ad90718ba78a09407: 30 independently rerun tests and 64 release-condition cases passed, with no blocking findings. All 17 GitHub checks passed; no review threads or closing issue references remain. Source merge does not authorize publication.Remaining integration question
Historical-source publication needs a credential check before readiness. GitHub's release API documentation requires workflow write authorization when the target commit's workflow files differ from the default branch;
GITHUB_TOKENcannot receive that permission. Reference creation also documents a contents+workflows permission set. The original prepared commit predates this publisher workflow, so atomic tag creation with the current token may fail closed. No publication was attempted to probe this. The existing credential path or a source/provenance decision must resolve this before publication.Read-only configuration inventory found no repository secrets, repository variables or environments supplying another release credential. Original historical-candidate publication remains on hold. A fresh preparation after this workflow merges is a separate option that preserves the old candidate and avoids the documented workflow-tree mismatch while workflow files remain unchanged. No new preparation was dispatched.