From 1910b09bcef35d8a33414654a8969b44d1ae6c74 Mon Sep 17 00:00:00 2001 From: Timo <6156589+Shik3i@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:13:33 +0200 Subject: [PATCH] fix: ensure username and tab title are sent and stored on initial join --- extension/background.js | 18 +++++++++++------- server/index.js | 6 +++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/extension/background.js b/extension/background.js index 4e533c5..a0739d9 100644 --- a/extension/background.js +++ b/extension/background.js @@ -206,6 +206,7 @@ async function connect() { password: settings.password, peerId, username: settings.username, + tabTitle: currentTabTitle, protocolVersion: PROTOCOL_VERSION }); } @@ -561,14 +562,17 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { }, () => { if (socket && socket.readyState === WebSocket.OPEN && isNamespaceJoined) { // FORCE TRANSITION: Emit Join Room directly if already connected - emit(EVENTS.JOIN_ROOM, { - roomId, - password, - peerId, - username: message.username || '', // Use username if provided by bridge - protocolVersion: PROTOCOL_VERSION + getSettings().then(settings => { + emit(EVENTS.JOIN_ROOM, { + roomId, + password, + peerId, + username: settings.username, // Use local settings, not bridge + tabTitle: currentTabTitle, + protocolVersion: PROTOCOL_VERSION + }); + addLog(`Joining room via link: ${roomId}`, 'info'); }); - addLog(`Joining room via link: ${roomId}`, 'info'); } else { connect(); } diff --git a/server/index.js b/server/index.js index 080935b..03a862e 100644 --- a/server/index.js +++ b/server/index.js @@ -154,7 +154,7 @@ io.on('connection', (socket) => { return; } if (!payload || typeof payload.roomId !== 'string') return; - const { roomId, password, peerId, username, protocolVersion } = payload; + const { roomId, password, peerId, username, tabTitle, protocolVersion } = payload; try { // Protocol check if (protocolVersion !== '1.0.0') { @@ -242,12 +242,12 @@ io.on('connection', (socket) => { room.peerData.set(socket.id, { peerId, username: username || null, - tabTitle: null, + tabTitle: tabTitle || null, lastSeen: Date.now() }); socketToRoom.set(socket.id, { roomId, peerId }); - socket.to(roomId).emit(EVENTS.PEER_STATUS, { peerId, username: username || null, status: 'joined' }); + socket.to(roomId).emit(EVENTS.PEER_STATUS, { peerId, username: username || null, tabTitle: tabTitle || null, status: 'joined' }); socket.emit(EVENTS.ROOM_DATA, { roomId, peers: Array.from(room.peers).map(sid => room.peerData.get(sid))