From 758c6a7b5bf83a13247aabb47d43603576a73a3b Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Tue, 3 Mar 2026 00:28:24 +0100 Subject: [PATCH] feat: normalize remote asset URLs and route UI actions by instance origin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 5 of multi-instance federation. Adds a two-layer fix: Layer 1 — Data ingestion normalization: Remote instance user avatars, server icons, and attachment filenames are rewritten to absolute URLs when entering the app (via WebSocket events or API responses), so all downstream components render them correctly without changes. Layer 2 — Outbound action routing: wsSend calls (voice join/leave/status, typing) and file uploads in UI components now route through the correct instance based on the active channel's origin. --- packages/web/src/components/chat/Message.tsx | 7 ++-- .../web/src/components/chat/MessageInput.tsx | 10 ++--- .../src/components/layout/ChannelSidebar.tsx | 10 +++-- .../web/src/components/layout/MainContent.tsx | 4 +- .../src/components/voice/VoiceControlBar.tsx | 19 +++++---- .../src/components/voice/VoiceControls.tsx | 14 ++++--- packages/web/src/hooks/useWebSocket.ts | 19 +++++++++ packages/web/src/stores/chatStore.ts | 11 +++++ packages/web/src/stores/serverStore.ts | 8 ++++ packages/web/src/utils/assetUrls.ts | 40 +++++++++++++++++++ 10 files changed, 114 insertions(+), 28 deletions(-) create mode 100644 packages/web/src/utils/assetUrls.ts diff --git a/packages/web/src/components/chat/Message.tsx b/packages/web/src/components/chat/Message.tsx index c32defc3..91fc8c39 100644 --- a/packages/web/src/components/chat/Message.tsx +++ b/packages/web/src/components/chat/Message.tsx @@ -268,14 +268,15 @@ export function Message({ message, isCompact, isFirstInGroup }: MessageProps) {