sdk/index.js — bağlantı hatası düzeltildi:
- new MWSE() options=undefined → TypeError patlaması
- constructor(options) → opts = { endpoint:'auto', ...options }
- Artık new MWSE() / new MWSE('ws://host') / new MWSE({…}) hepsi çalışıyor
public/studio/Studio.js — tamamen yeniden yazıldı:
Eşler kolonu:
- mwse.pairs'ten gerçek eşleri gösteriyor
- Her eş için: Video+Ses / Sesli Ara / Ekran Paylaş / Kamera Seç /
Mikrofon Seç / Dosya Gönder / Aktif Akışlar / Eşleşmeyi Bitir
- "ID ile ara" → prompt ile direkt peer ID girerek requestPair()
Odalar kolonu: mwse.rooms'tan oda + üye listesi
Cihazlar kolonu:
- MediaSources.devices() ile kamera ve mikrofon listesi
- Her cihaza tıkla → seçili eşe akış başlat veya önizle (floating video)
- İzin İste butonu → izin alındıktan sonra listeyi yenile
Akışlar kolonu: peer.rtc._streams.list() canlı gösterimi
Kalite kolonu: Yüksek/Orta/Düşük preset + mute/stop
Araç çubuğu: socket ID, durum mesajı, Ana butonu (popTo(0))
Gelen track'ler: audio otomatik çalınır, status bar bildirir
Cihaz önizleme: floating video element (✕ ile kapatılır)
public/studio/app.js: studio.mount() await ile çağrılıyor
go test -race ./... — yeşil
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sdk/webrtc/CanvasCompositor.js (#38):
- Gelen video track'lerini tek canvas'ta birleştirme (grid/pip/side-by-side/focus)
- OffscreenCanvas öncelikli (DOM gerektirmiyor), yoksa <canvas> kullanır
- setFPS(), setLayout(), setFocus() ile runtime kontrol
- stream() → MediaStream; StreamManager.addStream('composite', ...) ile gönderilir
- setEncodings() ile bitrate/fps zaten StreamManager üzerinden destekleniyor
sdk/webrtc/index.js: CanvasCompositor re-export eklendi
public/demos/ (#34): Tüm demo'lar yeni SDK API'sine güncellendi:
- <script src="/script"> → <script type="module"> import MWSE from '/sdk/index.js'
- new MWSE() (endpoint otomatik import.meta.url'den alınıyor)
- rtc.connect({ polite }) ile perfect negotiation polite/impolite tayini
- rtc.addStream() / rtc.on('track') yeni API
- rtc.on('failed') durumu gösteriliyor
- window.send() module scope sorununu çözüyor (onclick handler)
go test -race ./... — tüm testler yeşil
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>