fix(approvals): show human-readable names in approval cards
Channel and sender approval cards showed raw platform IDs (e.g. discord:1475578393738219540:...) instead of readable context. Extract sender name from the event content for channel approvals, and use the channel type name for sender approvals. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -101,13 +101,25 @@ export async function requestChannelApproval(input: RequestChannelApprovalInput)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const originName = originMg?.name ?? originMg?.platform_id ?? 'an unfamiliar chat';
|
const isGroup = event.message?.isGroup ?? originMg?.is_group === 1;
|
||||||
const isGroup = originMg?.is_group === 1;
|
|
||||||
|
// Extract sender name from the event content for a human-readable card.
|
||||||
|
let senderName: string | undefined;
|
||||||
|
try {
|
||||||
|
const parsed = JSON.parse(event.message.content) as Record<string, unknown>;
|
||||||
|
senderName = (parsed.senderName ?? parsed.sender) as string | undefined;
|
||||||
|
} catch {
|
||||||
|
// non-critical — fall through to generic wording
|
||||||
|
}
|
||||||
|
|
||||||
const title = isGroup ? '📣 Bot mentioned in new chat' : '💬 New direct message';
|
const title = isGroup ? '📣 Bot mentioned in new chat' : '💬 New direct message';
|
||||||
const question = isGroup
|
const question = isGroup
|
||||||
? `Your agent was mentioned in ${originName} on ${originChannelType}. Wire it to ${target.name} and let it engage?`
|
? senderName
|
||||||
: `Someone DM'd your agent on ${originChannelType} (${originName}). Wire it to ${target.name} and let it respond?`;
|
? `${senderName} mentioned your agent in a ${originChannelType} channel. Wire it to ${target.name} and let it engage?`
|
||||||
|
: `Your agent was mentioned in a ${originChannelType} channel. Wire it to ${target.name} and let it engage?`
|
||||||
|
: senderName
|
||||||
|
? `${senderName} DM'd your agent on ${originChannelType}. Wire it to ${target.name} and let it respond?`
|
||||||
|
: `Someone DM'd your agent on ${originChannelType}. Wire it to ${target.name} and let it respond?`;
|
||||||
|
|
||||||
createPendingChannelApproval({
|
createPendingChannelApproval({
|
||||||
messaging_group_id: messagingGroupId,
|
messaging_group_id: messagingGroupId,
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ export async function requestSenderApproval(input: RequestSenderApprovalInput):
|
|||||||
|
|
||||||
const approvalId = generateId();
|
const approvalId = generateId();
|
||||||
const senderDisplay = senderName && senderName.length > 0 ? senderName : senderIdentity;
|
const senderDisplay = senderName && senderName.length > 0 ? senderName : senderIdentity;
|
||||||
const originName = originMg?.name ?? originMg?.platform_id ?? 'an unfamiliar chat';
|
const originName = originMg?.name ?? `a ${originChannelType} channel`;
|
||||||
|
|
||||||
const title = '👤 New sender';
|
const title = '👤 New sender';
|
||||||
const question = `${senderDisplay} wants to talk to your agent in ${originName}. Allow?`;
|
const question = `${senderDisplay} wants to talk to your agent in ${originName}. Allow?`;
|
||||||
|
|||||||
Reference in New Issue
Block a user