At this level
at.happyproto.actor · 6- at.happyproto.actor.acceptInvite procedure Redeem an invite from admin.createInvites: the caller joins the customers space with read access, and the address the invite went to is paired with the caller's account. Redeeming as an account that is already a customer succeeds and spends nothing. Any signed-in account may call this; the token is the authority.
- at.happyproto.actor.acceptTerms procedure Record that the caller accepted the beta terms in force for their account, with the exact wording they were shown. The dashboard calls it from the terms screen after sign-in. Accepting terms already accepted records nothing new. Each acceptance is kept, append-only. Customers and staff; anyone else is refused.
- at.happyproto.actor.getAccount query Whether the caller is a HappyProto customer, and how many instances they have of how many allowed. Any signed-in caller; a non-customer gets zeros.
- at.happyproto.actor.getProfile query Get an actor's profile. Returns full detail — including dashboard entitlements — only for the authenticated caller; for any other actor it returns public basics only.
- at.happyproto.actor.getTerms query Whether the caller has accepted the beta terms in force. The dashboard asks after each sign-in and shows the terms until the caller accepts them with acceptTerms: once per account, and again whenever the terms change. createInstance is refused until then. Customers and staff; anyone else is refused.
- at.happyproto.actor.syncAccount procedure Record the email address on the caller's PDS account with HappyProto, read server-side from their PDS session. The dashboard calls it once after each sign-in. The PDS reports the address only when the sign-in granted it (transition:email or account:email); without one, the last recorded address is kept, and an unconfirmed address never replaces a confirmed one. The address itself is never returned. Customers and staff; anyone else gets recorded = false.