pub fn is_public(community: &Community) -> Result<bool, String>Expand description
The computed Public/Private mode: a community is PUBLIC iff the folded per-creator invite-link
aggregate has ≥1 active locator, else PRIVATE. Every member computes the same value from the folded
editions, which is what lets it drive rekey-on-removal consistently (Private removals rekey the base
to the roster; Public ones don’t — anti-memberlist). Reads the cached aggregate, which is only as
fresh as the last successful latest-page sync (fetch_and_apply_invite_links, wired best-effort
into the sync path) — a member who only scrolled back, or whose sync failed, can hold a stale mode
(which is why revoke_public_invite refreshes the aggregate before deciding to privatize).