pub async fn join_from_invite_code(
invite_code_str: &str,
app_dir: &Path,
cloudkit_ops: Option<Arc<dyn CloudKitOps>>,
oauth_cancel: Receiver<bool>,
clock: ClockRef,
ids: IdRef,
make_blob_plan: impl Fn(&LibraryDir) -> Box<dyn BlobPlan>,
on_status: impl Fn(&str),
) -> Result<Config, JoinError>Expand description
Join a shared library using an invite code string.
Handles everything: decode invite, get keypair, build cloud home (including OAuth flows), run the join protocol, and set as active library.