From 1d0a8b99d85d03ce142fd5e2bc9ad284d37cac13 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 1 Jun 2026 19:17:06 +0100 Subject: [PATCH 1/5] =?UTF-8?q?experiment:=20rename=20rust-ci.yml=20?= =?UTF-8?q?=E2=86=92=20rust-ci-v2.yml=20to=20force=20fresh=20GH=20workflow?= =?UTF-8?q?=5Fid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hypothesis: GH Actions cached the path-based fallback name on workflow_id 231679368 (created 2026-02-07 with the old self-contained rust-ci.yml content) and never re-parsed after the thin-wrapper conversion landed (2026-05-26). All subsequent pushes produce 0s-duration "completed failure" runs because GH treats the workflow definition as unparseable. Evidence: - /repos/.../actions/workflows/231679368 returns name=".github/workflows/rust-ci.yml" (path-based fallback), not "Rust CI" (YAML name field). - governance.yml (workflow_id 278098065, created 2026-05-17 as a fresh thin wrapper) returns name="Governance" correctly — same caller pattern, no caching issue. - Disable+enable via API did NOT force re-parse. - panic-attack#84 + #92 SHA bumps did NOT fix it. Experiment: rename the file. If GH creates a new workflow_id and correctly parses "Rust CI" as the name, hypothesis 3 from standards#322 is confirmed and the fix is an estate-wide rename across all 43+ rust-ci callers. Companion to standards#322 root-cause investigation. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/{rust-ci.yml => rust-ci-v2.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{rust-ci.yml => rust-ci-v2.yml} (100%) diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci-v2.yml similarity index 100% rename from .github/workflows/rust-ci.yml rename to .github/workflows/rust-ci-v2.yml From d022c8fa1a6672bea858210327f7e019d2f93efe Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 1 Jun 2026 19:19:17 +0100 Subject: [PATCH 2/5] experiment: switch to @main floating ref to test hypothesis 2 (SHA resolution) If @main parses where @cc5a372a does not, the bug is in GH's SHA resolution for cross-repo reusable workflows specifically. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/rust-ci-v2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust-ci-v2.yml b/.github/workflows/rust-ci-v2.yml index 1b1b792..8a63c54 100644 --- a/.github/workflows/rust-ci-v2.yml +++ b/.github/workflows/rust-ci-v2.yml @@ -14,4 +14,4 @@ permissions: jobs: rust-ci: - uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@cc5a372af1af1b202c17f1b21efd954e6c038bef + uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@main From 02c6753f68b9d37501080462023e3e8e9886172f Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 1 Jun 2026 19:20:54 +0100 Subject: [PATCH 3/5] experiment: mirror governance.yml shape (add workflow_dispatch + concurrency) --- .github/workflows/rust-ci-v2.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust-ci-v2.yml b/.github/workflows/rust-ci-v2.yml index 8a63c54..9a8b4ca 100644 --- a/.github/workflows/rust-ci-v2.yml +++ b/.github/workflows/rust-ci-v2.yml @@ -1,13 +1,18 @@ # SPDX-License-Identifier: MPL-2.0 # Rust CI — thin wrapper calling the shared estate reusable in # hyperpolymath/standards. Configure once, propagate everywhere. -# See: docs/CI-REUSABLE-WORKFLOWS.adoc in standards. + name: Rust CI on: push: branches: [main, master] pull_request: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true permissions: contents: read From 6250e1921227f5757bad8313a4aeb6ce52fb050f Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 1 Jun 2026 19:21:20 +0100 Subject: [PATCH 4/5] experiment: point at governance-reusable.yml to confirm bug is in rust-ci-reusable --- .github/workflows/rust-ci-v2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust-ci-v2.yml b/.github/workflows/rust-ci-v2.yml index 9a8b4ca..f56996e 100644 --- a/.github/workflows/rust-ci-v2.yml +++ b/.github/workflows/rust-ci-v2.yml @@ -19,4 +19,4 @@ permissions: jobs: rust-ci: - uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@main + uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@main From cb232245ee1d84183958a9f20490b7b719808b47 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 1 Jun 2026 19:22:14 +0100 Subject: [PATCH 5/5] experiment: clone governance.yml verbatim as rust-ci-experiment-3.yml to isolate filename-pattern bug --- .github/workflows/rust-ci-experiment-3.yml | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/rust-ci-experiment-3.yml diff --git a/.github/workflows/rust-ci-experiment-3.yml b/.github/workflows/rust-ci-experiment-3.yml new file mode 100644 index 0000000..653ef98 --- /dev/null +++ b/.github/workflows/rust-ci-experiment-3.yml @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: MPL-2.0 +# governance.yml — single wrapper calling the shared estate governance bundle +# in hyperpolymath/standards instead of carrying per-repo copies. +# +# Replaces the per-repo governance scaffolding removed in the same commit: +# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, +# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, +# workflow-linter.yml +# +# Load-bearing build/security workflows stay standalone in the repo +# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing). + +name: Governance + +on: + push: + branches: [main, master] + pull_request: + workflow_dispatch: + +# Estate guardrail: cancel superseded runs so re-pushes / rebased PR +# updates do not pile up queued runs against the shared account-wide +# Actions concurrency pool. Applied only to read-only check workflows +# (no publish/mutation), so cancelling a superseded run is always safe. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + governance: + uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@main