Files
kolaytercih/docs/ekip-raporlari/2026-10-09/qa-revizyon-koda-bagli.md
bilalgursen da0e9dff7a docs(ekip): 7–10 Ekim raporları, eval sonuçları, seslendirme betiği
- docs/ekip-raporlari/2026-10-07, 2026-10-09, 2026-10-10 raporları ve ekran görüntüleri
  (ses/ altındaki mp3 dosyaları depoya alınmadı, 38 MB)
- BACKLOG #38: rehber yazılarına "Dinle" düğmesi adayı
- scripts/seslendir.py (Türkçe TTS) ve .gitignore'a .venv-tts/
- scripts/eval/sonuc: 8–10 Ekim revizyon eval çıktıları

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 00:33:39 +03:00

9.2 KiB
Raw Blame History

QA - Liste revizyonu koda bağlı (v2, HEAD e9dfa35)

Lokal dev sunucusu (gerçek OpenRouter modeli), 9 Eki 2026 gece. Tarayıcı: Browser pane. Kod değiştirilmedi.

Özet

  • Paketli hesapta revizyon çalışıyor. 4 ardışık istek ("ilk 5 Ankara olsun", "vakıfları çıkar", "daha güvenli olsun", "İzmir'i de ekle") listeyi gerçekten değiştirdi (DB'de 4 ayrı report_revision), her birinde hap + sunucu şablon cevabı + toast geldi, "YENİDEN KURULMADI" notu hiç çıkmadı, kredi her istekte tam 1 düştü.
  • Form çalışıyor: "listemi yeniden düzenlemek istiyorum" formu açtı, form cevabı (bedelsiz) listeyi kurdu. Ama "listemi değiştir" formu açmadı (B1).
  • Paketsizde kaldı (B2, en önemli): "ilk 5 Ankara olsun" paket uyarısı vermedi; model soru formu açtı, form cevabı "listen yeniden kurulacak" dedi, liste hiç değişmedi.
  • Gecikme (B3): niyet çağrısı 3 koşuda 12-14 sn sürdü, 5 koşuda 1,4-2,8 sn. 15 sn sınırı aşılmadı ama 12 sn'lik beklemede kullanıcı yalnızca "yazıyor" görüyor.
  • Mekanik: akis-denetim 13/13, revizyon-denetim 5/5. Konsol/sunucu logunda uygulama hatası yok (aşağıda hidrasyon uyarısı).

Sonuç tablosu

# Senaryo Sonuç
1a ilk 5 Ankara olsun GEÇTİ. İlk 5 = Ankara 5, rev 3→4, kredi 33→32, şablon cevap (ilk 5 listesi + "Ekrandaki liste yenilendi"), hap "Listeni yeniden kurdum"
1b vakıfları çıkar GEÇTİ. Vakıf 3→0 (24 devlet), ilk 5 Ankara korundu, kredi -1
1c daha güvenli olsun GEÇTİ. 5/13/6 → 4/12/8, cevap "iskelet: güvenli ağırlıklı (4/12/8)", kredi -1
1d İzmir'i de ekle GEÇTİ. "iller: İzmir eklendi", 4/12/8 korundu, kredi -1 (İzmir zaten listedeydi, değişiklik görünmez)
2 listemi değiştir KALDI. Niyet "diger" → normal sohbet cevabı, form yok, 1 kredi gitti
2b listemi yeniden düzenlemek istiyorum GEÇTİ. Form (6 seçenek + serbest metin) açıldı; serbest metin "vakıf üniversiteleri de olsun, devlet ve vakıf karışık" → liste yeniden kuruldu (vakıf 5), cevap "üniversite tipi: fark etmez", form cevabı kredi düşürmedi
3 listemdeki 3. programa not ekle, ne düşünüyorsun? GEÇTİ. Niyet "diger" (2,8 sn), normal sohbet (program_detay aracı, 3. program doğru: Hacettepe Gıda Müh.), liste aynı, kredi -1
4 Paketsiz: ilk 5 Ankara olsun KALDI. Liste değişmedi, kredi -1, ama paket uyarısı yok (B2)
6 akis 13/13, revizyon 5/5 GEÇTİ

Not: "Düzeltme: listen YENİDEN KURULMADI" yalnız eski (önceki turlardan kalan) mesajda görüldü; bu koşunun hiçbir mesajında yok (DB'de 0 kayıt).

Gecikmeler (5. madde)

Ölçüm: istemciye fetch sarmalayıcısı (başlık gelene kadar geçen süre = niyet çağrısı, çünkü yanıt akışı niyet bitince açılıyor) ve sunucu logundaki [soru] revizyon niyeti satırı.

İstek Niyet çağrısı İlk hap Toplam
ilk 5 Ankara olsun 14,0 sn ~14 sn 22,6 sn (sunucu)
vakıfları çıkar 12,3 sn - ~25 sn (kayıttan)
daha güvenli olsun 12,8 sn 13,1 sn 21,4 sn
İzmir'i de ekle 1,4 sn - ~12 sn (DB'de rev artışı)
listemi değiştir (diger) 12,2 sn - ~19 sn
listemi yeniden düzenlemek istiyorum (form) 1,9 sn - -
form cevabı 2,0 sn - ~25 sn
not ekle (diger) 2,8 sn - ~9 sn

15 sn'den uzun niyet bekleyen yok; en kötü 14,0 sn. Dağılım iki kümeli: ~1,4-2,8 sn ya da ~12-14 sn. Mühendis raporundaki "OpenInference yavaş" teşhisi tek bir sağlayıcıyı dışlamakla çözülmemiş görünüyor: 12-14 sn'lik kümeye 3 farklı istekte rastlandı (hangi sağlayıcı olduğu logda yok).

Hatalar

B1 (Orta) "listemi değiştir" form açmıyor. Adımlar: paketli hesap, sohbete "listemi değiştir". Beklenen: soru formu. Gerçekleşen: niyet çıkarımı "diger" (12,2 sn) → normal sohbet; model da formu açmadı, "İstanbul da eklenmesini istemiştin" gibi geçmişten (eski form cevabından) bir şey önerdi. Aynı anlama gelen "listemi yeniden düzenlemek istiyorum" formu açtı (niyet revizyon, form (eksik: istek), 1,9 sn). Kanıt: sunucu logu [soru] revizyon niyeti: "diger" "" "12219 ms". Şüpheli: src/lib/ai/revizyon-niyeti.ts niyet prompt'u; kısa/belirsiz istek "diger"e düşüyor. Tek seferde iki mesaj denendi, tekrar sayısı yetersiz; "ara sıra" olabilir. 1 kredi harcandı.

B2 (Yüksek) Paketsiz hesapta revizyon isteği yanlış yönleniyor ve sahte vaat veriyor. Adımlar: paketsiz hesap (5 kredi deneme, listesi var), "ilk 5 Ankara olsun". Beklenen: paket uyarısı, liste aynı. Gerçekleşen: liste aynı, kredi -1, ama niyet çağrısı yok (araç: soru_sor), model "Listenin revizyonu için netleştirmemiz gereken birkaç şey var" deyip 2 sorulu form açtı ("cevaplayınca listeni hemen güncelleyeceğim"). Formu cevaplayınca (bedelsiz, API ile gönderdim, anketId b11ead8e…, {adet:5,dilim:hayal}) model "Listen yeniden kurulacak, birazdan güncel halini göreceksin" dedi; liste değişmedi, hiçbir revizyon çağrısı olmadı. Kanıt: reports.revision_count 0 kaldı, p3.txt liste aynı. Şüpheli: src/app/api/soru/route.ts paketsiz dalı niyet çıkarımını atlıyor ama soru_sor aracı modele açık kalıyor; danisman-prompt.ts:81 "paket YOK, /paket'e yönlendir" talimatını model dinlemedi. Kullanıcı açısından: ödemeye değil boş bir forma yönleniyor. Öneri (yazılımcıya): paketsizde soru_sor'u kapat ya da regex tetiklenince koddan sabit paket uyarısı ver (koda bağlı ilkeyle aynı).

B3 (Orta) Niyet çağrısı bimodal gecikme. Bkz. gecikme tablosu; 3/8 çağrı 12-14 sn. Bu sürede ekranda yalnızca bekleme göstergesi var, "Listeni yeniden kuruyorum" hapı ancak niyet bitince gelir. Öneri: OPENROUTER_NIYET_MODEL için ayrı ölçüm ya da niyet çağrısında sağlayıcı sıralaması/zaman aşımı (mevcut 20 sn).

B4 (Düşük, gözlem) Kesilen istek kredisi. Dev sunucusu istek sırasında öldüğünde (aşağıdaki ortam notu) "vakıfları çıkar" mesajı kaydedilmiş, cevap yazılmamış, kredi düşmüştü; tekrar gönderince ikinci kez düştü (kullanıcı 2 kredi ödedi). Bu ortam kaynaklı ama sunucu çökmesinde iade yok demektir.

B5 (Düşük) Hidrasyon uyarısı. Dev konsolunda A tree hydrated but some attributes of the server rendered HTML didn't match (her /listem açılışında 2-4 kez) ve motion 'lab(...)' is not an animatable color uyarısı. Bu dalın işi mi bilinmiyor, kaynağı araştırılmadı.

Test ortamı notları (ürün hatası değil)

  • Dev sunucusu iki kez benim dışımda öldü (kod 143; next dev aynı dizinde ikinci sunucuyu kabul etmiyor, başka bir oturum 3000'de sunucu açtı, sonra o da kapandı). 3100'de kendi sunucumu yeniden açtım ve işim bitince kapattım. Port 3000'deki sunucuya dokunmadım.
  • İlk denemede sayfanın tekrar tekrar yenilenmesi benim fetch sarmalayıcımın hatasıydı (RSC isteğini bozuyordu), düzelttim. Sarmalayıcı olmadan da revizyon sonrası belge yeniden yükleniyor ("navigate type: reload"); nedeni bulunamadı. Şüphe: dev'de data/app.db proje klasöründe olduğu için dosya izleyicisi tetikleniyor olabilir. Üretimde beklenmez; doğrulanmadı.
  • Giriş: qa-gb1791491465@maxxspace.com mail.tm şifresi Qa-<ts>! desenindeydi; magic link'i mail.tm'den aldım, 3000 adresini 3100'e çevirdim. Paketsiz hesaba geçmek için uygulamanın kendi Dev panelindeki "Anında gir" (yalnız lokal) ile qa-6eki-b@example.com hesabına geçtim; bu, tarayıcıdaki localhost oturum çerezini değiştirdi (Bilal'in v1 oturumunu etkilemiş olabilir).
  • Kodla gelen listeSenkronla({items: []}) çağrısı /listem ilk açılışında görüldü; saved_lists kaydı []. Önceden dolu muydu bilinmiyor, kontrol edilmedi.

Test edilemeyenler

  • Son hâlin gerçek modelle toplu eval'i (QA kapsamı dışı).
  • 375 px görünüm ve form UI'ının dar ekran davranışı: pencere 800 px idi; formun "Cevapları gönder" düğmesi yatay kaydırma içinde ekran dışında kaldı (x=874) ve tıklanamadı, bu yüzden form cevabını API ile gönderdim (paketsiz). Bu görünüm sorunu olabilir ya da pencere darlığı; ayrıca bakılmalı.
  • Zaman aşımı yolu (niyet 20 sn'yi aşarsa "okuyamadım" + iade): tetiklenmedi.

Hesaplar ve veri (silme için)

  • qa-gb1791491465@maxxspace.com (paketli; kredi 33→25, rapor rev 3→8, liste şu an 24 devlet+vakıf karışık, 4/12/8)
  • qa-6eki-b@example.com (paketsiz; kredi 2→1, liste aynı)
  • Yeni hesap açılmadı. Kredi harcayan çağrılar: yukarıdaki 8 + 1 sohbet mesajı.

Bilal'in elle yapacakları

  1. B2'yi yazılımcıya ver (paketsiz revizyon yönlendirmesi): 10 dk.
  2. B3 için niyet çağrısı sağlayıcı/model kararı.
  3. Formu 375 px'te elle dene ("Cevapları gönder" görünüyor mu).

Yeni hile

  • Dev sunucusu başka oturumla çakışıp ölürse: preview_start dev-3100 yeniden aç; fetch sarmalayıcıda i.url yerine i.href||i.url||String(i) kullan (URL nesnesi RSC'yi bozar).
  • Paketsiz/paketli geçişi için Dev panelinin "Anında gir" alanına var olan hesabın e-postasını yaz (magic link atlanır).
  • Anket cevabını UI olmadan göndermek: POST /api/soru {clientMessageId, anketCevabi:{anketId, cevaplar}} (anketId chat_messages.meta'dan).