syntaqxSelf-hosted runners: a workspace on hold registers none, and a free workspace runs 4 of its workflow jobs on them at once. Runner registration had no billing check, and jobs on self-hosted runners skipped the workspace's concurrency limit, so a free workspace could run any number of jobs (each uploading artifacts and cache and writing logs) on runners of its own. Making a registration token now asks billing for the workspace's standing and refuses one while g1t staff hold it (Entitlements gains held). When a runner looks for work and its workspace already has FREE_SELF_HOSTED_JOBS (4, a wrangler var; 0 is no cap) jobs going on its runners, billing is asked whether it has the plan; without it, the workflow jobs wait until one finishes. Billing is asked only at the cap, so a runner's poll stays cheap, and when billing does not answer jobs go ahead. The self-hosted runners guide says so.f1e1810History
- ..
- anchors.yml
- artifacts.yml
- branches-ignore.yml
- cache.yml
- codeql.yml
- concurrency.yml
- container-job.yml
- defaults.yml
- dependabot-automerge.yml
- description-and-env.yml
- docker-action.yml
- docker-publish.yml
- environments.yml
- g1t-extension.yml
- go.yml
- if-expressions.yml
- issue-comment.yml
- java-gradle.yml
- job-options.yml
- labeler.yml
- many-events.yml
- matrix-from-json.yml
- max-parallel-expression.yml
- merge-queue.yml
- multiline-and-quotes.yml
- needs-outputs.yml
- node-matrix.yml
- on-null-events.yml
- pages.yml
- permissions-all.yml
- pr-review.yml
- pr-target-paths.yml
- publish-npm.yml
- python-package.yml
- release-on-tag.yml
- repository-dispatch.yml
- reusable-called.yml
- reusable-caller.yml
- runs-on-forms.yml
- rust-ci.yml
- sccache-like.yml
- schedule.yml
- services-postgres.yml
- single-event-string.yml
- stale.yml
- step-options.yml
- workflow-call-and-dispatch.yml
- workflow-dispatch-inputs.yml
- workflow-run.yml