admit

abstract suspend fun admit(peer: PeerId, principal: Principal?)

Admit peer over a fresh link stamped with principal (null = an unattested connection). A repeat call for an already-present peer models a reconnect: the prior link is torn and replaced, and the new principal supersedes the old.

Must not return until the admission is established and the roster has decided about this peer — an entry published, or deliberately withheld for an unattested link — so a subsequent roster read is not racing the handshake. Membership alone is too weak: a fabric that published membership and the roster on separate flows would let a later attestedPrincipals read sample a roster that has not yet seen this admission, and unattestedPeerIsAbsentFromRoster would pass for having asked too early (#2316). Both reference harnesses satisfy it by construction — membership and roster are republished in one critical section — so awaiting membership is enough there, not in general.