Resolve builds a dead runner abandoned, and forward bare-redirect stdin !124

merged merged by cmc on 2026-08-30 18:11 UTC · krz/gitbay:reap-stale-builds into main

Discussion

cmc

#53 — a runner killed between claiming a build and reporting it left the row running forever, and ci/<job> pending on the commit. runner next now reaps builds past a 90m deadline (longer than the runner's own 45m -timeout, so it fires only when nothing reported at all), failing them with a log line and resolving the commit status.

#55 — keys add and repo deploy-key add take a bare < key.pub, but were wired stdinOK, which forwards stdin only when --file - appears in the arguments. Both reached the server with an empty body. Now alwaysStdin, with a coverage test pinning the four commands whose payload is an unnamed redirect.

#54 closed as invalid — fingerprint is globally UNIQUE with no upsert, so deploy-key add already refuses a registered key. The outage came from an ssh-keygen that overwrote the runner's key.