feat(messenger): wire the channel-roster import adapter seam

Phase D of channel-roster import. CrmMessagingAdapter.addMembers() proxies the
new crm.messenger.participant.addMany door action, enabling the SDK's '#' import
affordance in the channel/group settings panel. Pulls @insignia/iios-messaging-ui@0.1.8.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 16:13:38 +05:30
parent 0c7adece3c
commit a87d36e1ec
3 changed files with 12 additions and 5 deletions
+7
View File
@@ -7,6 +7,7 @@
import type {
Attachment,
BulkAddResult,
ChannelSummary,
ChannelVisibility,
Conversation,
@@ -247,6 +248,12 @@ export class CrmMessagingAdapter implements MessagingAdapter {
await this.sdk.command("crm.messenger.participant.add", { threadId, userId });
}
/** Bulk import (e.g. everyone from another channel). IIOS governs both ends: you must belong to
* the source channel to read its roster, and OPA re-checks who may add to this thread. */
async addMembers(threadId: string, userIds: string[]): Promise<BulkAddResult> {
return this.sdk.command<BulkAddResult>("crm.messenger.participant.addMany", { threadId, userIds });
}
async removeMember(threadId: string, userId: string): Promise<void> {
await this.sdk.command("crm.messenger.participant.remove", { threadId, userId });
}