Skip to content

fix(release): make the Codex dogfood runners able to execute the real harness - #2676

Merged
namastex888 merged 2 commits into
mainfrom
fix/dogfood-runner-env
Jul 26, 2026
Merged

namastex888 merged 2 commits into
mainfrom
fix/dogfood-runner-env

Conversation

@automagik-genie

@automagik-genie automagik-genie commented Jul 26, 2026 •

Copy link
Copy Markdown
Contributor

Why main-first

The dogfood job executes from github.sha = main, so this fix is inert until it lands here — and landing it on main BEFORE merging to dev means the dev merge fires the first release that can go full green, with zero wasted cycles. A twin PR to dev follows immediately after this merges.

The three per-platform environment defects (run 30216261391 — the first run past bundle verification and the DB self-heal)

  1. linux-x64-glibc / linux-arm64 — bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted. Ubuntu 24.04 images permit creating unprivileged user namespaces but AppArmor denies capability use inside them, killing Codex's bubblewrap sandbox at loopback setup. Fix: lift kernel.apparmor_restrict_unprivileged_userns on Linux runners so the dogfood exercises Codex's real sandbox rather than disabling it.

  2. darwin-arm64 / linux-arm64 — slsa-verifier installer action cannot run on arm64. Its bootstrap is a linux-amd64 binary: spawn ENOEXEC on macOS (failed on every darwin run to date), exit 2 on ubuntu-24.04-arm. Fix: install the platform-correct v2.7.1 release asset directly, SHA256-pinned to upstream's checksum ledger and cross-verified against fresh downloads. The other jobs keep the action — they run on amd64 where it works.

  3. linux-x64-musl — capability probe fails on docker pull noise. The harness fails any probe that writes stderr; the adapter's first docker run of the unpulled Alpine image streams pull progress there. Fix: pre-pull the exact pinned digest (same pin as scripts/run-musl-dogfood.sh).

Evidence this is the last dogfood layer

The complete dogfood entry passes offline on darwin-arm64 against the real signed v5.260726.7 candidate (which carries both product fixes): codex-dogfood-entry: OK — full N→T lifecycle through real Codex 0.144.1, evidence emitted. The publish tail beyond dogfood was independently reviewed clean (verdict SHIP; latent findings filed as #2674/#2675).

Validation: YAML lint clean, all action pins resolve, the four workflow-referencing test files pass (67 tests).

Summary by CodeRabbit

  • Bug Fixes
    • Improved release validation reliability by securely installing the required verification tool.
    • Enabled sandbox networking on supported Linux environments.
    • Preloaded the required Alpine container image when applicable to reduce unnecessary probe output.

… harness

Three per-platform environment defects surfaced on run 30216261391, the
first to get past bundle verification and the database self-heal:

- linux-x64-glibc / linux-arm64: Ubuntu 24.04 AppArmor permits creating
  unprivileged user namespaces but denies capability use inside them, so
  Codex's bubblewrap sandbox dies at loopback setup (bwrap: loopback:
  Failed RTM_NEWADDR). Lift kernel.apparmor_restrict_unprivileged_userns
  so the dogfood exercises the real sandbox instead of disabling it.

- darwin-arm64 / linux-arm64: the slsa-verifier installer action
  bootstraps through a linux-amd64 binary and can never run on arm64
  runners (ENOEXEC on macOS, exit 2 on ubuntu-24.04-arm; it failed on
  every darwin run to date). Install the platform-correct v2.7.1 release
  asset directly, pinned to upstream's SHA256SUM.md ledger and verified
  against fresh downloads.

- linux-x64-musl: the harness fails any capability probe that writes
  stderr, and the adapter's first docker run of the unpulled Alpine image
  streams pull progress there. Pre-pull the exact pinned digest.

Validated: the complete dogfood entry passes offline on darwin-arm64
against the real signed v5.260726.7 candidate (both product fixes) —
codex-dogfood-entry: OK, N→T lifecycle through real Codex 0.144.1.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@coderabbitai

coderabbitai Bot commented Jul 26, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8409290a-d74d-4620-890a-40e5a7afd91e

📥 Commits

Reviewing files that changed from the base of the PR and between 9b39704 and a4ee056.

📒 Files selected for processing (1)
  • .github/workflows/release-publish.yml

📝 Walkthrough

Walkthrough

The release workflow replaces the SLSA verifier action with checksum-verified platform-specific installation and configures Linux sandbox networking. Alpine container jobs now pre-pull a pinned image digest before capability probing.

Changes

Release runner setup

Layer / File(s) Summary
Verified tool and sandbox setup
.github/workflows/release-publish.yml
The job installs slsa-verifier for supported platforms, verifies its pinned SHA-256, enables the Linux AppArmor sysctl, and conditionally pre-pulls the pinned Alpine image for alpine-container.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: namastex888

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: fixing Codex dogfood runners so they can run the real harness.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/dogfood-runner-env

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@namastex888
namastex888 merged commit a9b6ec2 into main Jul 26, 2026
20 checks passed
automagik-genie added a commit that referenced this pull request Jul 26, 2026
fix(release): dogfood runner environment fixes (dev twin of #2676)

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

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

# clean. Image pin must match scripts/run-musl-dogfood.sh.
- name: Pre-pull the pinned Alpine image for the musl execution adapter
if: matrix.execution == 'alpine-container'
run: docker pull -q 'alpine:3.19@sha256:6baf43584bcb78f2e5847d1de515f23499913ac9f12bdf834811a3145eb11ca1'

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 Stop forcing another pull during the musl probe

For the linux-x64-musl matrix entry, this pre-pull cannot keep the capability probe's stderr clean: scripts/run-musl-dogfood.sh:50 still invokes every adapter call with docker run --pull=always, and Docker documents always as “Always perform a pull before creating the container.” The resulting pull status is written to Docker CLI stderr, which tests/support/codex-dogfood-harness.ts:658-659 rejects, so this release job still fails at the probe even when the image was pre-pulled. Use a non-pulling policy after the digest-pinned pre-pull or otherwise prevent that status output from reaching probe stderr.

AGENTS.md reference: AGENTS.md:L43-L45

Useful? React with 👍 / 👎.

@automagik-genie
automagik-genie deleted the fix/dogfood-runner-env branch September 25, 2026 04:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants