From 67473df0adc348f77742650c84ee82574c67adc7 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 28 May 2026 14:40:17 +0100 Subject: [PATCH] fix(ci): drop duplicate concurrency block from spark-theatre-gate caller (closes #438) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #379 (2026-05-27) added a workflow-level `concurrency:` block to this caller as part of "add concurrency blocks to 5 read-only workflows". The spark-theatre-gate reusable workflow in standards already declares the SAME concurrency key — and `${{ github.workflow }}` in a reusable resolves to the CALLER'S workflow name (per the estate-known reusable caller-context-vars semantics). Stacking both blocks causes GitHub to reject the run at workflow- creation time with a `startup_failure`. The Actions UI shows the run as failed in 2s, but no job ever spins up and no `check_run` is ever emitted — so the required status-check context `spark-theatre-gate / SPARK Theatre Gate` stays unsatisfied on every PR. Empirical signature: every spark-theatre-gate run before 2026-05-27 13:16Z (when #379 merged) is `success` or concurrency-`cancelled`; every run after is `failure`/`startup_failure` with `run_duration_ms` ≈ 2000 and zero jobs. This was the root cause of every affinescript PR sitting in `mergeStateStatus: BLOCKED` despite all visible checks passing — and of the 14-PR admin-merge sweep on 2026-05-28. Closes #438. Cross-reference: hypatia#376 (BP008 phantom-required-context detector + AM010 admin-merge eligibility) makes this class of failure visible estate-wide going forward. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/spark-theatre-gate.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/spark-theatre-gate.yml b/.github/workflows/spark-theatre-gate.yml index fa536904..a9e5e3ff 100644 --- a/.github/workflows/spark-theatre-gate.yml +++ b/.github/workflows/spark-theatre-gate.yml @@ -13,11 +13,17 @@ on: permissions: contents: read -# 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 +# Note: NO workflow-level `concurrency:` block here. The reusable +# workflow in standards already declares concurrency on the same key +# (`${{ github.workflow }}-${{ github.ref }}` — which resolves to the +# CALLER'S workflow name in reusables). Stacking both blocks causes +# GitHub to reject the workflow at run-creation time with a +# `startup_failure`, so no `check_run` is ever emitted and every PR's +# required `spark-theatre-gate / SPARK Theatre Gate` context stays +# unsatisfied. Empirically: PR #379 (2026-05-27) added this block; all +# 410+ runs since have been `startup_failure`, blocking auto-merge +# across the repo and forcing a 14-PR admin-merge sweep on +# 2026-05-28. See hypatia#376 BP008 for the class-level detector. jobs: spark-theatre-gate: