The gate takes away an ask once no delivery it covers can still merge by it (issue 774) #577

Merged
mesh-tools merged 1 commits from fix/merge-ask-ends-on-merge into main 2026-10-31 01:33:01 +00:00
Member

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 fdb8deea4c

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
mesh-tools added 1 commit 2026-10-31 01:21:09 +00:00
Gate: an ask ends once no delivery it covers can still merge by it, so an ask of a pull request merged another way cannot hold the teller's room for a day (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-catalog@a68b39f7b512
mesh/delivery-group group fix/merge-ask-ends-on-merge merged: every member is merged
mesh/check checking fdb8deea4c9e on a68b39f7b512 | novox/mesh-catalog#577 in group fix/merge-ask-ends-on-merge
fdb8deea4c
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.
Author
Member

Delivery novox/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.

Group fix/merge-ask-ends-on-merge: novox/mesh-catalog@fdb8deea4c, novox/mesh-delivery@17abe6af32

  • 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`.
mesh-tools merged commit a68b39f7b5 into main 2026-10-31 01:33:01 +00:00
mesh-tools deleted branch fix/merge-ask-ends-on-merge 2026-10-31 01:33:01 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#577