Skip to main content

Module group

Module group 

Source
Expand description

Group chat (v0.13.3) — signed member-set model.

A group is a named, creator-signed set of members. Group membership is a SEPARATE axis from bilateral peer trust: a member’s GroupTier is group-scoped (Creator / Member / Introduced) and is NOT the bilateral trust.rs Tier. A peer can be bilaterally UNTRUSTED yet a group Member, or VERIFIED bilaterally but only INTRODUCED in a group — the two ladders are intentionally disjoint, and group membership never auto-promotes bilateral trust.

The creator signs the canonical roster (creator_sig), so a member can pin INTRODUCED peers on the creator’s vouch even when the creator is offline. epoch bumps on every roster mutation — it orders revocations (a kick at epoch N invalidates anything stamped < N).

Persistence: <config>/groups/<id>.json. Transport (group send/tail, the join code, kick/secure-eject) lives in cli.rs and composes the existing mesh-broadcast + invite primitives over the member set this module owns.

Structs§

Group
Member

Enums§

GroupTier
Group-scoped membership tier. Disjoint from the bilateral trust.rs Tier.

Functions§

groups_dir
<config>/groups/.
list_groups
List all persisted groups (skips unparseable files).
load_group
Load a group by id.
resolve_group
Resolve a group by id OR exact name. Errors if ambiguous/absent.
save_group
Persist a group (atomic tmp+rename).