fix(messages): merge partial WS updates + display edited content

message_updated broadcasts only {id, edited_content, edited_at} (+ reset
ai_* fields), but the frontend replaced the whole cached record, wiping
username/content/channel_id/created_at -> blank cards and the
'the channel_id of undefined' crash on /messages. Merge partials over the
existing record (list + detail), make list-patching channel-filter aware,
show edited content/badge, and fix the message_updated WS type.

Also broadcast type:'edited' + ai reset in message_updated so the live UI
matches the DB update.
This commit is contained in:
asepharyana
2026-08-02 10:27:41 +07:00
parent a82265f4a9
commit 3f199aa70d
6 changed files with 92 additions and 22 deletions
@@ -343,6 +343,20 @@ export function registerMessageCapture(client: Client): void {
id: newMessage.id,
edited_content: getDisplayContent(newMessage as Message),
edited_at: editedAt,
type: "edited",
// Match the DB update (updateMessageAsEdited resets analysis to
// pending) so the live UI reflects the same state instead of
// lingering on the stale pre-edit verdict.
ai_status: "pending",
ai_moderation_flags: null,
ai_moderation_score: null,
ai_analysis: null,
ai_categories: null,
ai_severity: null,
ai_confidence: null,
ai_recommended_action: null,
ai_analyzed_at: null,
ai_error: null,
});
}
} else if (newMessage.author) {