65bce058bb
CallerResolver had 5 public constructors and 4 public factories, and only one of them could ever produce an architect. The rest defaulted memberSlotRoles to `_ -> null`, so every architect quietly fell through to Principal.worker(). Nothing logged, nothing threw — the role was simply off. That is the same failure shape as CB-560, so the fix is structural rather than a warning: withLeadsAndMembers(.., MemberRegistry) is now the only public construction path. Two overloads with no caller at all are deleted; the rest are package-private and marked test-only. No path remains that accepts architect bindings without a slot-role lookup, so no runtime WARN is needed. Also checked and closed: the suspected slot leak on shutdown drain is not real. SessionManager.release calls memberLifecycle.released() for every removed session, and drainAll routes every session through release, SPAWNING included. Verified in code.