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
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
Deliverynovox/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`.
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.
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
90f7f87c2aPushed-by: lead-47@shanks
https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Delivery
novox/mesh-catalog@90f7f87c2ac1— merged since 2026-11-01T18:04:07ZSource — source.main moved to novox/mesh-catalog@ce3bedd584. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.