From 4a8887636cd346f99c2242035c02b3b76899b3ce Mon Sep 17 00:00:00 2001 From: Gabi Simons <263580637+gabi-simons@users.noreply.github.com> Date: Wed, 29 Apr 2026 13:19:49 +0000 Subject: [PATCH 1/2] feat(slack): implement resolveChannelName via fetchThread MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds resolveChannelName to the Slack adapter so the channel-approval flow can show the actual channel name in the approval card. Uses the existing fetchThread → conversations.info path. Depends on: qwibitai/nanoclaw#2105 (adds resolveChannelName to ChannelAdapter interface) Co-Authored-By: Claude Opus 4.6 (1M context) --- src/channels/slack.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/channels/slack.ts b/src/channels/slack.ts index 6ee33db43..2df566686 100644 --- a/src/channels/slack.ts +++ b/src/channels/slack.ts @@ -16,6 +16,15 @@ registerChannelAdapter('slack', { botToken: env.SLACK_BOT_TOKEN, signingSecret: env.SLACK_SIGNING_SECRET, }); - return createChatSdkBridge({ adapter: slackAdapter, concurrency: 'concurrent', supportsThreads: true }); + const bridge = createChatSdkBridge({ adapter: slackAdapter, concurrency: 'concurrent', supportsThreads: true }); + bridge.resolveChannelName = async (platformId: string) => { + try { + const info = await slackAdapter.fetchThread(platformId); + return (info as { channelName?: string }).channelName ?? null; + } catch { + return null; + } + }; + return bridge; }, }); From 221c4948cdd1ae085fbe1cd5963b462729e2cefa Mon Sep 17 00:00:00 2001 From: gabi-simons Date: Thu, 30 Apr 2026 12:56:12 +0000 Subject: [PATCH 2/2] feat(telegram): implement resolveChannelName via getChat API Enables the channel-approval flow to show the Telegram group name in the approval card instead of a generic "a telegram channel". Co-Authored-By: Claude Opus 4.6 (1M context) --- src/channels/telegram.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/channels/telegram.ts b/src/channels/telegram.ts index dfd42323f..de1f70575 100644 --- a/src/channels/telegram.ts +++ b/src/channels/telegram.ts @@ -216,6 +216,21 @@ registerChannelAdapter('telegram', { const wrapped: ChannelAdapter = { ...bridge, + resolveChannelName: async (platformId: string) => { + const chatId = platformId.split(':').slice(1).join(':'); + if (!chatId) return null; + try { + const res = await fetch(`https://api.telegram.org/bot${token}/getChat`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ chat_id: chatId }), + }); + const data = (await res.json()) as { ok?: boolean; result?: { title?: string } }; + return data.ok ? (data.result?.title ?? null) : null; + } catch { + return null; + } + }, async setup(hostConfig: ChannelSetup) { const intercepted: ChannelSetup = { ...hostConfig,