Issue 774 (L3). The lead merges reviewed pull requests itself once the check is green, without the Telegram Approve. endStaleAsks (modules/mesh-delivery-gate approval.go) skipped a delivery merged that way, so its ask key stayed and the teller's router ask stayed open for about a day. On 2026-10-31 at 02:01 two such asks (mesh-controller#485, mesh-catalog#570) held 2 of the teller's 3 places, and the router refused the health modules' placement Approve for want of room.
Quick fix vs thorough fix: the quick fix was one more skip case that withdraws the ask of a delivery merged without its Approve. The thorough fix was chosen: every look takes away a written ask none of whose deliveries is still open (merged by any path, or final), retried at the next look on failure. A settle ask asked again for another set takes the earlier one away once no delivery names it. Reason: the gap could recur on any route out of the asked state.
Tests: new subtest '774: an ask whose pull request merged without it is taken away' and a new settle block. Both failed before the fix. No new test functions. gofmt, go vet, go vet -tags integration and go test are clean in the module.
Reviewer notes, not built: an unretried settle take-away; a reopen race in a small window; Written lost on a crash; a log line repeats when there is no operator; a test row for a group with one member merged.
Controller research piece: none (the delivery gate, not the controller).
Issue 774 (L3). The lead merges reviewed pull requests itself once the check is green, without the Telegram Approve. endStaleAsks (modules/mesh-delivery-gate approval.go) skipped a delivery merged that way, so its ask key stayed and the teller's router ask stayed open for about a day. On 2026-10-31 at 02:01 two such asks (mesh-controller#485, mesh-catalog#570) held 2 of the teller's 3 places, and the router refused the health modules' placement Approve for want of room.
Quick fix vs thorough fix: the quick fix was one more skip case that withdraws the ask of a delivery merged without its Approve. The thorough fix was chosen: every look takes away a written ask none of whose deliveries is still open (merged by any path, or final), retried at the next look on failure. A settle ask asked again for another set takes the earlier one away once no delivery names it. Reason: the gap could recur on any route out of the asked state.
Tests: new subtest '774: an ask whose pull request merged without it is taken away' and a new settle block. Both failed before the fix. No new test functions. gofmt, go vet, go vet -tags integration and go test are clean in the module.
Reviewer notes, not built: an unretried settle take-away; a reopen race in a small window; Written lost on a crash; a log line repeats when there is no operator; a test row for a group with one member merged.
Controller research piece: none (the delivery gate, not the controller).
Reviewed-by: rev-asks@shanks at fdb8deea4c9e787c7a550443fb4bfe4071af4fab
endStaleAsks skipped every merged delivery, so a pull request merged without the
Approve kept its merge ask in the gate's asks until it lapsed: on 2026-10-31 two
such asks held two of the router's three places for the teller and a placement
ask was refused for want of room. Every look now takes away a standing ask none of
whose deliveries is still open, read from what the gate keeps, so a failed take
away is retried. A settle asked again for another set takes the earlier settle ask
away for the same reason.
Deliverynovox/mesh-catalog@fdb8deea4c9e — merged since 2026-10-31T01:33:02Z
Source — source.main moved to novox/mesh-catalog@a68b39f7b5. 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 (22ac8bbf9c36)
Transitions
2026-10-31 01:21 (new) → proposed (announced): novox/mesh-catalog#577's head announced
2026-10-31 01:21 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; or the check gates no merge (check-gates-merge false)
2026-10-31 01:33 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-catalog@fdb8deea4c9e` — **merged** since 2026-10-31T01:33:02Z
**Source** — source.main moved to novox/mesh-catalog@a68b39f7b512. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/merge-ask-ends-on-merge`: novox/mesh-catalog@fdb8deea4c9e, novox/mesh-delivery@17abe6af32ce
- composed together: pass — the checker's verdict at the members' heads (22ac8bbf9c36)
**Transitions**
- 2026-10-31 01:21 (new) → proposed (announced): novox/mesh-catalog#577's head announced
- 2026-10-31 01:21 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; or the check gates no merge (check-gates-merge false)
- 2026-10-31 01:33 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.
Issue 774 (L3). The lead merges reviewed pull requests itself once the check is green, without the Telegram Approve. endStaleAsks (modules/mesh-delivery-gate approval.go) skipped a delivery merged that way, so its ask key stayed and the teller's router ask stayed open for about a day. On 2026-10-31 at 02:01 two such asks (mesh-controller#485, mesh-catalog#570) held 2 of the teller's 3 places, and the router refused the health modules' placement Approve for want of room.
Quick fix vs thorough fix: the quick fix was one more skip case that withdraws the ask of a delivery merged without its Approve. The thorough fix was chosen: every look takes away a written ask none of whose deliveries is still open (merged by any path, or final), retried at the next look on failure. A settle ask asked again for another set takes the earlier one away once no delivery names it. Reason: the gap could recur on any route out of the asked state.
Tests: new subtest '774: an ask whose pull request merged without it is taken away' and a new settle block. Both failed before the fix. No new test functions. gofmt, go vet, go vet -tags integration and go test are clean in the module.
Reviewer notes, not built: an unretried settle take-away; a reopen race in a small window; Written lost on a crash; a log line repeats when there is no operator; a test row for a group with one member merged.
Controller research piece: none (the delivery gate, not the controller).
Reviewed-by: rev-asks@shanks at
fdb8deea4cDelivery
novox/mesh-catalog@fdb8deea4c9e— merged since 2026-10-31T01:33:02ZSource — source.main moved to novox/mesh-catalog@a68b39f7b5. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/merge-ask-ends-on-merge: novox/mesh-catalog@fdb8deea4c, novox/mesh-delivery@17abe6af32Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.