Repository navigation
Make verified release publication operational - #201
Merged
Pepps233 merged 2 commits intoSep 13, 2026
Merged
Conversation
Reject incomplete credentials and inconsistent retries before they can advertise an invalid release. Use isolated R2 environments and prove conditional publication against staging without running a release.
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
Release announcement targeted the wrong R2 account and lacked configured credentials.
Use dedicated production and staging environments, reject missing credentials immediately, and make retries preserve the verified immutable release record.
Reasoning
Release CI remains the sole production metadata writer after every public package and tarball passes npm verification.
Separate bucket-scoped credentials avoid giving staging access to production or redirecting the existing model publisher.
The initial command-level regression reproduced missing-credential handling, inconsistent recovery records, and acceptance of conflicting source commits.
Changes
diffex-release-upload; add a manual-only staging verification workflow usingdiffex-release-staging.GitHub rejected required reviewers on the current plan.
With explicit owner approval, production permits
mainorv*tags and staging permits onlymain, without a required-reviewer gate.The new manual workflow can run on GitHub after it reaches
main; the staging evidence here comes from the real publisher running locally against R2.No real release or production object was written.
Testing
node --test scripts/publish-release-announcement.test.mjs: 14 passed.npm run check: passed../test.sh: passed.node scripts/verify-release-publication.mjs --staging: missing packages, unavailable tarballs, first and repeated publication, conditional advancement, older announcements, and interrupted recovery passed using controlled npm responses and real R2.