sdk/index.js:
- accepted/pair sinyali → mwse.pairs.set(from, peer)
- end/pair sinyali → mwse.pairs.delete(from)
(İstek gönderen taraf pairs haritasına eklendi)
sdk/Peer.js:
- acceptPair() başarısında → mwse.pairs.set(socketId, this)
- rejectPair() → mwse.pairs.delete(socketId)
- endPair() → mwse.pairs.delete(socketId)
(Kabul eden taraf da pairs haritasına eklendi)
public/studio/Studio.js — tamamen yeniden yazıldı:
Gelen eşleme isteği → bildirim banner'ı:
- Yeşil arka plan, socket ID kodu olarak gösterilir
- [Reddet] → rejectPair() → banner kapanır
- [Kabul Et] → acceptPair() → banner kapanır, eşler yenilenir
Eşler kolonu: artık mwse.pairs'tan doğru veriler geliyor
Oda oluşturma: description alanı eklendi (sunucu zorunlu tutuyordu)
Oda oluştur → "Oda adı / Açıklama / Şifre" modal
ID ile ara → prompt() yerine modal
Araç çubuğu: "Kimliğim" kartı, kopyala butonu (⎘→✓ flash)
public/studio/style.css:
.mwse-notif-area / .mwse-notif-bar / __msg / __dot / __actions
go test -race ./... — yeşil
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Araç çubuğu:
- Socket ID → kopyalanabilir kart (tıkla → clipboard, yeşil flash)
- "Ana" butonu kaldırıldı (kafakarıştırıcıydı, Miller kolon kendisi navigasyon sağlıyor)
- Durum mesajı sağda kaldı
Modal sistemi (_showModal):
- Başlık + label'lı input alanları + İptal/Tamam butonları
- Arka plana tıkla veya ✕ ile kapat
- Enter → onayla, Esc → kapat
- İlk alana otomatik focus
Eşler kolonu:
- "ID ile ara" → prompt() yerine modal
- Alan: Socket ID, placeholder: 'xxxxxxxx-xxxx-…'
Odalar kolonu:
- "Oda Oluştur" (primary buton) → modal
- Alanlar: oda adı + opsiyonel şifre
- Oluşturunca oda kolonunu yeniler
style.css:
- .mwse-id-card + __label/__value/__copy + --copied
- .mwse-modal-overlay / .mwse-modal / __header/__body/__field/__footer/__input/__close
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>