From 6974c342f52d7482fb2d94600a13ec4fa501405a Mon Sep 17 00:00:00 2001 From: ciregenz Date: Fri, 31 Jul 2026 18:04:02 -0700 Subject: [PATCH] [eric] runner: document the deploy, the control-plane env contract and the three wall-clock walls --- openswarm-runner/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/openswarm-runner/README.md b/openswarm-runner/README.md index 7ea2bfb1..45cabb96 100644 --- a/openswarm-runner/README.md +++ b/openswarm-runner/README.md @@ -101,3 +101,11 @@ reach a per-run machine. Control-plane side that means: | `FLY_API_TOKEN` | app-scoped deploy token for `openswarm-runner`, nothing wider | | `RUN_CALLBACK_BASE_URL` | where the runner reports; **no default**, so a staging control plane can never point its machines at prod | | `RUNNER_APP` / `RUNNER_IMAGE` / `RUNNER_REGION` | optional overrides of `openswarm-runner` / the `:latest` tag / `iad` | +| `CLOUD_RUNS_GLOBAL_CAP` | machines this whole service will run at once, all accounts together (default 50) | +| `CLOUD_RUNS_TICK_BUDGET` | machines one 60s tick will start (default 20); the rest keep their slot for the next tick | + +A run gets three walls on its wall clock, and only the third survives a wedged VM: +the runner stops its own poll loop at `max_run_seconds`, an independent thread inside +it kills the process 90s later, and the control plane destroys the machine outright +5 minutes past that. Verified live: a machine with a sleeping entrypoint that never +reported was destroyed by the control plane and its run row closed as failed.