Skip to content

Type Alias: UnfoundedGroupRepair

type UnfoundedGroupRepair = 
  | "cli-resume-admission"
  | "sdk-resume-admission"
  | "tool-group-reclaim"
  | "none";

Defined in: rine-core/dist/src/mls-recovery-format.d.ts:52

The repair a surface can actually offer for a group with no ratchet tree.

The remedy is one operation — found the group's MLS state — and it is spelled differently on every kind of caller, so it is the caller that names it. The set is closed and every spelling in it is one this lane verified reaches the founding path:

  • cli-resume-admission — rine group resume-admission, which branches to initMlsGroup on an unlatched group (rine-cli's group verbs).
  • sdk-resume-admission — the Python SDK's resume_admission(), whose _resume does the same branch.
  • tool-group-reclaim — rine_group_reclaim where it wraps that Python method (rine-crewai, rine-langchain, rine-hermes).
  • none — every surface whose nearest verb throws instead of founding. 🔴 The TypeScript SDK's resumeMlsAdmission is one of them: it requires local MLS state and there is none here, so rine-ts-sdk, rine-mastra, rine-eve, rine-mcp and rine-openclaw name no verb. Naming a verb that refuses is the failure mode notAnMlsGroupResume exists to prevent, one level up.

It is a value rather than a caller-supplied string so the clauses live here, with the sentence they are part of, instead of drifting across the surfaces that print them — and it defaults to none, so a surface that forgets to choose gets the sentence that is true everywhere rather than the one that names somebody else's verb.