sdk/webrtc/ — kapsamlı RTCEngine kütüphanesi:
- PeerConnection.js: RTCPeerConnection wrapper; connectionstatechange +
iceconnectionstatechange her ikisi de izleniyor (eski 'bağlantı kopsa
fark etmez' hatası bu şekilde önleniyor)
- Negotiator.js: perfect negotiation (RFC 8829); polite/impolite roller,
teklif çakışması rollback, ICE adayları sıraya alınıyor
- StreamManager.js: addStream/replaceTrack/removeStream/setEncodings —
runtime'da track ekle/çıkar/değiştir, yeniden müzakere gerekmiyor
- DataChannel.js: birincil veri kanalı, bağlantı canlıyken kapanırsa
otomatik yeniden oluşturulur, açılana kadar mesaj kuyruğu
- MediaSources.js: camera/microphone/screen/cameraAndMic fabrika metodları,
AudioBuffer→MediaStream, canvas.captureStream, AudioContext mix bus
- FileSender.js: en fazla 5 paralel DataChannel üzerinden dosya transferi,
progress olayı, 16 KB chunk + bufferedAmountLow akış kontrolü
- index.js (RTCEngine): tüm alt sistemleri koordine eder; ICE restart
exponential backoff (1s→2s→4s); Peer.js ile geriye dönük uyumlu
sdk/WebRTC.js → ./webrtc/index.js'e ince re-export (Peer.js değişmedi)
sdk/studio/ — masaüstü-first Miller-kolon UI (#47):
- Column.js: başlık + arama filtresi + öğe listesi
- ColumnView.js: yatay kayan kolon yöneticisi, popTo() ile derine git
- index.js (Studio): Server→Groups→Peers→Devices→Streams→Quality hiyerarşisi;
WebRTC bağlantısını otomatik başlatır (polite = küçük socketId)
- style.css: koyu masaüstü teması, aktif öğe vurgusu, ilerleme çubuğu
internal/services/ippressure.go — rastgele atama + sub-network (#40/#41):
- lockIP/lockNumber/lockCode: önce 256 rastgele deneme, sonra sıralı yedek;
yüksek bağlantı sayısında O(1) ortalama atama
- SubNet: /24 sanal alt ağ (10.A.B.0/24); Alloc/Release/Whois metodları
- alloc|release|whois APSubNet + APSubNetIP HTTP handler'ları eklendi
- Bağlantı kesildiğinde subnet IP'leri ve prefix otomatik serbest bırakılıyor
sdk/IPPressure.js: allocSubNet/releaseSubNet/allocSubNetIP/releaseSubNetIP/
querySubNetIP metodları eklendi
go test -race ./... — tüm testler yeşil
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>