Issue 1965, subtask S1 (the quick fix, playbook 08): a hosting provider's MAC report could not be traced because node-uplink.links named no MAC, bridge or parent for any link.
Builds design 48 §10 and design 08's code:, with the lead's answers L1-L6 (issue 1965 note 11). Both holders' copies of cmd/uplink-tools (systemd-networkd, networkmanager) gain mac, master and parent from the ip -j address show call they already make; a parent in another network namespace is answered as {index, namespace}. module.json and seat.json are untouched.
Acceptance 1965/AC1-AC7 (issue 1965 note 12); AC7 is proven live on novox after the delivery.
Quick fix (this): three fields, one repository. Thorough fix: a link-changed event, a stream with retention and links taking since; waits research 080.
Tests: TestTheLinksCarryTheirDefaultRouteAndTheirNames extended in both copies (fails without the change); the copies test holds. Unit tests 10 of 500 per module, 0 of 50 integration.
Reviewed-by: mesh-code-reviewer@shanks at 700b37890b
Issue 1965, subtask S1 (the quick fix, playbook 08): a hosting provider's MAC report could not be traced because `node-uplink.links` named no MAC, bridge or parent for any link.
Builds design 48 §10 and design 08's `code:`, with the lead's answers L1-L6 (issue 1965 note 11). Both holders' copies of `cmd/uplink-tools` (systemd-networkd, networkmanager) gain `mac`, `master` and `parent` from the `ip -j address show` call they already make; a parent in another network namespace is answered as `{index, namespace}`. module.json and seat.json are untouched.
Acceptance 1965/AC1-AC7 (issue 1965 note 12); AC7 is proven live on novox after the delivery.
Quick fix (this): three fields, one repository. Thorough fix: a link-changed event, a stream with retention and `links` taking `since`; waits research 080.
Tests: `TestTheLinksCarryTheirDefaultRouteAndTheirNames` extended in both copies (fails without the change); the copies test holds. Unit tests 10 of 500 per module, 0 of 50 integration.
Reviewed-by: mesh-code-reviewer@shanks at 700b37890bfda5be810501a78c6e1d54beed99b9
Both holders' uplink-tools copies read address, master, link and
link_index/link_netnsid from the existing ip -j address show call. Fields
are left out where a link has none (L3); a parent in another namespace is
{index, namespace} (L2); the form lives in uplink.go only (L4); only the
tool description changes, not seat.json (L5); bridge fdb MACs are not
answered (L6); names mac, master, parent (L1).
Builds: design 48 10, design 08 code:, issue 1965 note 11 L1-L6
Deliverynovox/mesh-catalog@700b37890bfd — merged since 2026-11-12T16:35:40Z
Source — source.main moved to novox/mesh-catalog@0ec8347786. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-12 16:34 (new) → proposed (announced): novox/mesh-catalog#669's head announced
2026-11-12 16:34 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-12 16:35 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@700b37890bfd` — **merged** since 2026-11-12T16:35:40Z
**Source** — source.main moved to novox/mesh-catalog@0ec8347786f4. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-12 16:34 (new) → proposed (announced): novox/mesh-catalog#669's head announced
- 2026-11-12 16:34 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-12 16:35 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.
Issue 1965, subtask S1 (the quick fix, playbook 08): a hosting provider's MAC report could not be traced because
node-uplink.linksnamed no MAC, bridge or parent for any link.Builds design 48 §10 and design 08's
code:, with the lead's answers L1-L6 (issue 1965 note 11). Both holders' copies ofcmd/uplink-tools(systemd-networkd, networkmanager) gainmac,masterandparentfrom theip -j address showcall they already make; a parent in another network namespace is answered as{index, namespace}. module.json and seat.json are untouched.Acceptance 1965/AC1-AC7 (issue 1965 note 12); AC7 is proven live on novox after the delivery.
Quick fix (this): three fields, one repository. Thorough fix: a link-changed event, a stream with retention and
linkstakingsince; waits research 080.Tests:
TestTheLinksCarryTheirDefaultRouteAndTheirNamesextended in both copies (fails without the change); the copies test holds. Unit tests 10 of 500 per module, 0 of 50 integration.Reviewed-by: mesh-code-reviewer@shanks at
700b37890bBoth holders' uplink-tools copies read address, master, link and link_index/link_netnsid from the existing ip -j address show call. Fields are left out where a link has none (L3); a parent in another namespace is {index, namespace} (L2); the form lives in uplink.go only (L4); only the tool description changes, not seat.json (L5); bridge fdb MACs are not answered (L6); names mac, master, parent (L1). Builds: design 48 10, design 08 code:, issue 1965 note 11 L1-L6Delivery
novox/mesh-catalog@700b37890bfd— merged since 2026-11-12T16:35:40ZSource — source.main moved to novox/mesh-catalog@0ec8347786. 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.