Skip to content

I3185 — A request on a host with two Majordomus versions reaches the one whose protocol satisfies it, or is refused with a reason

From the host inventory and each runtime's negotiated protocol range and capability set, answer which runtime a client should attach to for a given repository and request, deterministically, and refuse an incompatible pair with a typed reason.

BLOCKED wave 2 · p3 · implementation profile · parallel safe

Part of the-host-knows-its-runtimes — A host knows every Majordomus runtime it runs, with no project open.

Blocked. This issue cannot start until I3184, I3177, milestone:the-host-knows-its-runtimes are done. The status is derived from that, not declared.

Objective

From the host inventory and each runtime's negotiated protocol range and capability set, answer which runtime a client should attach to for a given repository and request, deterministically, and refuse an incompatible pair with a typed reason.

Why

Slice 02 of the 10-12 resident design; I2163 already refuses a silent attach across versions for one checkout, this extends the judgement to the host. 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:c240#5.

Current state

Verified: I2163 DONE (one checkout); no host-level routing answer.

Desired state

runtimes route answers runtime + reason; the UI shows it as a compatibility table.

Scope

  • apps/majordomus-cli/src/capability/builtin/server.rs
  • apps/majordomus-cli/src/ui/dashboard.rs
  • apps/majordomus-cli/src/ui/mod.rs

Out of scope

  • Proxying traffic between runtimes

Dependencies

Acceptance criteria

  • Same registry state, same answer
  • An incompatible pair is refused, never downgraded
  • The change writes test_host_route_is_deterministic, and its validation then runs it, not only majordomus plan validate.
  • /ui shows the routing answer as a compatibility table derived from the same capability.

Validation

  • majordomus plan validate
  • cargo test --lib capability::builtin::server

Evidence required

  • test_host_route_is_deterministic

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

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