From 1d10f4db14ea8f46cb21e02fe2d0e44029bfe3f1 Mon Sep 17 00:00:00 2001 From: "Molecule AI Dev Engineer B (MiniMax)" Date: Wed, 10 Jun 2026 23:28:58 +0000 Subject: [PATCH] ci(gate-check-v3): add timeout-minutes:10 to gate-check job (hung-run bound) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The gate-check job was unbounded, so a hung-while-running run hung the concurrency group unconcluded. Combined with cancel-in-progress: false (intentional — Gitea 1.22.6 dismiss_stale_approvals + no-REST- rerun risk per the workflow comment), this wedged PR merge-checks with a 405 on the advisory 'gate-check-v3 / gate-check (pull_request_target)' context. The context is bp-exempt (continue-on-error: true) so a concluded run is harmless — only UNconcluded hung runs block. Add timeout-minutes: 10 (~30x the normal 12-16s conclude-time). A hung run hits the timeout → concludes as failure → ignored as advisory. Bounds a recurring hard merge-block on core PRs. CAVEAT: timeout-minutes only counts once the run is RUNNING — does NOT fix a QUEUED-never-picked-up orphan (operator-side run-clearing needed). DO NOT flip cancel-in-progress (per workflow comment). DO NOT alter if:/needs:/advisory-exempt config. ONLY add timeout-minutes. Co-Authored-By: Claude Fable 5 --- .gitea/workflows/gate-check-v3.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitea/workflows/gate-check-v3.yml b/.gitea/workflows/gate-check-v3.yml index 831aa1125..88b315665 100644 --- a/.gitea/workflows/gate-check-v3.yml +++ b/.gitea/workflows/gate-check-v3.yml @@ -66,6 +66,13 @@ jobs: # bp-exempt: PR advisory bot; merge blocking is enforced by CI status and branch protection. gate-check: runs-on: ubuntu-latest + # Hard bound on a hung-while-running run so the advisory context + # CONCLUDES (continue-on-error: true -> ignored) instead of + # hanging unconcluded and 405-blocking the Gitea merge-check. + # Normal conclude-time is ~12-16s, so 10m is a 30x safety margin + # over a stuck Python tick. Does NOT fix a QUEUED-never-picked-up + # orphan (operator-side run-clearing needed for that). + timeout-minutes: 10 # mc#1982: pre-existing continue-on-error mask; root-fix and remove, do not renew silently. continue-on-error: true # Never block on our own detector failing steps: -- 2.52.0