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>
This commit is contained in:
87
docs/ekip-raporlari/2026-10-09/qa-revizyon-koda-bagli.md
Normal file
87
docs/ekip-raporlari/2026-10-09/qa-revizyon-koda-bagli.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user