ca801d16af
Add the client-library counterparts the admin panel and the /join client page consume: - CreateInvite, ListInvites, CancelInvite, DeleteUser: signed as admin. - Register(token, signPub, kexPub): UNSIGNED, via a new doUnsigned helper that fails over across control-plane endpoints and surfaces the server's structured error. The registering peer is not in the allowlist, so it cannot sign; the bearer token is the authorization. - InviteInfo flat view for the panel. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>