Bugünkü TEK iş: MWSE Node.js engine'ini Go'ya taşımak (milestone 0.1.0 çekirdeği). Hiçbir issue KAPATMA, etiketleme veya yorumlama — sadece kodu yaz. Issue'ları yalnızca SPEC olarak oku: `./tools/gitea issue view 21` (… 22, 23, 24, 25, 26).

Önce `CLAUDE.md` ve `todo.md`'yi oku (bağlam + KATI teknik kısıtlar).

Kapsam (SADECE engine; frontend/WebRTC/studio'ya GİRME):
1. Go WS sunucu iskeleti + bağlantı yaşam döngüsü (#21).
2. ÇEKİRDEK: concurrency modeli (#22) — room/peer state için owner-goroutine (actor) + channel, ya da `sync.RWMutex`. Node'daki "biri odadan ayrılırken başka goroutine o peer'e yazınca race" sorununu çöz. Tasarım gerekçeni `PORT-PROGRESS.md`'ye yaz.
3. WSTS protokolünü Go'da yeniden uygula (#23) — SDK giriş/çıkış sözleşmesi SABİT kalmalı.
4. MessageRouter + Services (Auth, Room, Session, IPPressure, DataTransfer, YourID) portu (#24).
5. Config + HTTP + graceful shutdown (#25).
6. `go test -race` ile testler (#26) — özellikle eşzamanlı join/leave/broadcast ve "ayrılırken-yazma" regression'ı yeşil olmalı.

Kurallar:
- `go-rewrite` branch'inde çalış (yoksa oluştur), commit at. `stable`'a dokunma, deploy etme, push'u bana bırak.
- İzin/şifre sorma. git.saqut.com okuman gerekirse `./tools/gitea` kullan — ama hiçbir issue'yu KAPATMA/değiştirme.
- Soru sorup bekleme; kararsız kalırsan en makulü seç, gerekçeyi yaz, devam et.
- Bittiğinde `PORT-PROGRESS.md`'ye yaz: ne yapıldı, ne kaldı, kritik kararlar (özellikle concurrency). Yarın ben inceleyeceğim.
- Bu tek işi bitir, sonra DUR.
