serveShareExtension
suspend fun UserSessionScope.serveShareExtension(doorbell: Flow<Unit>, refused: suspend (ConversationId, conversationName: String?, reason: String) -> Unit)
Answers the share extension while the app owns this account, live or not (ADR 13). It lists the account's conversations when the extension asks, and stores handed-off shares as the composer would: now, and whenever doorbell rings. Runs until cancelled, which must happen before the app releases the account. Servers of one account take turns. A share it refuses after the extension stopped waiting goes to refused, for the app to tell the user.