diff --git a/README.md b/README.md index f1f4220..e02ab60 100644 --- a/README.md +++ b/README.md @@ -186,9 +186,10 @@ The other question the fleet has to answer is why a job is sitting in a queue. That used to be one check — *is a runner idle* — which separated the wrong pair, because "every runner is busy" and "the host is saturated" both look like *no runner is idle*, and only the first is fixed by adding a runner. It is now -[eight classified causes](https://addisdev.github.io/actions-runners/concepts/#why-a-job-is-queued), -each carrying the evidence it used, and exactly one of them offers to add a -runner. +[ten classified causes](https://addisdev.github.io/actions-runners/concepts/#why-a-job-is-queued), +each carrying the evidence it used, and only three of them — no runner for the +repo, none for the job's role, or every runner busy with headroom to spare — are +fixed by adding one. ## The numbers exclude what would make them wrong diff --git a/dashboard/lib/queue-cause.js b/dashboard/lib/queue-cause.js index d9f909b..ba30404 100644 --- a/dashboard/lib/queue-cause.js +++ b/dashboard/lib/queue-cause.js @@ -7,7 +7,7 @@ // WHY A CLASSIFIER OVER A BOOLEAN FLAG // // The existing `stuck-queue` drift rule forks on a single question: is there an -// idle runner or not? That answers two of seven causes. The others are invisible +// idle runner or not? That answers two of ten causes. The others are invisible // — a label mismatch looks like a capacity problem when you can see only that // "all runners are busy", and host saturation looks like a capacity problem when // the headroom gate is refusing additions. Misreading the cause leads to the @@ -125,9 +125,9 @@ export function classifyQueueCause({ run, runners, capacity, api = {}, collector // ---- no runners at all ------------------------------------------------- if (repoRunners.length === 0) { evidence.push('No runner is registered for this repo'); - // Action-eligible, unlike every other non-capacity cause here. The field - // means "adding a runner would help", and for the six causes marked false it - // genuinely would not — a second runner shares a label mismatch, and another + // Action-eligible, like role-unserved and repo-capacity and unlike the + // rest. The field means "adding a runner would help", and for the seven + // causes marked false it genuinely would not — a second runner shares a label mismatch, and another // runner on a saturated host makes the saturation worse. A repo with no // runner is the opposite case: one runner is the entire remedy, and // RECOMMENDED has said so all along.