Commit Graph
19 Commits
Author SHA1 Message Date
Mustafa YildizandClaude Sonnet 5 63eba80dac feat: hukuk mahkemeleri sistem referansını dava analiz promptlarına ekle
Dava Özeti, Dava İlerlemesi ve Strateji Analizi promptlarına mahkeme türü
(Asliye Hukuk, Sulh Hukuk, Aile, Asliye Ticaret, İş, Tüketici, İcra Hukuk,
Fikri ve Sınai Haklar, Kadastro), yargılama usulü ve zorunlu arabuluculuk
şartlarını özetleyen bir referans bloğu eklendi. Çelişki Avcısı'na
eklenmedi — o araç ceza usulüne özgü kolluk/savcılık/mahkeme aşamaları
arası ifade çelişkilerine odaklı, hukuk davalarında karşılığı yok.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 22:54:56 +03:00
Mustafa YildizandClaude Sonnet 5 407306914c chore: kaldırılan scratch.js dosyasını temizle
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 22:41:21 +03:00
Mustafa YildizandClaude Sonnet 5 aab94db1fa fix: kayıt sonrası deneme süresi mesajını 7 güne güncelle
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 22:39:36 +03:00
Mustafa YildizandClaude Sonnet 5 6202aadc8f feat: ceza muhakemesi usul/evrak/hüküm türü referansını dava analiz promptlarına ekle
Dava Özeti, Dava İlerlemesi, Çelişki Avcısı ve Strateji Analizi promptlarına
soruşturma/kovuşturma sırası, evrak türleri ve CMK m.223 hüküm türlerini
özetleyen ortak bir referans bloğu eklendi; AI dosyanın ceza davası olup
olmadığına kendi karar veriyor, rijit bir dava-türü sınıflandırması yok.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 22:38:33 +03:00
Mustafa YildizandClaude Sonnet 5 5fe4b0b8bc feat: WhatsApp AI hattı (n8n + Evolution API) için yeni uç nokta
chat.controller.ts'teki dosya-bağlamı toplama mantığı (belgeler + analiz
özeti + geçmiş mesajlar) buildCaseChatContext() olarak paylaşılan hale
getirildi — mevcut SSE sohbeti (chatMessage) davranış değişmeden bunu
kullanıyor, yeni POST /api/whatsapp/message uç noktası da aynı motoru
tek-seferlik (non-streaming) çağırıyor.

Kimlik doğrulama farklı: bu uç nokta bir Supabase oturumu taşımıyor
(n8n'den gelen anonim WhatsApp mesajı), X-Webhook-Secret ile korunuyor.
Telefon → hesap eşleştirmesi profiles.phone üzerinden, hangi dava
dosyasıyla konuşulduğu whatsapp_sessions'ta tutuluyor (bkz. laawos
sql/20_whatsapp_integration.sql).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 13:08:02 +03:00
Mustafa YildizandClaude Sonnet 5 fed881de49 fix: hardcoded 14 günlük trial fallback'i app_settings.trial_days'e taşı
Profil bulunamadığında otomatik açılan trial süresi Postgres trigger'ıyla
(handle_new_user, 3 gün) tutarsızdı. İkisi de artık aynı app_settings
tablosundan okuyor (bkz. laawos/sql/19_configurable_trial_and_status_gate.sql).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 12:43:01 +03:00
Mustafa Yildiz a5946eeb4a feat: Dava Özeti, Çelişki Avcısı ve Dilekçe Taslağı'na mevzuat entegrasyonu
mevzuat-etl'in doldurduğu Supabase mevzuat/mevzuat_madde tablolarından
(aynı proje) ilgili kanun maddelerini bulup analiz/taslak üretiminden önce
prompt'a ekliyor. Bulma: önce dava metnindeki açık atıfları regex ile yakala
(TCK m.141, 5237 sayılı Kanun'un 141. maddesi gibi, tur-agnostik), boşsa
precedent.controller.ts'deki AI-keyword-sıkıştırma + tam-metin arama
desenine düşer. Hiçbir zaman exception fırlatmaz, mevzuat bulunamazsa analiz
normal devam eder.

Dilekçe Taslağı (generateDraft) farklı ele alınıyor — çıktısı JSON değil düz
metin ve aynen dilekçe belgesi olarak kullanılıyor, bu yüzden referans
bloğu ayrıca işaretlenip sistem promptuna "kopyalama, sadece atıf yap"
talimatı eklendi. generateAngarya (Süre Tutum/Mazeret/Vekaletname) bilerek
dışarıda bırakıldı — hukuki tartışma içermeyen idari dilekçeler.

Tasarım: mevzuat-etl/docs/superpowers/specs/2026-08-17-laawos-mevzuat-entegrasyonu-design.md

Not: drafts.used_legislation (jsonb) sütunu Supabase Studio'dan elle eklendi.
2026-08-17 00:46:26 +03:00
Mustafa Yildiz 66a3960d90 fix: Ollama KEEP_ALIVE=-1 ve AbortError mesaj netliği, callAiModelRaw'a opsiyonel timeoutMs
KEEP_ALIVE '30m' -> -1: GPU'da bolca boş VRAM var, modeli sürekli bellekte
tutmanın maliyeti yok, 30dk sınırı gereksiz soğuk-başlangıç gecikmelerine
sebep oluyordu (bkz. 2026-08-14 log: 44GB boş / 17.5GB kullanılan).
2026-08-17 00:46:10 +03:00
Mustafa Yildiz 2324cb78a6 fix: resolve TypeScript TS18047 profile null type error in auth middleware 2026-08-15 17:04:14 +03:00
Mustafa Yildiz 146ba93a9b fix: auto-bind case user_id and auto-create missing user trial profiles in auth middleware to prevent 403 Forbidden errors 2026-08-15 17:01:30 +03:00
Mustafa Yildiz 6155a72830 fix: resolve false positive deficiency claims (görevsizlik kararı, doktor raporu, tanık beyanı) in case deficiency analysis 2026-08-15 16:58:58 +03:00
Mustafa Yildiz d86d843c61 feat: add CDATA section parser for UDF 1.8 template XML format 2026-08-15 11:08:20 +03:00
Mustafa Yildiz cab55c4fae fix: resolve UDF extraction false positive rejection on real UDF content.xml files 2026-08-15 11:06:41 +03:00
Mustafa Yildiz 389bbe33ef fix: filter out ZIP header metadata strings like content.xml and content.xmlPK from UDF text extractor 2026-08-15 11:03:26 +03:00
Mustafa Yildiz 9229c82806 fix: resolve 400 Bad Request on UDF attachment extraction with iconv-lite Turkish encoding support and fallback guarantee 2026-08-15 10:46:51 +03:00
Mustafa Yildiz 8962a63cf5 fix: upgrade UDF text extraction with multi-offset PK search and binary noise filter 2026-08-15 10:43:54 +03:00
Mustafa Yildiz 977239b0ca fix: improve UDF xml text extraction buffer reading 2026-08-15 10:31:16 +03:00
Mustafa Yildiz ad1f3107de fix: add robust fallback insert strategy for template upload to guarantee 100% upload success for UDF/binary files 2026-08-15 10:25:31 +03:00
Mustafa Yildiz 49841241be fix: add sanitizePostgresText to filter null bytes and malformed Unicode escape sequences before inserting template text into Supabase 2026-08-15 10:20:54 +03:00