MWSE/REVIEW.md

2.7 KiB
Raw Blame History

REVIEW.md — İnsan Onayı Gereken Konular

Bu maddeler go-rewrite branch'inde uygulandı ama CLAUDE.md gereği KAPATILMADI / merge edilmedi / deploy edilmedi. İnceleyip karar ver.

1. Concurrency modeli (#22) — ASIL KRİTİK TASARIM

Uygulanan: RWMutex + bağlantı-başına-tek-yazıcı goroutine (decisions.md #3, PORT-PROGRESS.md).

İncelenecek: Bu, izin verilen iki yoldan biri. Diğeri "per-room owner-goroutine (actor) + channel". Ben okunabilirlik gerekçesiyle RWMutex'i seçtim ve gerçek race'i tek-yazıcı + done-seçimli Send ile çözdüm. TestLeaveWhileSendRace -race ile temiz.

Karar gereken: Actor modeli mi istiyorsun, yoksa bu yeterli mi? (Önerim: bu yeterli ve daha sade. Aktör'e geçmek büyük yeniden yazım; bu tasarım 1.0.0 yük profillerinde de ölçeklenir.)

2. P2P request/response zinciri (#23/#24)

Durum: request/to + response/to Node'a sadık portlandı. SDK request'i action 'R' ile gönderdiğinden sunucu anında [null, id, 'E'] yanıtlıyor; eşin asıl cevabı response/to ile sonra geliyor ama o id artık SDK tarafında "tamamlanmış" sayılabilir.

İncelenecek: Bu, Node'da da var olan bir uyumsuzluk. Düzeltmek ya SDK (request/to'yu fire-and-forget gönder, cevabı ayrı bir id ile beklesin) ya da dispatcher'a relay-farkında bir istisna gerektirir — ikisi de "donmuş sözleşme"yi etkiler, o yüzden senin kararın. Feature-parity (1.0.0) işi.

3. /api kontrol düzlemi — ertelenen uçlar

Uygulandı: POST /api/auth/key, GET /api/rooms, GET /api/clients, GET /api/room/{id}, POST /api/room/create, POST /api/client/{id}/send, POST /api/room/{id}/send.

Ertelendi: POST /api/room/{id}/join, DELETE /api/room/{id}/leave (sunucunun odaya "sahte client" olarak katılması — Go'da gerçek bir sink-Client ile tasarlanmalı), POST /api/webhook. Bunlar 0.1.0 çekirdeği için kritik değil.

4. Tel sözleşmesi: latent davranışlar

decisions.md'deki bug düzeltmeleri mantık seviyesinde; gönderilen mesaj isim/şekilleri korundu. Yine de pairing/davet akışları artık Node'da hiç çalışmayan haliyle değil, doğru çalışıyor. Eğer canlıdaki bir istemci bu bozuk davranışa bağımlıysa (pek olası değil) fark oluşabilir. Frontend SDK'nın beklediği yüklerle uyumlu yazıldı.

5. Eski Node kaynağı

Source/ ve kök index.js/package.json referans olarak duruyor. Go portu bunların yerini alıyor. Silme/temizleme senin kararın (ben dokunmadım).

Deploy / merge

stable'a merge ve ws.saqut.com deploy'u bilinçli olarak yapılmadı. Push'u da sana bıraktım (git push origin go-rewrite).