Skip to content

I3835 — A node the mesh lists as trusted and present but cannot link is said so, with why, on every surface that names it

Make mesh nodes, mesh peers and mesh doctor name every trusted, present node this server holds no link to, with the reason the link is absent (never dialled, dial refused, hello refused, its runtime expired, no endpoint this server can reach), and make a mesh review request, claim release or handover aimed at such a node refuse with that same reason instead of a bare not_found.

READY wave 0 · p1 · implementation profile · parallel safe

Part of the-mesh-works-out-of-the-box — The mesh works out of the box: trusted machines find each other by every means and their sessions cooperate from the first turn.

Ready. Every dependency is done, so majordomus plan start I3835 will be accepted.

Objective

Make mesh nodes, mesh peers and mesh doctor name every trusted, present node this server holds no link to, with the reason the link is absent (never dialled, dial refused, hello refused, its runtime expired, no endpoint this server can reach), and make a mesh review request, claim release or handover aimed at such a node refuse with that same reason instead of a bare not_found.

Why

On 2026-10-21 `mesh nodes` listed node 5d81b5c9 as trusted and present (udp_multicast, rendezvous, last seen 21:49:55Z), while `mesh review request --reviewer 5d81b5c94b02767fc07b181613a7fc71-b10f19aa2cd888a6` refused with \"mesh: not_found: no linked peer 5d81b5c94b02767fc07b181613a7fc71-b10f19aa2cd888a6\". Discovery and linking disagreed and no surface said why, so the holder of an exclusive claim on I2720 could not be reached at all (found by dev-03, filed at a3's ruling).

Current state

mesh nodes reports discovery (trust, presence, sources); mesh peers reports linked runtimes; nothing joins the two, and a request to an unlinked runtime answers not_found.

Desired state

Every trusted, present node without a link is listed with the reason, and every request aimed at one is refused with it.

Scope

  • apps/majordomus-cli/src/mesh
  • apps/majordomus-cli/src/commands/mesh.rs
  • docs/MESH.md

Out of scope

  • A dead run's exclusive claim that nobody can release (mesh-journal-converges, beside I3798)

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • With two runtimes of which one is discovered but never linked, mesh nodes and mesh peers both name it as present and unlinked, with the reason
  • A review request aimed at it refuses with the reason, and the refusal names the runtime and the node
  • mesh doctor reports a trusted, present, unlinked node as a finding
  • A node that links later stops being reported, without a restart

Validation

  • bash test/run.sh 3835_a_present_node_that_cannot_be_linked_says_why
  • bin/majordomus plan validate

Evidence required

  • a_present_unlinked_node_says_why_test

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3835.yaml. Read it back with majordomus plan show I3835.

Searches the titles and descriptions of every page this site publishes.