pacman's mirror list keeps a fallback tail; a failed check leads the merge ask's headline (ADR 0586, issues 1876, 1166) #589

Merged
mesh-tools merged 2 commits from fix/mirror-tail-headline into main 2026-11-01 18:04:06 +00:00
Member

Two small changes the operator approved on 2026-11-01 18:03, one check, one Approve. Issues 1876 and 1166. Decision: ADR 0586 (changes ADR 0585 §2).

(1) pacman's shared mirror list keeps every mirror at the newest last sync first, then a fallback tail of up to four of the next freshest; mirrors whose last sync reflector cannot tell (it prints them as the current time) are left out; pacman_mirrors names the freshest and the tail. Why: the literal rule usually kept one mirror (last syncs minutes apart), so one mirror down failed a whole weekly round.
(2) the merge ask's headline starts 'Check failed — merge into main: …' when the check failed, before the cut to the headline length. Why: merges are not gated on the check (the operator's choice of 10-27), and on 2026-11-01 a failed-check ask read exactly like a passed one.

Quick vs thorough: both are the one place each lives (Freshest; the gate's composeMergeAsk is the only builder of the headline, the teller relays it), so quick is the whole fix. Tests: rows in existing tables, no test count rise; unit, go vet -tags integration and the offline build pass in pacman and mesh-delivery-gate. Next after delivery: ace's full upgrade, which the operator allowed once this is in.

Reviewed-by: reviewerP@shanks at 90f7f87c2a
Pushed-by: lead-47@shanks

https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL

Two small changes the operator approved on 2026-11-01 18:03, one check, one Approve. Issues 1876 and 1166. Decision: ADR 0586 (changes ADR 0585 §2). (1) pacman's shared mirror list keeps every mirror at the newest last sync first, then a fallback tail of up to four of the next freshest; mirrors whose last sync reflector cannot tell (it prints them as the current time) are left out; pacman_mirrors names the freshest and the tail. Why: the literal rule usually kept one mirror (last syncs minutes apart), so one mirror down failed a whole weekly round. (2) the merge ask's headline starts 'Check failed — merge into main: …' when the check failed, before the cut to the headline length. Why: merges are not gated on the check (the operator's choice of 10-27), and on 2026-11-01 a failed-check ask read exactly like a passed one. Quick vs thorough: both are the one place each lives (Freshest; the gate's composeMergeAsk is the only builder of the headline, the teller relays it), so quick is the whole fix. Tests: rows in existing tables, no test count rise; unit, go vet -tags integration and the offline build pass in pacman and mesh-delivery-gate. Next after delivery: ace's full upgrade, which the operator allowed once this is in. Reviewed-by: reviewerP@shanks at 90f7f87c2ac180d3087659c5d229849b76f6e42f Pushed-by: lead-47@shanks https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-tools added 2 commits 2026-11-01 17:09:22 +00:00
Author
Member

Delivery novox/mesh-catalog@90f7f87c2ac1 — merged since 2026-11-01T18:04:07Z

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

Transitions

  • 2026-11-01 17:09 (new) → proposed (announced): novox/mesh-catalog#589's head announced
  • 2026-11-01 17:09 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-01 18:04 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@90f7f87c2ac1` — **merged** since 2026-11-01T18:04:07Z **Source** — source.main moved to novox/mesh-catalog@ce3bedd584b8. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-01 17:09 (new) → proposed (announced): novox/mesh-catalog#589's head announced - 2026-11-01 17:09 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-01 18:04 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 ce3bedd584 into main 2026-11-01 18:04:06 +00:00
mesh-tools deleted branch fix/mirror-tail-headline 2026-11-01 18:04:06 +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#589