Delivery group feat/take-in with mesh-delivery #153. Issue 1585, ADR 0633 (accepted); issue 595 folded in, so it needs no check of its own.
The gate (mesh-delivery-gate) reads the merged message from the forge bridge's own package forgemsg (pinned at mesh-delivery c78941e8, the head of #153) instead of mesh-sdk, and passes the event forge.group.merged by, comparing the whole event, never counting it a refusal.
mesh-conditions knows the condition kind take-in-waits (no keeper row needed).
messenger: operator-channel.asks takes optional key, state, since and a byte bound, and says when its answer is cut; with no argument it answers as today (issue 595: reading one ask meant reading 1508).
mesh-sdk: pinned at its main, unchanged. Local checks: GOWORK=off gofmt, vet, vet -tags integration and go test in the gate, mesh-conditions and messenger; all 29 checks/* pass; the group's manifest validator accepts all 171 manifests.
Push order: mesh-delivery #153 first, then this one.
Reviewed-by: mesh-code-reviewer@shanks at 5ceb6e9e38
Delivery group `feat/take-in` with mesh-delivery #153. Issue 1585, ADR 0633 (accepted); issue 595 folded in, so it needs no check of its own.
- The gate (mesh-delivery-gate) reads the merged message from the forge bridge's own package `forgemsg` (pinned at mesh-delivery c78941e8, the head of #153) instead of mesh-sdk, and passes the event `forge.group.merged` by, comparing the whole event, never counting it a refusal.
- mesh-conditions knows the condition kind `take-in-waits` (no keeper row needed).
- messenger: `operator-channel.asks` takes optional `key`, `state`, `since` and a byte `bound`, and says when its answer is cut; with no argument it answers as today (issue 595: reading one ask meant reading 1508).
mesh-sdk: pinned at its main, unchanged. Local checks: GOWORK=off gofmt, vet, vet -tags integration and go test in the gate, mesh-conditions and messenger; all 29 checks/* pass; the group's manifest validator accepts all 171 manifests.
Push order: mesh-delivery #153 first, then this one.
Reviewed-by: mesh-code-reviewer@shanks at 5ceb6e9e38a4538e1cf10deae0548ef7e75a98e5
https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Forge, its kinds and the group's end moved out of mesh-sdk into the forge bridge's own package (mesh-delivery
modules/mesh-delivery-forge-bridge/forgemsg, the operator, 2026-11-04: logic one module owns lives with it). The gate
imports it at the mesh-delivery head 4e4601a1 that holds the move, and the suffix it passes by before decoding is the
package's own ForgeGroupEndEvent, not a constant of its own. mesh-sdk is pinned at 5a38a12, origin/main.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
mesh/check failed (2): mesh-build-go: the indexer's judge at the group's mesh-delivery head 7b7096f37ea76e1…; and 1 more | d023a25849f3 on fd4931a75261
The gate passes by a group's end only when the event is the forge bridge's forge.group.merged whole, so the merged message
of a repository named forge/group is read as one; row in the holder test. The keeper's take-in-waits row (T26) is dropped:
it showed nothing the keeper does not already hold. The gate pins forgemsg at mesh-delivery 7b7096f3.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Deliverynovox/mesh-catalog@5ceb6e9e38a4 — merged since 2026-11-05T00:33:42Z
Source — source.main moved to novox/mesh-catalog@211186edd7. 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 (ebd0b6ae80af)
Transitions
2026-11-05 00:03 (new) → proposed (announced): novox/mesh-catalog#615's head announced
2026-11-05 00:03 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-11-05 00: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@5ceb6e9e38a4` — **merged** since 2026-11-05T00:33:42Z
**Source** — source.main moved to novox/mesh-catalog@211186edd769. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/take-in`: novox/mesh-catalog@5ceb6e9e38a4, novox/mesh-delivery@c78941e80b59
- composed together: pass — the checker's verdict at the members' heads (ebd0b6ae80af)
**Transitions**
- 2026-11-05 00:03 (new) → proposed (announced): novox/mesh-catalog#615's head announced
- 2026-11-05 00:03 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-11-05 00: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/check being carried to 5ceb6e9e38a4 on 211186edd769 | from fd4931a75261, mesh-delivery ae31b66a9e33 | novox/mesh-catalog#615 in group feat/take-in
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 7b7096f37ea7 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 7b7096f37ea7 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
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.
Delivery group
feat/take-inwith mesh-delivery #153. Issue 1585, ADR 0633 (accepted); issue 595 folded in, so it needs no check of its own.forgemsg(pinned at mesh-delivery c78941e8, the head of #153) instead of mesh-sdk, and passes the eventforge.group.mergedby, comparing the whole event, never counting it a refusal.take-in-waits(no keeper row needed).operator-channel.askstakes optionalkey,state,sinceand a bytebound, and says when its answer is cut; with no argument it answers as today (issue 595: reading one ask meant reading 1508).mesh-sdk: pinned at its main, unchanged. Local checks: GOWORK=off gofmt, vet, vet -tags integration and go test in the gate, mesh-conditions and messenger; all 29 checks/* pass; the group's manifest validator accepts all 171 manifests.
Push order: mesh-delivery #153 first, then this one.
Reviewed-by: mesh-code-reviewer@shanks at
5ceb6e9e38https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Delivery
novox/mesh-catalog@5ceb6e9e38a4— merged since 2026-11-05T00:33:42ZSource — source.main moved to novox/mesh-catalog@211186edd7. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/take-in: novox/mesh-catalog@5ceb6e9e38, novox/mesh-delivery@c78941e80bTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 7b7096f37ea7 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.