Eski revizyon kutusu kaldırıldı: serbest metin modele gidiyor, sıra ve havuz
koddan belirlendiği için "ilk 5 X ilinden olsun" gibi isteklerin karşılığı
yoktu. Danışman artık belirsiz isteği soru formuyla (soru_sor → shadcn
Questionnaire, proje diline çevrildi) netleştirir, sonra liste_revize ile
yapısal kural verir: il/alan/tip farkı, "ilk N" ölçütü, çıkar/ekle,
iskelet (lib/revizyon-kurali.ts). Kurallar havuz, seçim ve sırada koddan
uygulanır; "ilk N" ölçütünün ili/alanı süzgece kendiliğinden eklenir.
- chat_messages.meta sütunu (göç 0006): form, form cevabı ve revizyon sonucu
kayıttan geri kurulur; form cevabı kredi harcamaz.
- Akış korumaları: form açılınca başka araç yok, revizyonda zaman aşımı uzar,
"yeniden kurdum" beyanı araçsızsa düzeltme notu.
- /listem "Revize et" sohbeti odaklar; başarılı revizyonda liste yenilenir.
- /dev/sohbet senaryosu, DESIGN.md §4.20 notu ve §4.33.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- SecimHaplari: tema seçici (kapsül) ve puan türü çipleri (hero + CTA formu);
seçili vurgu layoutId ile seçenekten seçeneğe kayar.
- SayiRulo: değişen sayılar (listem rozeti, çekmece ve durum satırı sayacı,
kredi hapları, dilim tablosu sayacı, giriş yeniden gönder sayacı, kaydet
bandı, üst şerit geri sayımı) rulo gibi döner; @number-flow/react kaldırıldı.
- DESIGN.md §4.21–4.22, components.json @uiarc kaydı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Updated the app.db file to reflect recent changes in the application state.
- Modified BACKLOG.md to include new entries regarding the removal of certain wizard steps, adjustments to priority chips, and the introduction of special quota conditions for candidates.
- Added details on the decision to link priority chips to data sources and clarified the implications for user experience and data handling.
Model, oturum ve kredi harcamadan sohbet arayüzünü denemek için yalnız
geliştirmede açılan sayfa (üretimde 404, noindex). Beş hazır senaryo: tek
araç, art arda araçlar, düzeltme notu, akış hatası, uzun geçmiş.
- SohbetClient'a denemeTransport prop'u: verilirse /api/soru yerine
önceden yazılmış akış oynar; üretim yüzeyleri bunu vermez.
- @shadcn/helpers/ai-sdk sahte taşıyıcı için eklendi; dinamik import
NODE_ENV dalında kaldığından üretim paketine girmez.
- cagri.ts: kullanılmayan OpenAI tip import'u kaldırıldı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
main çalışma ağacındaki aynı 6 satırlık değişiklik fast-forward merge'ü
engelliyordu; içerik birebir buraya alındı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sunucu, istemci kopsa da cevabı üretip kaydeder ve kredi harcanmış kalır
(bilerek: kopmada iade, cevabı okuyup bağlantıyı kesene bedava cevap olurdu).
İstemci metni buna göre düzeltildi; görsel değişiklik yok.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Sunucu: elle yazılmış araç döngüsü yerine streamText + UI mesaj akışı
(src/lib/ai/sohbet-akisi.ts). Kredi düşme/iade, bedelsiz profil onayı,
mesaj kaydı ve Jev çıktı denetimi aynı davranışla korunur.
- İstemci: sohbet-client useChat kullanır; araç çalışırken balonun altında
durum satırı görünür. Kayıtlı geçmiş düz metin kalır.
- Sağlayıcı aynı tek kapı (AI_BASE_URL / AI_API_KEY), openai-compatible.
- Yeni araçlar: bolum_ozeti, il_ozeti, rehber_ara, tercih_takvimi.
- Kalkan davranış: sağlayıcı araç çağrısını reddedince düz sohbete düşme.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Bilal kararı (26 Eyl 2026): 'kaydedeyim mi?' sorusuna kısa evet/hayır
cevabı bedelsiz. Sunucu son danışman mesajında onay ibaresini arar,
mesaj ≤40 karakter ve evet/hayır kalıbıyla başlıyorsa kredi düşmez,
ledger'a yazılmaz, iade yolu atlanır; X-Kredi-Dusuldu başlığıyla istemci
bakiyeyi buna göre günceller. Gerçek soru içeren 'evet ama …' bedava geçmez.
- Bilal kararı: model Türkiye'de barındırılacak. client.ts baseURL ve
anahtar AI_BASE_URL/AI_API_KEY'den okunur (OPENROUTER_* geriye uyumlu);
sağlayıcı değişince kod değil .env değişir, /gizlilik aynı commit'te.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- db.ts OzellikSuzgeci (dil, yalnız örgün, yalnız burslu, ücret üst sınırı)
program_ozellik alt sorgusuyla; tablo yoksa süzgeç yok.
- rapor-havuzu: profilSuzgeci (ev ili + km → il listesi; sihirbazda il
seçiliyse km uygulanmaz); havuz 24'ün altına düşerse gevşetme sırası
profil → il → kategori. rapor.ts prompt'a 'danışmana söylediği tercihler'
ve profil gevşetme notu; rapor-actions profili okuyup geçirir.
- /meraklisina şeması (huni-semasi SEMA + aria-label + figcaption) ve 4.
bölüm metni yeni adım ve gevşetme sırasıyla eşitlendi (AGENTS.md kuralı).
- /api/soru: profil kaydı öncesi 'kaydedeyim mi?' onayı (PROFIL_ONAY_SOR).
- Gizlilik metni kodla eşitlendi: OpenRouter→DeepSeek (Anthropic değil),
profil satırı, amaç+hukuki sebep, saklama süreleri, md. 11 hakları,
18 yaş altı notu; unvan/adres ve aktarım dayanağı TODO. Giriş kartı:
koşullar 'kabul', gizlilik 'okudum'. Sohbet girişine kişisel bilgi uyarısı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(a) `sihirbaz_adim{adim:1}` artık sihirbaz modalı açıldığında atılıyor.
Bugüne kadar olay yalnız `adimaGit`in ileri geçişinde atılıyordu; modal
zaten 1. adımda açıldığı için 1. adım hiç "geçilmiyor", dolayısıyla hiç
sayılmıyordu ve huninin paydası `sira_girildi`den türetilmek zorunda
kalıyordu. Mount effect'i + `olayBirKez` ile tam bir kez düşüyor:
1→2→1→2 gezinmesi bileşeni unmount etmediği için tekrar tetiklemiyor,
sessionStorage tekilleştirmesi de aynı sekmede ikinci açılışı sayıyor.
SERİ KIRILMASI: bu değişikliğin canlıya çıktığı tarihten ÖNCEKİ
`sihirbaz_adim` serisinin paydası farklıdır — o dönemde `adim:1` hiç
atılmadı, seri yalnız 2 ve 3'ten oluşuyor. Öncesi ve sonrası
karşılaştırılamaz; huni okumalarında kırılma tarihi dipnot edilmeli.
Aynı desen `program_eklendi` için 21 Eylül'de uygulanmıştı.
(b) Kaynaksız 10 `/paket` linkine tekil `?kaynak=` eklendi; sitedeki 14
`/paket` linkinin 14'ünde artık kaynak var. Değerler mevcut şemayla
(`kilit`, `kredi_bitti`, `nav`) aynı dilde: fiyat_paket, fiyat_kredi,
kosullar, tercih_degisti, tercih_degisti_yetersiz, danisman_rozet,
danisman_kredi_bitti, danisman_kredi_az, odeme_geri, odeme_hata.
`paket-gorunum-olayi.tsx`'teki `KAYNAKLAR` allowlist'i de genişletildi:
listede olmayan her değer `"diger"`e düştüğü için, genişletilmeseydi 10
yeni kaynağın tamamı tek kovada toplanır ve ölçüm deliği kapanmazdı
(bağımlılık kapanışı — dosya şartnamenin listesinde yoktu, raporda
sapma olarak yazıldı).
Görsel değişiklik yok; yeni olay adı ya da yeni ölçüm yüzeyi eklenmedi.
Doğrulama: `next typegen` + `tsc --noEmit` + `lint` temiz.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Replaced the static logo in the SiteHeader with an animated component for enhanced visual feedback. Updated the PaketSatinAl component to include a dynamic link based on user context. Enhanced the ListeUretici and ListemGovde components with improved layout and messaging features, including the addition of a new initial preference comment display in the SohbetClient. Adjusted styling for consistency across components and improved loading states with skeleton screens.
Added a new DELETE endpoint to allow users to clear their chat history. This functionality ensures that while the chat messages are removed, any credits spent remain intact. Additionally, updated the ListemGovde component to reflect changes in user preferences and integrated a modal for notifying users about preference changes. Enhanced the SohbetClient component to include a button for clearing chat history, improving user experience and interface clarity.