A build puller started at capacity 0 parked and never woke when its capacity was raised (g14's mesh-build-go on 2026-10-25, woken by hand with node-build-go.resume). The parked puller now follows its capacity's config value through the runtime's provision watch and wakes on its change event, with no timer; a fall stops new asks, a refused value means 0.
Merge FIRST, with a merge commit: mesh-catalog's fix/puller-wakes-on-capacity pins this head (a8fbabbf).
Tests: untagged suite and -race on go and go/buildstep pass; go vet with and without -tags integration clean. No net new tests (test budget): the capacity cases are subtests of TestPullAtCapacityZeroTakesNothing. Recovery mode: no try; the operator merges by hand.
A build puller started at capacity 0 parked and never woke when its capacity was raised (g14's mesh-build-go on 2026-10-25, woken by hand with node-build-go.resume). The parked puller now follows its capacity's config value through the runtime's provision watch and wakes on its change event, with no timer; a fall stops new asks, a refused value means 0.
Issue: https://git.novox.be/novox/hq (issue 1887, note 15).
Merge FIRST, with a merge commit: mesh-catalog's fix/puller-wakes-on-capacity pins this head (a8fbabbf).
Tests: untagged suite and -race on go and go/buildstep pass; go vet with and without -tags integration clean. No net new tests (test budget): the capacity cases are subtests of TestPullAtCapacityZeroTakesNothing. Recovery mode: no try; the operator merges by hand.
Reviewed-by: reviewer-puller@shanks at a8fbabbfc37369f9d1f6977c72e5523aff3d494c
g14's Go builder sat idle at capacity 2 while delivery builds waited: a puller
with no room waited on its wake alone, which only a pause, a resume or a step's
end gives, and it read its capacity from the settings file only when woken.
The puller now follows the module's config value capacity through the
runtime's watch of what mesh-config resolved (stdio.WatchConfig), uses the
value it hands, and wakes on each change: no timer, no file watch, and no wait
for the node-engine to fill the file again. It says when it parks and when it
wakes, with its capacity.
A watch asked before Serve is refused, which would have left every build
module on its settings file again. stdio.Served closes when Serve has the
channel; WatchConfigServed waits on it, and Pull starts the watch beside its
loop.
Deliverynovox/mesh-sdk@a8fbabbfc373 — merged since 2026-10-25T17:10:35Z
Source — source.main moved to novox/mesh-sdk@4f4d5ca9c9. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (71a936cf38ad)
Transitions
2026-10-25 16:46 (new) → proposed (announced): novox/mesh-sdk#80's head announced
2026-10-25 16:56 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail
2026-10-25 17:10 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-sdk@a8fbabbfc373` — **merged** since 2026-10-25T17:10:35Z
**Source** — source.main moved to novox/mesh-sdk@4f4d5ca9c956. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/puller-wakes-on-capacity`: novox/mesh-catalog@23c827e7910c, novox/mesh-sdk@a8fbabbfc373
- composed together: pass — the checker's verdict at the members' heads (71a936cf38ad)
**Transitions**
- 2026-10-25 16:46 (new) → proposed (announced): novox/mesh-sdk#80's head announced
- 2026-10-25 16:56 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail
- 2026-10-25 17:10 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A build puller started at capacity 0 parked and never woke when its capacity was raised (g14's mesh-build-go on 2026-10-25, woken by hand with node-build-go.resume). The parked puller now follows its capacity's config value through the runtime's provision watch and wakes on its change event, with no timer; a fall stops new asks, a refused value means 0.
Issue: https://git.novox.be/novox/hq (issue 1887, note 15).
Merge FIRST, with a merge commit: mesh-catalog's fix/puller-wakes-on-capacity pins this head (
a8fbabbf).Tests: untagged suite and -race on go and go/buildstep pass; go vet with and without -tags integration clean. No net new tests (test budget): the capacity cases are subtests of TestPullAtCapacityZeroTakesNothing. Recovery mode: no try; the operator merges by hand.
Reviewed-by: reviewer-puller@shanks at
a8fbabbfc3Delivery
novox/mesh-sdk@a8fbabbfc373— merged since 2026-10-25T17:10:35ZSource — source.main moved to novox/mesh-sdk@4f4d5ca9c9. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/puller-wakes-on-capacity: novox/mesh-catalog@23c827e791, novox/mesh-sdk@a8fbabbfc3Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.