bilalgursen
|
668568b5b5
|
perf: istemci istek cache'i (dedup+TTL) ve profil cache (Faz 5)
- lib/istek-cache: modül seviyesi in-flight dedup + 5dk TTL cache (SWR
bağımlılığı olmadan); caller iptali paylaşılan fetch'i düşürmez
- /api/facetler'in 5 çağrı yeri (hero, cta, kapı, sihirbaz adımları, demo)
ve /api/katalog-ara cache'e bağlandı — sihirbazda 2↔3 adım geçişi ve
tekrarlanan aramalar artık ağa çıkmıyor; /api/soru GET dedup-only (ttl 0)
- katalog-arama: elle yukleniyor state'i kalktı, "cevaplanmamış sorgu"
türetmesi + startTransition; rehber puanlaması Schwartzian; ⌘K listener'ı
useEffectEvent ile tek sefer bağlanıyor
- sihirbaz-adimlar: il sort/filter useMemo (çip başına 81 eleman kopyalanıp
sıralanıyordu, harita dizisi referansı sabitlendi)
- sohbet-client: stream chunk güncellemeleri startTransition'da — cevap
akarken input yazımı bloklanmıyor
- sihirbaz-profil: modül cache + event/storage geçersizlemesi (tek "+"
tıklamasında 3 localStorage okuma + JSON.parse vardı)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-08 14:11:05 +03:00 |
|
bilalgursen
|
90ac590737
|
perf: sohbet markdown lazy + marked client'tan çıktı, mermaid görünürlükte (Faz 4)
- markdown.tsx: blok bölme marked.lexer yerine çit-farkındalıklı boş satır
bölücüsü — react-markdown'ın yanında ikinci tam parser (~460 KB paket)
client'a inmiyordu artık gerekmiyor; memoized blok yapısı aynen korunur
- markdown-lazy: react-markdown+remark zinciri (~215 KB) lazy; fallback
aynı class'lı düz metin (stream'de flash/CLS yok), sohbet mount'unda
preloadMarkdown ile chunk önden ısınır — /listem 1315->1133 KB eager JS
- el-cizimi-sema: mermaid importu IntersectionObserver'a bağlandı
(rootMargin 200px); şemalar hep fold altında, ~1 MB mount'ta inmiyor
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-08 14:01:48 +03:00 |
|
bilalgursen
|
fbd184e2be
|
refactor: rapor feature'ı — listem, yazdır, sohbet ve actions taşındı (Faz 8)
- app/sonuc/actions.ts → features/rapor/rapor-actions.ts birebir taşındı
(kredi harcama/iade idempotency yolları bayt bayt aynı, yalnızca import
yolları değişti); liste-uretici/revizyon-kutusu action'ı doğrudan import
ediyor
- lib/rapor-kaydi.ts rapor-queries.ts'e emildi: kullanicininRaporu aynı tek
okuma kapısı; listem sayfasındaki inline drizzle sorgusu sohbetGecmisiGetir
oldu; tadimlikSec re-export'u eklendi
- listem-govde, sohbet-client, revizyon-kutusu, liste-uretici, listem-bos-cta,
rapor-listesi, tadimlik-satiri, yazdir-butonu features/rapor/components/'a
- Yeni async ListemIcerik (verifySession + maskeleme + bosDurum dalı içeride;
çift await searchParams kalktı) ve RaporYazdir (3 redirect + yazdırılabilir
belge); skeleton'lar eski loading.tsx geometrileriyle aynı dosyada
- /listem ve /rapor/yazdir senkron: searchParams.then() + sayfada Suspense;
maxDuration=300 ve metadata sayfada kaldı; iki loading.tsx silindi
- Davranış değişikliği yok; /api/soru el değmedi
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-08 01:39:33 +03:00 |
|