From e938241c0d5141114bceb00dddf7adf00a0f1cb3 Mon Sep 17 00:00:00 2001 From: Dmitrii Balabanov Date: Sat, 7 Mar 2026 23:31:21 +0200 Subject: [PATCH] refactor(manager): update SendMessageWithID to accept bus.OutboundMessage --- pkg/agent/loop.go | 6 +++++- pkg/channels/manager.go | 15 ++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/pkg/agent/loop.go b/pkg/agent/loop.go index 44ea8b430..eeb1c48fd 100644 --- a/pkg/agent/loop.go +++ b/pkg/agent/loop.go @@ -411,7 +411,11 @@ func (al *AgentLoop) bindAdvancedMessageManagers(cm *channels.Manager) { advancedManager.SetCallbacks( // sendPlaceholder func(channelName, chatID, content string) (string, error) { - return cm.SendMessageWithID(context.Background(), channelName, chatID, content) + return cm.SendMessageWithID(context.Background(), bus.OutboundMessage{ + Channel: channelName, + ChatID: chatID, + Content: content, + }) }, // editMessage func(channelName, chatID, messageID, content string) error { diff --git a/pkg/channels/manager.go b/pkg/channels/manager.go index c11f6b6d2..655ff49fa 100644 --- a/pkg/channels/manager.go +++ b/pkg/channels/manager.go @@ -837,16 +837,10 @@ func (m *Manager) SendToChannel(ctx context.Context, channelName, chatID, conten // SendMessageWithID sends a message synchronously via the channel's native API if supported, // returning the platform-specific message ID. If the channel does not support SyncSender, // it falls back to the async bus and returns an error. -func (m *Manager) SendMessageWithID(ctx context.Context, channelName, chatID, content string) (string, error) { - ch, ok := m.GetChannel(channelName) +func (m *Manager) SendMessageWithID(ctx context.Context, msg bus.OutboundMessage) (string, error) { + ch, ok := m.GetChannel(msg.Channel) if !ok { - return "", fmt.Errorf("channel %s not found", channelName) - } - - msg := bus.OutboundMessage{ - Channel: channelName, - ChatID: chatID, - Content: content, + return "", fmt.Errorf("channel %s not found", msg.Channel) } if syncSender, ok := ch.(SyncSender); ok { @@ -855,8 +849,7 @@ func (m *Manager) SendMessageWithID(ctx context.Context, channelName, chatID, co return msgID, nil } logger.ErrorCF("manager", "SendMessageWithID failed", map[string]any{"error": err, "msgID": msgID}) - } else { - logger.WarnCF("manager", "channel does not implement SyncSender", map[string]any{"channel": channelName}) + logger.WarnCF("manager", "channel does not implement SyncSender", map[string]any{"channel": msg.Channel}) } logger.WarnCF("manager", "falling back to bus publish", nil)