Skip to content

I3177 — Two nodes one release apart keep linking, and what the older cannot answer is shown unavailable

Prove in the mesh lab that a node upgraded one release ahead keeps its node identity, takes a new instance id, still links to the older node through the negotiated protocol, and that a capability only the newer offers is listed unavailable on the older's surfaces rather than hidden.

BLOCKED wave 1 · p2 · verification profile · parallel safe

Part of safe-self-update — Every mesh node follows the published release by itself, versions meet safely, and a release's provenance can be checked.

Blocked. This issue cannot start until I2723 is done. The status is derived from that, not declared.

Objective

Prove in the mesh lab that a node upgraded one release ahead keeps its node identity, takes a new instance id, still links to the older node through the negotiated protocol, and that a capability only the newer offers is listed unavailable on the older's surfaces rather than hidden.

Why

The 10-08 robustness pack asked for a mixed-version mesh test (scenarios M13/M15); the 10-12 resident design asked that compatibility be negotiated by protocol range and capability set, not SemVer. ADR 0161 rolls nodes forward one at a time, so mixed versions are the normal state of every rollout. Proposed in ADR 0205 (What a runtime can do is a set of separately evidenced facts, and detection never authorises) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c200#2, chatgpt-majordomus:c240#2.

Current state

Verified: I2163 (DONE) refuses a silent attach across versions on one host; I2723 (READY) publishes each node's version; test/mesh-lab/run builds every node from one executable.

Desired state

A lab scenario with two executables; a capability-set field in the hello or advertisement; unavailable rendered by mesh peers.

Scope

  • test/mesh-lab/run
  • test/mesh-lab/Dockerfile
  • apps/majordomus-cli/src/mesh/protocol.rs
  • scripts/ci/mesh-lab-evidence
  • docs/MESH.md

Out of scope

  • Cluster-wide automatic rollout

Dependencies

What waits on this

Acceptance criteria

  • The lab's mixed_versions scenario passes and case 414 requires it
  • Restart keeps node identity and changes instance identity

Validation

  • majordomus plan validate
  • bash test/run.sh 414_mesh_lab_evidence

Evidence required

  • mesh_lab_mixed_versions

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/I3177.yaml. Read it back with majordomus plan show I3177.

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