The forge bridge answers a merge made on the forge, so the indexer takes it in without a gate record (issue 1966, recovery) #185

Merged
mesh-tools merged 2 commits from fix/1966-forge-made-merge into main 2026-11-09 08:45:44 +00:00
Member

Delivery group fix/1966-forge-made-merge (mesh-delivery, mesh-sdk, mesh-tools, mesh-host, mesh-catalog), merged through the gate: one check, one Approve. The other four members are empty gate-record commits.

Cause

Since 2026-11-09 07:04 UTC the indexer has held every merge in one revision wait, about ten merges with every module held. indexer_take_in_pending refuses with "the forge bridge could not answer for the merge of novox/mesh-delivery#184 ... the gate's merges hold no merge ... so its pull request is not known". A merge made on the forge directly has no gate merge record: the recovery merges (mesh-delivery #184, mesh-sdk #174/#175, mesh-tools #63/#64, mesh-host #216, mesh-catalog #637/#638) and the operator's own. This is the second time: on 2026-11-08 mesh-host #214, an empty commit through the gate, unblocked it.

Quick or thorough

  • Quick: empty gate-record commits only. They are taken here as well, for today's held merges in the other four repositories.
  • Thorough, chosen: when the gate holds no merge, the forge bridge reads the pull request from the forge through gitea.gitea_api (the path its tags tool already uses), by the number the indexer passes or by the merge commit. It refuses a pull request that is not merged, merged at another commit, merged into a base other than main, or carries no head branch. Otherwise it answers as for a gate merge (a lone pull request), saying made_on_forge and a log line. The indexer refuses an answer whose number differs from the held merge's.

Evidence

  • Table rows in the existing test, with the forge's real shape (the branch only in head.label for a merged pull request; read live for mesh-delivery#184 and mesh-sdk#174). The refusals each fail their own row.
  • go vet, go vet -tags integration and go test pass in mesh-delivery-forge-bridge and mesh-delivery-indexer.

Limit

A delivery group merged on the forge is taken in one member at a time, without its group (ADR 0633 §4 names the gate's records as the source of a group). Noted on issue 1966.

Undo

Revert the group's merges.

Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at c71d38d073, two rounds.

https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i

Delivery group fix/1966-forge-made-merge (mesh-delivery, mesh-sdk, mesh-tools, mesh-host, mesh-catalog), merged through the gate: one check, one Approve. The other four members are empty gate-record commits. ## Cause Since 2026-11-09 07:04 UTC the indexer has held every merge in one revision wait, about ten merges with every module held. indexer_take_in_pending refuses with "the forge bridge could not answer for the merge of novox/mesh-delivery#184 ... the gate's merges hold no merge ... so its pull request is not known". A merge made on the forge directly has no gate merge record: the recovery merges (mesh-delivery #184, mesh-sdk #174/#175, mesh-tools #63/#64, mesh-host #216, mesh-catalog #637/#638) and the operator's own. This is the second time: on 2026-11-08 mesh-host #214, an empty commit through the gate, unblocked it. ## Quick or thorough - Quick: empty gate-record commits only. They are taken here as well, for today's held merges in the other four repositories. - Thorough, chosen: when the gate holds no merge, the forge bridge reads the pull request from the forge through gitea.gitea_api (the path its tags tool already uses), by the number the indexer passes or by the merge commit. It refuses a pull request that is not merged, merged at another commit, merged into a base other than main, or carries no head branch. Otherwise it answers as for a gate merge (a lone pull request), saying made_on_forge and a log line. The indexer refuses an answer whose number differs from the held merge's. ## Evidence - Table rows in the existing test, with the forge's real shape (the branch only in head.label for a merged pull request; read live for mesh-delivery#184 and mesh-sdk#174). The refusals each fail their own row. - go vet, go vet -tags integration and go test pass in mesh-delivery-forge-bridge and mesh-delivery-indexer. ## Limit A delivery group merged on the forge is taken in one member at a time, without its group (ADR 0633 §4 names the gate's records as the source of a group). Noted on issue 1966. ## Undo Revert the group's merges. Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at c71d38d073a07bf77585e2b99cda037cae690474, two rounds. https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
mesh-tools added 2 commits 2026-11-09 08:24:19 +00:00
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The forge-made merge's branch is read from the pull request's head label, not its head ref; the indexer checks the answer's number (issue 1966)
mesh/delivery merged: source.main moved to novox/mesh-delivery@596cb653fc1b
mesh/delivery-group group fix/1966-forge-made-merge merged: every member is merged
mesh/check checking c71d38d073a0 on 596cb653fc1b | novox/mesh-delivery#185 in group fix/1966-forge-made-merge
c71d38d073
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Author
Member

Delivery novox/mesh-delivery@c71d38d073a0 — merged since 2026-11-09T08:45:47Z

Source — source.main moved to novox/mesh-delivery@596cb653fc. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group fix/1966-forge-made-merge: novox/mesh-catalog@80186d0798, novox/mesh-delivery@c71d38d073, novox/mesh-host@e504c12940, novox/mesh-sdk@f6a48060d1, novox/mesh-tools@b82054d930

Transitions

  • 2026-11-09 08:24 (new) → proposed (announced): novox/mesh-delivery#185's head announced
  • 2026-11-09 08:24 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-09 08:45 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-delivery@c71d38d073a0` — **merged** since 2026-11-09T08:45:47Z **Source** — source.main moved to novox/mesh-delivery@596cb653fc1b. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1966-forge-made-merge`: novox/mesh-catalog@80186d079808, novox/mesh-delivery@c71d38d073a0, novox/mesh-host@e504c129401b, novox/mesh-sdk@f6a48060d1c7, novox/mesh-tools@b82054d9300a **Transitions** - 2026-11-09 08:24 (new) → proposed (announced): novox/mesh-delivery#185's head announced - 2026-11-09 08:24 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-09 08:45 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`.
Author
Member

mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. 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: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
Author
Member

mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. 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: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-tools merged commit 596cb653fc into main 2026-11-09 08:45:44 +00:00
mesh-tools deleted branch fix/1966-forge-made-merge 2026-11-09 08:45:46 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-delivery#185