Skip to content

fix: require human approval before release publication - #6641

Merged
bokelley merged 3 commits into
mainfrom
fix/release-human-approval-gates
Aug 23, 2026
Merged

fix: require human approval before release publication#6641
bokelley merged 3 commits into
mainfrom
fix/release-human-approval-gates

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • require a human approval on the final release PR head before committed protocol artifacts can be published
  • leave generated documentation snapshot PRs open for human review instead of enabling auto-merge
  • cover both safeguards in the release workflow regression test

Verification

  • npm run test:release-workflow
  • actionlint .github/workflows/release.yml .github/workflows/release-docs.yml (existing ShellCheck warnings only)
  • repository pre-commit suite

@bokelley
bokelley marked this pull request as ready for review August 18, 2026 06:16

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ladon verdict: Escalate to human review

Escalate — gated paths touched without an approving review.

This PR modifies .github/workflows/release.yml and .github/workflows/release-docs.yml, both of which match the hard approval gate (.github/workflows/**). gated_paths: true and review_decision: REVIEW_REQUIRED (not APPROVED), so decision-table row 2 fires: escalate.

The change itself looks clean — the reviewer found no blocking or medium findings. It adds a fail-closed human-approval gate to release.yml (verifies a non-Bot APPROVED review on the final head SHA before publishing artifacts), removes docs-snapshot auto-merge from release-docs.yml, ships tests pinning the load-bearing predicates, and carries a matching patch changeset with no wire change. There is nothing actionable to fix; the escalation is purely the deterministic gated-paths requirement.

Escalation reasons

  • .github/workflows/release.yml and .github/workflows/release-docs.yml are under the .github/workflows/** hard approval gate; review_decision is REVIEW_REQUIRED. Human/CODEOWNERS approval required before merge.

Why human review

  • Modifies gated workflow files .github/workflows/release.yml and .github/workflows/release-docs.yml (match .github/workflows/**); review_decision is REVIEW_REQUIRED, so human/CODEOWNERS approval is required.
  • This PR touches a path under a hard, non-overridable approval gate (.github/workflows/release-docs.yml (modified) matches .github/workflows/**; .github/workflows/release.yml (modified) matches .github/workflows/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@aao-secretariat aao-secretariat Bot added the ladon/needs-human-review Ladon has escalated this PR for human review. label Aug 18, 2026
# Conflicts:
#	tests/release-workflow-immutability.test.cjs

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ladon verdict: Escalate to human review

Escalate — gated workflow paths require human/CODEOWNERS approval.

This PR modifies .github/workflows/release.yml and .github/workflows/release-docs.yml, both of which match the hard approval-gate glob .github/workflows/**. gated_paths is true and review_decision is REVIEW_REQUIRED (not APPROVED), so decision-table row 2 fires: the hard gate is not satisfied and Ladon cannot auto-approve regardless of how clean the diff is.

The reviewer's assessment is otherwise a clean pass — no critical/high/medium findings. The fail-closed human-approval gate in release.yml is correctly positioned before all publish steps (Sign/Upload/R2) under the same has_release_artifacts=='true' condition, every fail path resolves to exit 1, auto-merge removal in release-docs.yml is sound, and the required patch changeset is correctly in scope for the protocol-scoped release script.

The prior decision was also escalate for the same gated-paths reason. Nothing here is blocking on the merits; the escalation persists solely because the deterministic gate remains unsatisfied. A human/CODEOWNERS approval lifts it.

Escalation reasons

  • .github/workflows/release.yml and .github/workflows/release-docs.yml are under a hard approval gate (match .github/workflows/**); review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS approval is required before merge.

Why human review

  • Modifies gated workflow files .github/workflows/release.yml and .github/workflows/release-docs.yml (match .github/workflows/**); review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval required (decision-table row 2).
  • This PR touches a path under a hard, non-overridable approval gate (.github/workflows/release-docs.yml (modified) matches .github/workflows/**; .github/workflows/release.yml (modified) matches .github/workflows/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@bokelley
bokelley enabled auto-merge (squash) August 23, 2026 07:27
@bokelley
bokelley disabled auto-merge August 23, 2026 07:28
@bokelley
bokelley merged commit b407de6 into main Aug 23, 2026
29 checks passed
@bokelley
bokelley deleted the fix/release-human-approval-gates branch August 23, 2026 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ladon/needs-human-review Ladon has escalated this PR for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant