- 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.
Oturum oluşturulduğunda (databaseHooks.session.create.after) Rybbit'e
sunucudan giris_basarili düşer; yontem = eposta | google | diger
(better-auth uç yolundan türetilir). Huninin "link istendi → giriş yapıldı"
adımı bugüne dek ölçülemiyordu.
- await yok: Rybbit'in 3 sn'lik timeout'u girişi geciktirmez; sunucuOlayi
hata fırlatmaz. E-posta adresi olaya girmez, yalnızca kullanıcı ID.
- RYBBIT_HOST/SITE_ID/API_KEY yoksa no-op — prod .env.production'da bu
üçü bugün yok (bkz. ayrı ci.yaml commit'i), eklenene dek olay düşmez.
Giriş akışının davranışını değiştirmez (yalnızca yan etki ekler).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Aynı e-posta adresine 60 sn içinde ikinci giriş linki gönderilmez: istek
yine 200 döner (form "gönderildi" gösterir), mail çıkmaz. Üçüncü kişiye
mail bombardımanını ve Resend kotasının yakılmasını engeller; bugüne dek
tek sınır better-auth'un IP limitiydi (5 istek/60 sn).
- Kaynak süreç içi Map (globalThis.__girisEpostaSon), anahtar
trim+lowercase adres. verification tablosundan türetilmez: orada
identifier token'dır ve satır sendMagicLink'ten önce yazılır.
- Pencere kaymaz (düşen istek süreyi uzatmaz); her çağrıda eski kayıtlar
budanır. Gönderim hata verirse kayıt silinir, kullanıcı hemen yeniden
deneyebilir.
- Yalnızca NODE_ENV=production: dev paneli "anında giriş" art arda istek
atıyor. Konsol modunda da işler (lokal docker testi).
Canlı giriş yolunu değiştirir; merge öncesi lokal docker testi şart.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Resend gönderimine replyTo eklendi (EMAIL_REPLY_TO, yoksa
destek@kolaytercih.com) — mail.kolaytercih.com'un MX'i olmadığı için
yanıtlar bounce oluyordu.
- epostaKonsolModu(): konsola yazma yalnızca anahtar yokken VE (dev'de ya
da EPOSTA_KONSOL_FALLBACK=1 ile) geçerli. Production'da anahtar yoksa
artık "gönderildi" dönmüyor, token'lı link loga yazılmıyor; gönderim
anında net hata fırlatılıyor (better-auth 500 → formda hata toast'ı).
- Production'da EMAIL_FROM yoksa sessizce onboarding@resend.dev'e düşmek
yerine hata. Env okumaları çağrı anında — next build etkilenmez.
Canlı giriş yolunu değiştirir; merge öncesi lokal docker testi şart.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Updated Dockerfile to create a cache directory for Next.js runtime, ensuring proper permissions and ownership.
- Enhanced the authentication flow by updating the magic link expiration time from 5 to 15 minutes, improving user experience and reducing login issues.
- Added user-friendly error handling for invalid or expired magic links, providing clear feedback on the login page.
- Adjusted email templates to reflect the new 15-minute validity period for magic links.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Added new scripts for database operations and temporary production in package.json.
- Integrated KaydetBannerLazy component into the layout for improved user notifications.
- Enhanced API error handling in the soru route to mark credit exhaustion.
- Updated the IletisimPage for better button styling and user experience.
- Refactored ListemPage to streamline user flow and improve session handling.
- Removed unused ListePaneli component to clean up the codebase.
- Updated app.db to reflect recent changes.
- Added a Suspense-wrapped SosyalKanitBandi component in the Home page for improved user engagement.
- Refactored the sendMagicLinkEmail function in auth.ts to handle errors more effectively, ensuring users receive appropriate feedback on email sending issues.
- Removed the Rybbit live visitor widget from the site footer for a cleaner design.
- Added Rybbit analytics configuration in .mcp.json for improved data collection.
- Updated layout.tsx to conditionally load the Rybbit analytics script in production.
- Enhanced user interaction tracking in various components, including GirisForm, RevizyonKutusu, and SatinAlForm, by logging specific events.
- Updated privacy policy page to reflect new data handling practices and added a section on service providers and data transfer.
- Improved user navigation and experience by integrating Rybbit's live visitor widget in the site footer.
Kritik (K1-K6) sonrası kalan tüm maddeler:
- Değer önce: girişsiz kullanıcı sihirbaz bitince /giris yerine /sonuc'taki
ücretsiz tabloya gider (?hazir=1); AI CTA'sı "5 deneme kredinle listeni
kur — giriş yap" paneli + sabit alt karttan verilir, girişte otomatik üretim
- Ö1-Ö10: paywall kopyası, aranabilir il seçimi, "Seçtiklerim" adlandırması,
gizlilik/koşullar/iletişim sayfaları, danışman özeti + uyarılar, revizyon
kutusu, dilim özeti + tek şehir uyarısı, eksik veri rozetleri, magic link
yeniden gönder, mobil sohbet kısayolu
- G1-G5: binlik ayraçlı input + inline hata, adım göstergesi, route-level
loading/error/not-found, dürüst konumlandırma kartı, dürüst buton etiketleri
- Seçtiklerim butonu liste boşken gizli; ilk eklemede belirir
- Dev süperadmin paneli (yalnızca development): hızlı giriş, kredi/paket/rapor
senaryoları, sahte ödeme dönüşü
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- better-auth ile giriş/oturum yönetimi (src/lib/auth, giris sayfası)
- iyzico ödeme entegrasyonu ve paket satın alma akışı
- kredi sistemi ve uygulama veritabanı şeması (drizzle)
- AI destekli rapor üretimi ve tercih sihirbazı
- rapor yazdırma sayfası ve site header/kullanıcı menüsü
Co-authored-by: Cursor <cursoragent@cursor.com>