fix: chat-open scroll regression, SFU screen reliability, unanswered calls, selected-chat border
- REGRESSION (More#1): removed overflow-anchor:none (it stopped the view from staying at the bottom as images settle) + renderThread re-asserts scroll-to-bottom after late content, unless a 'New messages' divider is shown → chats open at the latest message. - #9: dynacast off — a screen-share layer was being paused unless a camera track was also flowing (blank / only-with-camera / slow). Now every published track flows. - More#7/#9: 1:1 calls track 'answered'; unanswered calls auto-end after ~40s (caller no longer stuck ringing) and post 'Missed call' instead of a duration; answered calls show duration from the answer time. meeting-ended reason 'unanswered' → 'No answer'. - More#6: selected chat now has a thin yellow (brand) boundary. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -87,7 +87,7 @@ function handle(ws, m, req) {
|
||||
// …and tell existing peers a newcomer arrived.
|
||||
for (const [, p] of peers) { if (p.ws.readyState === 1) p.ws.send(JSON.stringify({ type: 'meeting-peer-joined', peerId, name, avatar, uid: ws._meetingUserId || null })); }
|
||||
peers.set(peerId, { ws, name, avatar, uid: ws._meetingUserId || null });
|
||||
if (ws._meetingUserId) CHAT.broadcastPresence(ws._meetingUserId); // now in a call → update contacts live
|
||||
if (ws._meetingUserId) { try { require('./calls').markDmAnswered(room, ws._meetingUserId); } catch (_) {} CHAT.broadcastPresence(ws._meetingUserId); } // #9: callee joined → mark 1:1 answered
|
||||
const tsubs = transcriptSubs.get(room); if (tsubs && tsubs.size > 0) ws.send(JSON.stringify({ type: 'meeting-transcribe-state', active: true })); // catch up: already transcribing
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user