From 97f49429432c9ee7d62da7664a584cc36484dfde Mon Sep 17 00:00:00 2001 From: Luan Vu Date: Sun, 29 Mar 2026 11:25:05 +0700 Subject: [PATCH] fix(channels): add display_name to session metadata for Feishu, Zalo, Slack (#536) Sessions page shows raw IDs instead of sender names because these channels didn't include display_name in their message metadata. The gateway's extractSessionMetadata() already looks for this key but it was missing from Feishu, Zalo Personal, and Slack message payloads. Co-authored-by: Luvu182 <208665161+Luvu182@users.noreply.github.com> --- internal/channels/feishu/bot.go | 1 + internal/channels/slack/handlers.go | 1 + internal/channels/zalo/personal/handlers.go | 12 +++++++----- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/internal/channels/feishu/bot.go b/internal/channels/feishu/bot.go index 75d179e0..f78e404b 100644 --- a/internal/channels/feishu/bot.go +++ b/internal/channels/feishu/bot.go @@ -169,6 +169,7 @@ func (c *Channel) handleMessageEvent(ctx context.Context, event *MessageEvent) { "message_id": messageID, "chat_type": mc.ChatType, "sender_name": senderName, + "display_name": senderName, "mentioned_bot": fmt.Sprintf("%t", mc.MentionedBot), "platform": channels.TypeFeishu, } diff --git a/internal/channels/slack/handlers.go b/internal/channels/slack/handlers.go index e6a4ceb4..35452eff 100644 --- a/internal/channels/slack/handlers.go +++ b/internal/channels/slack/handlers.go @@ -253,6 +253,7 @@ func (c *Channel) handleMessage(ev *slackevents.MessageEvent) { "message_id": ev.TimeStamp, "user_id": senderID, "username": displayName, + "display_name": displayName, "channel_id": channelID, "is_dm": fmt.Sprintf("%t", isDM), "local_key": localKey, diff --git a/internal/channels/zalo/personal/handlers.go b/internal/channels/zalo/personal/handlers.go index 4cefe8ac..e1369e5c 100644 --- a/internal/channels/zalo/personal/handlers.go +++ b/internal/channels/zalo/personal/handlers.go @@ -68,8 +68,9 @@ func (c *Channel) handleDM(msg protocol.UserMessage) { } metadata := map[string]string{ - "message_id": msg.Data.MsgID, - "platform": channels.TypeZaloPersonal, + "message_id": msg.Data.MsgID, + "platform": channels.TypeZaloPersonal, + "display_name": senderName, } c.HandleMessage(senderID, threadID, content, media, metadata, "direct") } @@ -147,9 +148,10 @@ func (c *Channel) handleGroupMessage(msg protocol.GroupMessage) { } metadata := map[string]string{ - "message_id": msg.Data.MsgID, - "platform": channels.TypeZaloPersonal, - "group_id": threadID, + "message_id": msg.Data.MsgID, + "platform": channels.TypeZaloPersonal, + "group_id": threadID, + "display_name": senderName, } c.HandleMessage(senderID, threadID, finalContent, allMedia, metadata, "group")