Skip to content

feat: govern automatic crate releases and dependency updater onboarding - #88

Merged
zoeyrose merged 16 commits into
mainfrom
feat/automatic-crate-release
Oct 11, 2026
Merged

zoeyrose merged 16 commits into
mainfrom
feat/automatic-crate-release

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Summary

Define automatic library publication for protocol, renderer and content-toolkit after reviewed source/version merges, without another release approval. Retain protocol's completed manual 0.2 path and every unrelated App/policy contract.

The three reviewed producer workflows are merged and structurally qualified at protected main. Their exact zero-review environments are observed. Automatic release execution remains paused for the narrow immutable-policy activation window; renderer/toolkit bootstrap and publisher registration remain owner work.

Implementation / behavior

  • Bind the three stable repository IDs to protected main, publish-crate.yml and crates-io-release. Preserve the reviewed rust-lang/crates-io-auth-action@* allowance while requiring full immutable official-action refs in actual workflows.
  • Restrict one-time local API-token bootstrap to fourteen libraries, seven renderer and seven toolkit; exclude the CLIs/MCP application, revoke the bootstrap token, then use OIDC only.
  • Qualify both source/publication workflows at the same exact protected-main revision. Isolate inert source signing from credential-free package preparation and semantic-release. Read-only automatic verification precedes the inert publisher with contents write only for create-only crate/version Git-reference upload intent, plus OIDC.
  • Reject comment/disabled source, widened guards/scopes, skipped helpers, mutable refs, shell/container/environment overrides, ignored failures, matrix/reusable execution and recursive credential references outside the exact upload input. Include bracket, whitespace, case, aggregate/dynamic step references and quoted expression-delimiter regressions.
  • Keep runtime cryptographic manifest provenance, immutable-release checks and atomic create/readback before registry PUT in the producer helper. Existing/ambiguous upload intents with an absent version block retry; never automatically delete or reset them.
  • Before any broad apply mutation, compare desired and live immutable selections. Newly added producers require observed setup inventory plus fresh scoped source/environment qualification; missing/pending records, drift or a changed live policy fail closed. Initial accepted draft-first complete-asset code qualification does not require an already published immutable release.
  • Preserve Classic in the desired immutable selection. Document coordinator-only targeted activation with snapshot, exact identities, freshness, readback and verified rollback; the broad publisher plan includes unrelated mutations and is not this delivery's activation method.
  • Record updater App 5276152/installation 170332148, selected client/editor only, exact contents/PR write and metadata read, and credential names only. Include exact workflow consumers, verified key creation/verification dates and the existing 90-day internal rotation deadline (2027-01-09), which is not upstream expiry.
  • Record owner-observed private linux-build read grants for client/editor without changing visibility/source/foreign grants. Client's real post-grant run proved pinned-image pull and full read-only preparation/validation with NoOp; skipped lock/writer jobs do not prove App writing. Editor and successful owned-PR proof remain pending.

Validation

  • All twenty governance shell suites passed on the final integrated source using isolated official jq 1.7.1 with GITHUB_ACTIONS=true and empty incoming GH_TOKEN, including negative schema, recursive credential, execution-shape, initial immutable qualification and live-metadata fixtures.
  • bin/validate, ShellCheck, actionlint and git diff --check passed.
  • Independent functional and security review approved exact head 1222b00dddb3ae18f682040d840c18ab8849b24c.
  • All three actual merged producer workflow pairs pass structural checks. Scoped supported API readback confirms repository IDs, protected main, exact source bytes and all three main-only environments with no reviewers/wait/admin bypass/secrets/variables.
  • The complete read-only publisher plan succeeded and was inspected. It contains unrelated live-policy differences; no broad apply was performed.
  • Initial reviewed producer candidates and merged mains have identical complete Git trees. Independent source review, local draft-first complete-asset validation and exact-head CI qualify code; actual release assets, signing and registry operations remain runtime proof.

Limitations / follow-up

This changes desired state, validation and documentation. The coordinator owns narrow immutable activation, restoration/dispatch of the three paused source-release workflows, exact generated-asset qualification, owner-local bootstrap/registration and real automatic upload/consumer PR proof. No credential values or private credential paths are published.

Coordinate the official auth-action allowance overlap with security PR #87; preserve its wildcard intent and all foreign policy. No unmerged foreign changes were adopted. This PR does not merge itself or apply live policy. Full live manual verification still encounters unrelated existing Classic Pages drift; successful scoped checks and mocked fixtures do not claim complete organization acceptance.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-11T17:40:56.565904Z 4caf061 PR opened
🔒 Security Review ✅ Completed 2026-10-11T17:45:17.835499Z 4caf061 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4caf061189

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread lib/verify_crate_workflow.py
Comment thread config/immutable-releases.json
Comment thread lib/verify_crate_workflow.py
Comment thread bin/validate Outdated
@zoeyrose
zoeyrose merged commit 5c195e9 into main Oct 11, 2026
6 checks passed
@zoeyrose
zoeyrose deleted the feat/automatic-crate-release branch October 11, 2026 19:40
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 2.12.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant