From d2231f3302ed6cdbd796f9ceeefb29aa1b9b7ee4 Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Thu, 24 Sep 2026 15:19:56 +0000 Subject: [PATCH] build gate: "not measurable" was wrong, and it is why this sat unmoved MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This header said the actions/runners endpoints 404 on this Forgejo version, so runner state "was not directly measurable". Only the LISTING endpoint 404s. Both registration-token endpoints return 200 and issue a 40-char token on demand: /api/v1/repos/doxa-life/doxa-maps/actions/runners/registration-token /api/v1/admin/runners/registration-token That distinction matters more than it looks. "Not measurable" reads as "nothing to try", and this workflow has sat designed-but-never-run for weeks while the one action that would activate it was API-reachable the whole time. The header's load-bearing claim is unaffected and re-verified today: still total_count 0, still never run. It also cited a handoff doc twice — in this header, and beside "the ONE Driver action that registers it" — and that file did not exist. It does now, at the path cited, written from measured server facts rather than generic Forgejo advice: version 9.0.3+gitea-1.22.0, has_actions true, the label the runner must carry (ubuntu-latest, or every job queues forever looking exactly like no runner), the github.com reachability the setup-bun action needs, and the confirmation step that distinguishes "registered" from "actually ran". Note this commit touches only .forgejo/, which paths-ignore excludes — so it will not trigger a build even once a runner exists. That is intended. --- .forgejo/workflows/build.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 727b28260..d2347fa11 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -16,9 +16,19 @@ # today: every real build is serialized only by the local flock in # internal/build-lock.sh. Do not rely on this file to prevent a concurrent-build # race until a runner is registered AND a run is observed in the Actions tab. -# (The actions/runners endpoints 404 on this Forgejo version, so runner state was -# not directly measurable — the 0-runs figure is the load-bearing fact, and it -# holds regardless: 138 pushes with a working runner would have produced runs.) +# RE-VERIFIED 2026-09-24: still total_count 0. The 0-runs figure is the +# load-bearing fact and it holds — pushes with a working runner would have +# produced runs. +# ⚠ CORRECTION to what this header used to say. It claimed "the actions/runners +# endpoints 404 on this Forgejo version, so runner state was not directly +# measurable". Only the LISTING endpoint 404s. Both registration-token endpoints +# return 200 and issue a 40-char token on demand (measured 2026-09-24): +# /api/v1/repos/doxa-life/doxa-maps/actions/runners/registration-token +# /api/v1/admin/runners/registration-token +# So registering a runner is API-reachable, not a blocked unknown — which matters, +# because "not measurable" reads as "nothing to try" and that is why this sat. +# The step-by-step is in the handoff doc cited below, which EXISTS as of +# 2026-09-24: it was referenced twice here and had never been written. # # THE CONTRACT for a swarm agent: # edit files -> git commit -> git push (DONE. never run `bun run build`.)