fix(chat): sub-aba passiva do peer ao receber TCP privado/legado

Cria a sub-aba do peer sem roubar foco quando o canal TCP privado abre ou quando chega mensagem legado com IP do remetente.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Gabriel Felipe Souza SantosandCursor committed 2026-10-27 19:03:46 -03:00
1 parent 112b6edaeb
commit f96c9e3892
1 file changed
+11 -3
@@ -305,8 +305,11 @@ public class ChatPanel extends JPanel implements PrivateChatUiSink {
@Override
public void onPrivateChannelReady(String peerIp) {
SwingUtilities.invokeLater(() -> {
appendSystemLine(peerKey(canonicalPeerIp(peerIp)), "Canal TCP privado conectado com " + peerIp + ".");
if (peerKey(canonicalPeerIp(peerIp)).equals(activeConversationKey)) {
String canonical = canonicalPeerIp(peerIp);
String resolved = SessionPeerLabels.resolveDisplayName(connectionManager, canonical, peerIp);
ensurePeerTabForIncoming(canonical, resolved);
appendSystemLine(peerKey(canonical), "Canal TCP privado conectado com " + resolved + ".");
if (peerKey(canonical).equals(activeConversationKey)) {
flushTranscriptToPane();
}
});
@@ -505,7 +508,12 @@ public class ChatPanel extends JPanel implements PrivateChatUiSink {
public void receiveLegacyMessage(String tipo, String nome, String ip, String text) {
runOnEdt(() -> {
LegacyMpChatMessage legacy = new LegacyMpChatMessage(nome, ip, tipo, text);
String bucket = ip != null && !ip.isBlank() ? peerKey(canonicalPeerIp(ip)) : ROOM_KEY;
String bucket = ROOM_KEY;
if (ip != null && !ip.isBlank()) {
String canonical = canonicalPeerIp(ip);
ensurePeerTabForIncoming(canonical, nome);
bucket = peerKey(canonical);
}
appendLegacyLine(bucket, legacy);
});
}