~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

knotless-run: a queue batches a pull once its pre-flights pass

Merged
Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:run/wake-on-preflight

What changes

A runner landing a merge queue wakes the queue as soon as a pull's run ends, where before only a batch's run did. Both ways a run can end are covered:

On this runner, a pull's run ending rings the repository's door, as a batch run's end already did.

On another runner the repository names, the dev.knotless.check record it files at the run's end rings the door as Jetstream brings it. Only a check of a pull that has ended rings, not each queued or running update, so a busy repository does not get a pass for every step.

docs/design/merge-queue.md and docs/design/runner.md list the new rings.

Why

A queued pull whose last pre-flight passed sat "ready for the next batch" until something else woke the queue: a push, a queue or pull record, or the 10-minute sweep. On 2026-11-07 a pull's test pre-flight passed at 17:32:10 on runner.knotless.dev, and its batch started at 17:36:45, on the sweep. Nothing woke the queue in between: a pull's run ending rang nothing, and Jetstream rang for no check record. Each pass costs a few seconds of reads, and the door coalesces rings, so waking on each pull run's end costs little.

How it was checked

rings covers the check records: queued, running, and one not of a pull stay quiet; an ended one of a pull rings. The runner's ring on a pull's run end is reached by the existing pull-run tests; left to test and its coverage gate.

Shortcomings

A pull's run that is not a pre-flight now wakes the queue too, for a pass that finds nothing to do. That's a few seconds of reads per run, coalesced with any other ring.

🤖 Generated with Claude Code

Approved

This pull makes a queue-landing runner ring the repository's door when a pull's run ends. It does this on its own runs, and for other runners' runs through Jetstream dev.knotless.check records. I checked the details:

  • The check lexicon has repo (a repoRef) and an optional pull string, so pull_into finds the right door from a check record.
  • status::going is queued or running, so only ended checks ring.
  • The new test covers queued, running and non-pull checks staying quiet, and a failed pull check ringing.
  • The docs pages and the changeset are updated.

The !stopping guard on the local ring matches the batch branch above it. The extra rings for runs that aren't pre-flights are coalesced by the door, as the body says. I found nothing that needs to change.

Merged as 1583094