Fix repository-dispatch audit publication identity - #1026
Conversation
Bootstrap audit evidenceExact head: The trusted self-hosted Claude audit completed with PASS and zero P0/P1/P2/P3 findings. Source run: https://github.com/codemower-ai/code-mower/actions/runs/35307942182. The reviewer-seal step completed successfully with digest The audit comment could not publish because this PR repairs the default-branch publisher's repository-dispatch identity check. The failed publication is the expected bootstrap condition covered by #1025: GitHub exposes the event type in This evidence is recorded for a one-time owner gate decision on this bootstrap PR only. After merge, #1024 must demonstrate the fixed end-to-end publisher and authoritative gate without an override. |
Summary
Repository-dispatch audit publications were rejected because GitHub uses the event type as
display_title. Validate the workflow's APInamealongside the existing trusted path and provenance checks, so valid sealed verdicts can publish while wrong or missing workflow identities still fail closed.Restore the default-branch support package's
srcimport path in the optional metadata-upload step and its maintained/package templates. Document a stable Python 3.12+ environment with the package's declared dependencies,CODE_MOWER_PYTHON, and a private runner-job preflight that checks interpreter selection, dependency versions, and source imports without invoking a provider.Closes #1025.
Sole source writer: Code Mower Codex (
builder:codex). Independent Claude exact-head review requested withneeds-claude-audit.Validation
ContextError/ fake provider did not run); full GitHub CI will provide the authoritative complete-suite result.Risk / Rollback
Source seals, repository/default-branch/run-attempt/SHA checks, exact-head checks, receipts, identity floors, digests, and replay defenses remain in place. Reverting this PR restores the publication failure.
The default-branch publisher is itself the component being repaired. This PR's review must still use the trusted audit workflow and authoritative gate; an inability to publish that audit will be recorded rather than bypassed.
Data Or Secret Exposure
No provider rerun, Slack/provider canary, release, deployment, credential change, or cloud upload is part of this change. Test upload commands use a synthetic local package and make no network requests.