Gate seeds a never-merged repository's trunk head and follows a retargeted base; gitea announces a retarget and sets a default branch and a pull request's base (issue 1422; group fix/1422-trunk-unknown) #537

Merged
mesh-tools merged 4 commits from fix/1422-trunk-unknown into main 2026-10-28 10:34:47 +00:00
Member

Delivery group fix/1422-trunk-unknown (mesh-delivery, mesh-catalog). Issue 1422 notes 4-8.

  • Gate: seeds source.main for a repository it names no head for, from the base_sha of the open delivery into main announced last, in one compare-and-set that never replaces a head; logged once.
  • Gate: a re-announced live delivery whose base changed takes the new base, withdraws an unanswered ask and logs the retarget, so a pull request retargeted to main is seeded and asked, and one retargeted away is not.
  • gitea: announced heads are keyed by base (owner/repo#n@base), so a retargeted pull request is announced again into its new base.
  • gitea: two named tools for the move of de-spiegel to main (the operator, 2026-10-28): gitea_default_branch_set and gitea_pull_base_set (tools' account, why required, a missing or path-like branch refused, a default must be protected, a pull request must be open; unchanged when already set).

Quick vs thorough: thorough (seed plus loud verdict plus retarget end to end).
Tests: rows in existing gate tests (failing first); gitea npm test 221/221. Gate: unit and integration tests (193) pass locally against an embedded bus.
Note: the gitea module cites 'ADR 0266' for refusing settings writes; that record is about agent accounts (issue 1422 note 8), to correct with the next gitea change.

Reviewed-by: rev-1422@shanks at f5d4b2f86e

Delivery group fix/1422-trunk-unknown (mesh-delivery, mesh-catalog). Issue 1422 notes 4-8. - Gate: seeds source.main for a repository it names no head for, from the base_sha of the open delivery into main announced last, in one compare-and-set that never replaces a head; logged once. - Gate: a re-announced live delivery whose base changed takes the new base, withdraws an unanswered ask and logs the retarget, so a pull request retargeted to main is seeded and asked, and one retargeted away is not. - gitea: announced heads are keyed by base (owner/repo#n@base), so a retargeted pull request is announced again into its new base. - gitea: two named tools for the move of de-spiegel to main (the operator, 2026-10-28): gitea_default_branch_set and gitea_pull_base_set (tools' account, why required, a missing or path-like branch refused, a default must be protected, a pull request must be open; unchanged when already set). Quick vs thorough: thorough (seed plus loud verdict plus retarget end to end). Tests: rows in existing gate tests (failing first); gitea npm test 221/221. Gate: unit and integration tests (193) pass locally against an embedded bus. Note: the gitea module cites 'ADR 0266' for refusing settings writes; that record is about agent accounts (issue 1422 note 8), to correct with the next gitea change. Reviewed-by: rev-1422@shanks at f5d4b2f86ed47430eb369cea6a4b4bf180c94ed5
mesh-tools added 4 commits 2026-10-28 10:20:53 +00:00
source.main moved only at a merge, so a repository never merged through the gate had no trunk head and the checker could
never judge its pull requests. The gate already hears main's head on each gitea.pull.updated (base_sha); it now adds it for
a repository source.main lacks, from the newest open pull request into main, in one compare-and-set write that never
replaces a head. A pull request into another base seeds nothing (ADR 0484 §11).
A delivery made earlier can be announced again after a newer one, with main's head moved on: its base_sha is the freshest.
The gate now keeps when each base_sha was announced and seeds from the latest.
Gate: take a retargeted pull request's new base, so a retarget to main is seeded and asked and one away from main is not (issue 1422)
mesh/delivery merged: source.main moved to novox/mesh-catalog@2a03c106f4b9
mesh/delivery-group group fix/1422-trunk-unknown merged: every member is merged
mesh/check being carried to f5d4b2f86ed4 on 2a03c106f4b9 | from 9fd95693db54, mesh-delivery ae7ec702a5e9
f5d4b2f86e
A re-announcement updated the base head but never the base: a pull request retargeted from nox-mesh to main stayed 'into
nox-mesh' and was never asked or seeded, and one retargeted away from main kept its open ask.
Author
Member

Delivery novox/mesh-catalog@f5d4b2f86ed4 — merged since 2026-10-28T10:34:49Z

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

Group fix/1422-trunk-unknown: novox/mesh-catalog@f5d4b2f86e, novox/mesh-delivery@2b801f5bd4

  • composed together: pass — the checker's verdict at the members' heads (3bee9e0518c4)

Transitions

  • 2026-10-28 10:20 (new) → proposed (announced): novox/mesh-catalog#537's head announced
  • 2026-10-28 10:20 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-28 10:34 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@f5d4b2f86ed4` — **merged** since 2026-10-28T10:34:49Z **Source** — source.main moved to novox/mesh-catalog@2a03c106f4b9. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1422-trunk-unknown`: novox/mesh-catalog@f5d4b2f86ed4, novox/mesh-delivery@2b801f5bd49a - composed together: pass — the checker's verdict at the members' heads (3bee9e0518c4) **Transitions** - 2026-10-28 10:20 (new) → proposed (announced): novox/mesh-catalog#537's head announced - 2026-10-28 10:20 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-28 10:34 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 2a03c106f4 into main 2026-10-28 10:34:47 +00:00
mesh-tools deleted branch fix/1422-trunk-unknown 2026-10-28 10:34:47 +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#537