Skip to content

fix(release): restore prerelease and release validation startup#103834

Merged
steipete merged 3 commits into
mainfrom
codex/fix-plugin-prerelease-no-write
Jul 10, 2026
Merged

fix(release): restore prerelease and release validation startup#103834
steipete merged 3 commits into
mainfrom
codex/fix-plugin-prerelease-no-write

Conversation

@steipete

@steipete steipete commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Fixes #103774

What Problem This Solves

Fixes an issue where Plugin Prerelease and Release Checks dispatches could fail during workflow graph validation before any job started. Read-only callers reached reusable workflows that still declared conditional package-write jobs, and GitHub validates those permissions even when the writer job would be skipped.

Why This Change Was Made

Release validation is now a canonical read-only, artifact-backed graph. Install smoke has a small schedule/manual wrapper over a reusable artifact-only core, and Docker/live image publication is isolated in an explicit publisher called only by the scheduled workflow with package-write permission. Package acceptance and update migration no longer contain hidden writer paths.

Targeted Docker reruns now use the exact selected SHA recorded in the failure artifact, not the workflow-definition head. Generated manual dispatches omit reusable-only package artifact inputs and deleted temporary workflow refs, reuse only GHCR-backed images, and drop those image refs when an explicit target override does not match the artifact SHA. Runner-local artifact tags are omitted so a fresh runner rebuilds them instead of trying to pull an inaccessible local tag.

User Impact

Plugin prerelease, package acceptance, install smoke, live/E2E, and release validation can start from read-only callers again. Scheduled live validation still publishes exact tested shared images after the validation graph succeeds. No version, tag, package, or release publication is included.

Evidence

  • Before: Plugin Prerelease run https://github.com/openclaw/openclaw/actions/runs/29103858985 failed at startup with zero jobs on exact SHA 9b4c7c0.
  • Before: Release Checks live/E2E child https://github.com/openclaw/openclaw/actions/runs/29105252981 also failed at startup with zero jobs.
  • Trusted Blacksmith Testbox tbx_01kx6dfhdk75wste093fsgt4bv: 10 focused workflow/script files, 409 tests passed before the final install-input correction; the changed install/release subset was then rerun at the current head with 3 files and 88 tests passing.
  • Exact head f43c8a0 on the same Testbox: 6 focused workflow/helper files, 204 tests passed; targeted formatting and workflow checks including zizmor also passed.
  • Trusted Blacksmith Testbox tbx_01kx6dfhdk75wste093fsgt4bv: workflow checks passed, including actionlint, zizmor, and composite-run interpolation guards.
  • Broad changed gate passed on the same Testbox: full tsgo/typecheck, core/extensions/scripts oxlint, import-cycle checks, and repository guards.
  • Recursive permission-contract coverage walks the Plugin Prerelease and Release Checks reusable-workflow graphs and proves that even false-conditioned writers exceed a read-only caller ceiling.
  • Independent and autoreview passes caught and fixed reusable caller-event, cleanup-only artifact, explicit-ref validation, and stale-image-reuse regressions. The final exact-head autoreview completed with zero findings at 0.93 confidence, and the independent helper/install workflow review was clean.

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation scripts Repository scripts docker Docker and sandbox tooling size: XL maintainer Maintainer-authored PR labels Jul 10, 2026

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc1f84fe49

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

description: Shared Docker image transport
required: true
default: allow-push
default: no-push-artifact

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.

P2 Badge Preserve branch/tag dispatch for live/E2E checks

When this reusable workflow is manually dispatched with a branch or tag in ref (the input still advertises “Ref, tag, or SHA”), the new default sends the run down shared_image_policy=no-push-artifact; validate_selected_ref then rejects anything except a lowercase 40-character SHA before any validation job can run. Since the only other choice, existing-only, also requires explicit Docker image refs, manual branch/tag live-only or Docker reruns that previously worked under the old default now fail at validation; keep a branch/tag-compatible default or resolve/pass the selected SHA when using no-push artifacts.

Useful? React with 👍 / 👎.

@clawsweeper

clawsweeper Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Codex review: stale review; fresh review needed.

Summary
The latest durable ClawSweeper review was for head 1927f20d6b5c87aabb4d33e865061993f245f5d1, but the PR head is now f43c8a0ba3ba7aed70d6b7f43e293c9231effcff. Its old verdict and PR readiness labels are no longer current.

Next step
Run or wait for a fresh ClawSweeper review on the current PR head.

@steipete

Copy link
Copy Markdown
Contributor Author

Land-ready proof for exact head f43c8a0ba3ba7aed70d6b7f43e293c9231effcff:

  • Hosted CI 29111454333, Build Artifacts 29111454076, Testbox 29111454584, ARM 29111454291, and Workflow Sanity 29111454137 are terminal green. The Testbox workflow completed successfully with its execution steps skipped; focused delegated Testbox proof is below.
  • Trusted Blacksmith Testbox-through-Crabbox lease tbx_01kx6dfhdk75wste093fsgt4bv: final six-file workflow/helper surface, 204 tests passed.
  • corepack pnpm check:workflows passed, including zizmor and composite-run interpolation guards; targeted oxfmt and lightweight static checks passed.
  • Fresh exact-head autoreview reported zero findings at 0.93 confidence; independent helper/install review also cleared the exact commit.
  • OPENCLAW_TESTBOX=1 scripts/pr prepare-run 103834 completed in hosted_exact_or_recent_rebase mode and verified remote PR head equals the prepared/tested head.

Review iterations fixed runner-local image reuse, reusable caller-event handling, undeclared manual inputs, workflow-head versus artifact-target confusion, deleted temporary workflow refs, cleanup-only local artifacts, non-exact explicit refs, and stale GHCR reuse after a target override. No known pre-merge proof gap remains. Post-merge exact-main Plugin Prerelease and affected Release Checks/full release validation reruns remain the final release proof.

@steipete
steipete merged commit b597a8d into main Jul 10, 2026
91 checks passed
@steipete
steipete deleted the codex/fix-plugin-prerelease-no-write branch July 10, 2026 17:46
@steipete

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 11, 2026
…claw#103834)

* fix(release): split image publication from validation

* fix(ci): honor install smoke caller input

* fix(ci): harden Docker rerun targeting
RomneyDa added a commit that referenced this pull request Jul 17, 2026
* fix(release): restore frozen validation startup

Adapt the no-write validation portion of b597a8d (#103834) for the 6.x extended-stable workflow set. Remove validation-owned image publisher jobs instead of granting write permissions; Docker publication remains out of scope.

* fix(release): allow canonical extended-stable checks

Restore the openclaw-release-checks.yml portion of c7810fc (#99352) that authorizes the canonical extended-stable/YYYY.M.33 workflow branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docker Docker and sandbox tooling docs Improvements or additions to documentation maintainer Maintainer-authored PR scripts Repository scripts size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Plugin prerelease no-write validation fails workflow startup

1 participant