Skip to content

fix: make release retries self-healing - #53

Merged
HaodiFan merged 1 commit into
mainfrom
codex/bug/20260804-infra-v051-release-followup
Aug 4, 2026
Merged

HaodiFan merged 1 commit into
mainfrom
codex/bug/20260804-infra-v051-release-followup

Conversation

@HaodiFan

@HaodiFan HaodiFan commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

What problem does this PR solve?

The v0.5.1 release run proved that the Actions GITHUB_TOKEN cannot read the repository Administration endpoint for immutable-release settings. A duplicate tag event also produced two concurrent release runs.

Why does this matter now?

The current v0.5.1 tag has no Release because the workflow stopped before Draft creation. The retry contract must work with the built-in token and remain safe under duplicate or interrupted runs.

What is the intended outcome?

Serialize same-tag runs, verify the peeled remote tag twice, publish only after exact asset verification, re-audit an existing immutable Release idempotently, and clean up any existing or newly published mutable Release.

What is intentionally out of scope?

No product composition, Core runtime, CoEvolve, contract, Harness Skill, or target migration behavior changes.

What should reviewers focus on?

Duplicate-run serialization, existing mutable/immutable recovery branches, tag identity, and the asset verification ordering.

Linked Context

Related #52

Requested by the failed v0.5.1 Release run 30897069562.

PR Scope

  • Docs / README
  • Governance / template / script

Primary layer:

  • Execution Layer
  • Governance Layer

Primary artifact kind: Release workflow recovery contract

One thing this PR does: makes immutable Release retries safe and self-healing with the built-in GitHub token.

What this PR does not do: claim strict atomic immutability preflight; configuration drift uses bounded rollback.

EvoZeus Evidence Proof

  • Behavior, Case, or issue addressed: Administration endpoint returned HTTP 403 to GITHUB_TOKEN; duplicate tag runs could race.
  • Real environment or session tested: GitHub Actions run 30897069562 and local workflow tests.
  • Exact steps or command run after this patch: release/preflight tests, PR readiness, YAML parse, diff check, npm audit.
  • Evidence after change: same-tag runs serialize; remote peeled Tag is checked before build and publication; existing mutable is deleted and fails; existing immutable is fully re-audited; newly published mutable is deleted and fails.
  • Observed result after change: 30/30 targeted tests passed; independent subagent audit PASS.
  • What was not tested: real tag publication awaits merge and v0.5.1 tag retarget.
  • Proof limitations or constraints: immutable-setting preflight requires Administration credentials unavailable to GITHUB_TOKEN; the workflow documents bounded rollback for that path.

Verdict / Review Gate

  • Fix Environment

Review gates checked:

  • Evidence Gate
  • Privacy Gate
  • Operational Gate
  • Negative Gate
  • Scope Gate

Tests and Validation

npm run test:release-notes; npm run test:preflight; python3 scripts/check_pr_ready.py; git diff --check; YAML parse; npm audit --audit-level=high.

All checks passed.

Risk Checklist

Did user-visible behavior change? (No)

Did SKILL.md, public instructions, or agent behavior change? (No)

Did privacy, security, network, auth, or tool permission behavior change? (Yes)

Did schema, storage, branch, PR, or governance behavior change? (Yes)

Highest-risk area: interrupted or duplicate Release publication.

How is that risk mitigated? Serialized runs, two remote Tag checks, Draft asset verification, explicit mutable recovery, and immutable idempotent re-audit.

AI-Assisted Work

Was this PR written or materially changed by an AI coding agent? (Yes)

Codex implemented the recovery contract; an independent subagent identified and verified interrupted-run recovery boundaries.

Confirm the author understands the changed behavior:

  • Yes

Current Review State

Next action: run required CI, admin-merge, retarget the unpublished v0.5.1 tag, protect v* tags, and audit the immutable Release.

Still waiting on author, maintainer, CI, or external proof: required GitHub checks and real-tag Release proof.

Reviewer or bot comments addressed: all independent audit blockers were fixed before opening this PR.

Privacy Checklist

  • No raw private session logs
  • No secrets, tokens, cookies, or credentials
  • No customer data
  • No private local paths
  • Evidence is minimized and redacted

Operational Checklist

  • This PR has one primary purpose
  • This PR does not mix unrelated refactor, runtime, docs, and community Case work
  • Links are relative or public
  • python3 scripts/check_pr_ready.py passes
  • git diff --check passes

@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
evozeus-metainflow Ready Ready Preview Aug 4, 2026 9:56am

@github-actions github-actions Bot added proof:needed Real behavior proof is missing or incomplete triage:too-many-prs Author or branch family exceeds queue limits labels Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

EvoZeus Proof Gate

Mode: dry-run

Proof labels

  • proof:needed

Missing or weak fields

  • missing code/workflow section: Problem
  • missing code/workflow section: Scope
  • missing code/workflow section: Real behavior proof
  • missing code/workflow section: Tests
  • missing code/workflow section: Rollback plan
  • missing code/workflow section: Problem
  • missing code/workflow section: Scope
  • missing code/workflow section: Real behavior proof
  • missing code/workflow section: Tests
  • missing code/workflow section: Rollback plan

Next action

  • Add real behavior proof, not only mocks/lint/CI.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

EvoZeus Queue Guard

Mode: dry-run

Author open PRs: 4

Branch family: codex/bug/20260804-infra-v051-release-followup

Branch family open PRs: 1

Violations

  • author has 4 open PRs; limit 3

Next action

  • Reduce open PR queue or ask maintainers to override.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

EvoZeus Privacy Scan

Mode: dry-run

Findings

  • none

Next action

  • No simple privacy pattern matched in the PR diff.

@github-actions github-actions Bot added triage:dirty-pr PR mixes too many surfaces or should be split triage:owner-only Owner review required triage:rfc-needed RFC required before review labels Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

EvoZeus Dirty PR Check

Mode: dry-run

Surfaces

  • code
  • docs
  • workflow

Reasons

  • changes 3 surfaces: code, docs, workflow
  • protected path changed
  • governance/workflow change has no RFC or maintainer discussion marker

Next action

  • Split the PR, add RFC context, or wait for owner review.

@github-actions github-actions Bot added risk:github-token May affect GitHub token permissions risk:workflow Touches GitHub Actions or automation size:S Small PR type:code Runtime, CLI, script, or behavior change type:docs Documentation or example change type:workflow GitHub workflow or automation change labels Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

EvoZeus Labeler Report

PR type/risk labels were updated from changed files.

Surfaces

  • code
  • docs
  • workflow

Labels

  • risk:github-token
  • risk:workflow
  • size:S
  • type:code
  • type:docs
  • type:workflow

Changed lines

  • 66

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

EvoZeus Auto Response

Missing real behavior proof

This PR needs real behavior proof before review can continue. Add the command, environment, input, output after the patch, observed result, and what was not tested.


Split this PR

This PR appears to mix too many surfaces or protected paths. Split it into one primary layer and one review target.


Owner review required

This PR changes a protected path. CODEOWNERS review and maintainer approval are required; do not request automerge.


RFC required

Governance, workflow, branch protection, or architecture changes need linked RFC or maintainer discussion before normal PR review.


Queue limit reached

This author or branch family appears to exceed the current queue limit. Reduce open PRs or ask a maintainer to override before continuing review.

@HaodiFan
HaodiFan merged commit 4f296fc into main Aug 4, 2026
12 checks passed
@HaodiFan
HaodiFan deleted the codex/bug/20260804-infra-v051-release-followup branch August 4, 2026 09:58

@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: fc5ee60b91

ℹ️ 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".

- name: Build Core archive and Stable product manifest
run: |
test "$(git describe --tags --exact-match)" = "${GITHUB_REF_NAME}"
remote_tag_commit="$(git ls-remote origin "refs/tags/${GITHUB_REF_NAME}^{}" | awk '{print $1}')"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Resolve lightweight tags before comparing the remote commit

When a release uses a lightweight tag, git ls-remote origin "refs/tags/${GITHUB_REF_NAME}^{}" returns no row because the ^{} peeled ref is advertised only for annotated tags (the git ls-remote --help contract describes these as peeled tags). Consequently remote_tag_commit is empty and this check aborts every lightweight-tag release before draft creation. Resolve both lightweight and annotated remote tags to their underlying commit before comparing with GITHUB_SHA.

Useful? React with 👍 / 👎.

This branch was successfully deployed

1 active deployment
Preview — fc5ee60b Deployed Aug 4, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

proof:needed Real behavior proof is missing or incomplete risk:github-token May affect GitHub token permissions risk:workflow Touches GitHub Actions or automation size:S Small PR triage:dirty-pr PR mixes too many surfaces or should be split triage:owner-only Owner review required triage:rfc-needed RFC required before review triage:too-many-prs Author or branch family exceeds queue limits type:code Runtime, CLI, script, or behavior change type:docs Documentation or example change type:workflow GitHub workflow or automation change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant