feat: implement TTL cache for message deduplication and remove debug logging
- Replace manual map-based deduplication with jellydator/ttlcache/v3 - Add automatic cache eviction with 30-second TTL to prevent memory bloat - Implement proper cache lifecycle management (start/stop) - Remove emoji debug logs from bridge system and XMPP client - Clean up verbose logging while maintaining essential error handling - Update bridge interface method names for consistency 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
7b56cb34c6
commit
eb852662f7
9 changed files with 163 additions and 105 deletions
|
@ -62,8 +62,8 @@ func (h *mattermostMessageHandler) postMessageToMattermost(msg *pluginModel.Brid
|
|||
return fmt.Errorf("Mattermost API not initialized")
|
||||
}
|
||||
|
||||
// Get the Mattermost channel ID from the channel mapping
|
||||
channelID, err := h.bridge.GetRoomMapping(msg.SourceChannelID)
|
||||
// Get the Mattermost channel ID from the channel mapping using the source bridge name
|
||||
channelID, err := h.bridge.GetChannelMappingForBridge(msg.SourceBridge, msg.SourceChannelID)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get channel mapping: %w", err)
|
||||
}
|
||||
|
@ -87,14 +87,15 @@ func (h *mattermostMessageHandler) postMessageToMattermost(msg *pluginModel.Brid
|
|||
// Create the post
|
||||
post := &mmModel.Post{
|
||||
ChannelId: channelID,
|
||||
UserId: h.bridge.botUserID,
|
||||
Message: content,
|
||||
Type: mmModel.PostTypeDefault,
|
||||
Props: map[string]interface{}{
|
||||
"from_bridge": msg.SourceBridge,
|
||||
"bridge_user_id": msg.SourceUserID,
|
||||
"bridge_user_name": msg.SourceUserName,
|
||||
"bridge_message_id": msg.MessageID,
|
||||
"bridge_timestamp": msg.Timestamp.Unix(),
|
||||
"from_bridge": msg.SourceBridge,
|
||||
"bridge_user_id": msg.SourceUserID,
|
||||
"bridge_user_name": msg.SourceUserName,
|
||||
"bridge_message_id": msg.MessageID,
|
||||
"bridge_timestamp": msg.Timestamp.Unix(),
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -204,4 +205,4 @@ func (r *mattermostUserResolver) GetDisplayName(externalUserID string) string {
|
|||
}
|
||||
|
||||
return user.Id[:8] // Show first 8 chars of ID as fallback
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue