Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Presence and roster

The roster is who’s here; presence is why the hub believes it.

Enrollment

A node enrolls over mTLS the first time it dials the hub. From that moment the peer’s host identity is its certificate SAN: the same identity presented from another host is refused, and a different certificate SAN is a different host identity (a peer’s record, its alias, and its history are keyed by the peer id, not the SAN). The host a peer first reports presence from is the host it stays bound to; moving a peer to a new machine is an explicit operator path, never an accident of reconnection.

Presence

Presence is a report the node uploads over the node↔hub link — the hub never infers it from the connection. The roster records the last report and its age: a peer whose report says connected is shown connected, a report saying disconnected is shown disconnected, and a peer whose last report is stale shows the report’s own state, not a connection-derived guess. A peer that’s been booted or banned reads as ejected, and the roster excludes it.

Discovery

The hub serves a per-peer agent card over A2A, and the MCP list-peers tool projects the same roster to harness-resident agents. One source of truth, two surfaces — an agent on either side of the boundary sees the same peers with the same statuses.