hikmettan
d6040379c2
add API response security headers
2026-09-06 17:53:33 +03:00
hikmettan
4c9354362a
validate Stripe period end timestamps
2026-09-06 17:51:05 +03:00
hikmettan
4edbdc94e5
protect email configuration endpoint
2026-09-06 17:50:18 +03:00
hikmettan
d7c1680f0a
enforce request limits in UTF8 bytes
2026-09-06 17:46:25 +03:00
hikmettan
fbe74b0919
fix subscription cancellation body parsing
2026-09-06 17:45:38 +03:00
hikmettan
b737795eef
validate email test payloads
2026-09-06 17:43:49 +03:00
hikmettan
ac5fda9050
return validation errors for notification reads
2026-09-06 17:43:01 +03:00
hikmettan
3e73849480
harden raw request body parsing
2026-09-06 17:29:29 +03:00
hikmettan
47286fe847
stop oversized request body parsing
2026-09-06 17:28:51 +03:00
hikmettan
120657758c
fix: reject unconfirmed Telegram tests and invalid update responses
2026-09-06 14:55:05 +03:00
hikmettan
37fb7b0366
fix: clear consumed Telegram challenges after link changes
2026-09-06 14:53:35 +03:00
hikmettan
283bfe5990
fix: bind Telegram pairing to expiring single-use account challenges
2026-09-06 14:50:11 +03:00
hikmettan
7a01e4bed7
feat: review uncertain weekly brief deliveries with audit history
2026-09-06 14:37:32 +03:00
hikmettan
23512b7a87
fix: respect brief opt-out and report channel delivery failures
2026-09-06 14:28:10 +03:00
hikmettan
b2a416c908
fix: persist weekly brief preference and expose request failures
2026-09-06 14:20:31 +03:00
hikmettan
e711da9567
fix: distinguish email service errors and validate send receipts
2026-09-06 14:16:08 +03:00
hikmettan
a25dcb7a5d
fix: persist notification preferences and clarify delivery controls
2026-09-06 14:14:46 +03:00
hikmettan
83df706631
fix: persist competitor tracking and remove unsupported metrics and alerts
2026-09-06 14:12:43 +03:00
hikmettan
463fd06d30
fix: confirm and version favorite institution updates
2026-09-06 14:09:31 +03:00
hikmettan
3d9aa79624
fix: persist team changes only after versioned server confirmation
2026-09-06 14:01:28 +03:00
hikmettan
9d3acac59d
fix: reject stale company profile and filter updates
2026-09-06 13:58:25 +03:00
hikmettan
22e886936e
Add audited administrator resolution of uncertain email deliveries
2026-09-06 13:06:17 +03:00
hikmettan
0a0c01baf1
Preserve subscriptions on request failure and isolate account state
2026-09-06 12:55:05 +03:00
hikmettan
458f638b81
Require explicit persisted acknowledgement of notifications
2026-09-06 12:52:14 +03:00
hikmettan
bfef768974
Persist general specification analysis and expose saved results
2026-09-06 12:44:37 +03:00
hikmettan
ca0ed73242
Pin durable AI source text and requirements across retries
2026-09-06 12:42:16 +03:00
hikmettan
f830625b60
Persist offer assistant jobs and recover results across closed views
2026-09-06 12:35:30 +03:00
hikmettan
68fe84e9c7
Persist observed tender source revisions and expose paginated history
2026-09-06 10:49:30 +03:00
hikmettan
1a62a876e6
Enforce API key quota within the database transaction
2026-09-06 10:40:45 +03:00
hikmettan
372c0e76e0
Fix API key error states and verify revocation lifecycle
2026-09-06 10:37:14 +03:00
hikmettan
0c16bbd96f
Surface shared inventory failures and isolate test database storage
2026-09-06 10:30:51 +03:00
hikmettan
d534ea20b9
Cancel disconnected offer analysis and stop remaining provider calls
2026-09-06 10:22:29 +03:00
hikmettan
0fd46c4867
Verify provider failure preserves drafts and improve user feedback
2026-09-06 10:14:29 +03:00
hikmettan
132bd815c6
Populate search detail summaries from EKAP announcement tables
2026-09-06 10:06:23 +03:00
hikmettan
ad7f8746a0
Verify current document review before bid outputs
2026-09-06 09:50:16 +03:00
hikmettan
742e05933e
Analyze server-resolved document reviews with revision checks
2026-09-06 09:49:30 +03:00
hikmettan
559a2feeda
Persist versioned document text reviews against source file hashes
2026-09-06 09:47:12 +03:00
hikmettan
f073438922
Carry OCR and missing-source warnings into analysis readiness
2026-09-06 09:45:33 +03:00
hikmettan
ba1f93bd76
Persist client document read failures with stale-state protection
2026-09-06 09:36:47 +03:00
hikmettan
32ea749669
Persist document processing outcomes separately from upload success
2026-09-06 09:34:52 +03:00
hikmettan
ece623d86c
fix: separate private company documents from shared tender item imports
2026-09-06 09:30:37 +03:00
hikmettan
37b10ce09a
fix: clean failed document uploads and surface filesystem errors
2026-09-06 09:15:34 +03:00
hikmettan
43dc4feb31
fix: validate document uploads and allow clearing expiry dates
2026-09-06 09:14:43 +03:00
hikmettan
144724484c
fix: align server deadlines and follow consumers with preparation state
2026-09-06 09:09:10 +03:00
hikmettan
456728b4bd
fix: preserve bid drafts and align tender source data
2026-09-06 08:40:10 +03:00
hikmettan
c91631d99f
fix: persist tender preparation and correct calendar export
2026-09-06 08:30:32 +03:00
hikmettan and Claude Fable 5.1
2271883be4
fix: EKAP dokümanları açılmıyor — yeni sekme tıklama anında açılıyor, boşluklu İKN'ler düzeltildi
...
İki ayrı neden vardı:
1) window.open sunucu yanıtından SONRA çağrılıyordu; Safari, PWA ve sıkı ayarlı
Chrome bunu açılır-pencere sayıp sessizce engelliyordu — düğme "çalışmıyor"
görünüyordu. Sekme artık tıklamanın hemen içinde boş açılır, adres gelince
yönlendirilir. Engellenirse gerçek bir bağlantı (a href) gösterilir; bağlantı
tıklaması hiçbir tarayıcıda engellenmez.
2) ilan.gov.tr bazı kayıtlarda İKN'yi başta/sonda boşluk ve kesme boşluğu (nbsp)
ile veriyor (" 2026/1622878"). Bu 50 kayıtta panel "EKAP formatında değil"
deyip düğmeyi hiç göstermiyordu. İKN artık alınırken boşluksuz saklanıyor;
panel ve doküman araması da savunma amaçlı temizliyor.
Ayrıca: "EKAP'ta 0 doküman kayıtlı" yanıltıcı metni kaldırıldı (EKAP arama
kaydı sayıyı vermiyor), EKAP'ın önce güvenlik doğrulaması istediği açıklandı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-05 23:53:43 +03:00
hikmettan and Claude Fable 5.1
c32446db81
AB İhaleleri (TED): başlık ve açıklamalar Türkçe
...
- server/ted-ceviri.mjs: TED'in kendi Türkçe alanı varsa onu kullanır; yoksa
OpenRouter ile toplu çevirir (deepseek-v4-flash → gemini 3.7 flash → glm),
sonucu server/data/ted.sqlite'ta ilan numarasına göre saklar
- İstek en fazla 12 sn bekler, kalan çeviriler arka planda sürer;
yanıt ceviriBekleniyor bayrağı taşır, ön yüz sessizce yeniden çeker
- Kartta Türkçe başlık + küçük özgün başlık, Türkçe açıklama (3 satır),
ülke kodları Türkçe ad (TUR → Türkiye, AUT → Avusturya…)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-05 15:58:28 +03:00
hikmettan and Claude Fable 5.1
48f0c48732
feat: İhaleAB'den taşınan özellikler — MCP sunucusu, RSS, haftalık brief, teklif asistanı, yeterlilik rozeti, 5 yeni kırmızı bayrak
...
- /mcp (JSON-RPC, ih_live_ anahtarı): search_tenders, get_tender, search_results, search_items, upcoming_deadlines
- /api/feeds/tenders.rss (anahtarlı) ve /api/feeds/sonuc.rss (açık)
- Haftalık brief (Pazartesi 08:00, Telegram + e-posta), /api/me/brief tercihi + önizleme, sağ panelde yaklaşan ihale tarihleri
- Detayda Teklif Asistanı sekmesi: belgeye sor (atıflı), taslak denetimi, taslak üretimi (analyzeSpec zinciri)
- Derin analiz belge listesi × Doküman Deposu eşleştirme rozeti
- Kırmızı bayrak: kısa süre, hafta sonu tarih, geç sözleşme, kazananı gizli, DT parçalama şüphesi
- Kullanım kılavuzu güncellendi
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-04 02:23:41 +03:00
hikmettan and Claude Fable 5.1
df89eaac33
feat: takip izleme (zeyilname + sonuc bildirimi), hazirlik gorevi, belge sure uyarisi, Telegram, OCR, yasakli sorgu
...
28 depo taramasindan alinan alti ozellik. Kod kopyalanmadi (depolar
lisanssiz), fikirler uygulandi.
1) Zeyilname / duzeltme ilani takibi (server/zeyilname.mjs): takipteki
IKN'ler sunucuya yazilir; 3 saatte bir EKAP detayindan ilan sayisi ve
ihale tarihi karsilastirilir, degisince "ne degisti" bildirimi (uygulama
ici + e-posta + Telegram). Test: anlik kaydi eskitilince tur "yeni ilan
yayimlandi; ihale tarihi 01.01.2026 → 08.10.2026" bildirimi uretti.
2) Sonuc bildirimi: takipteki ihale sonuclaninca "X firmasi Y'ye aldi, %Z
kirim". Yalniz takiptekiler; kismi ihalede oran yazilmaz.
3) Ihaleden goreve (MOBIT-DURT): detayda "Hazirlik Gorevi Ac" → teslim
tarihi ihale saati, pano "Teklif Hazirlaniyor", derin analizden gelen
belge kontrol listesi gorevde; Kanban kartinda geri sayim rozeti.
4) Sirket belgesi sure takibi: Belge Kasasi'nda son kullanma tarihi girisi,
dolmus / 30 gun icinde dolacak uyarisi; girise gunde bir bildirim.
PATCH /api/me/documents/meta.
5) Telegram (server/telegram.mjs): TELEGRAM_BOT_TOKEN sunucuda; kullanici
6 haneli kodu bota yazar, "Dogrula" → getUpdates ile chat id baglanir.
Arayuzde adim adim kurulum rehberi (BotFather → env → Redeploy → kod).
Ihale ozeti, zeyilname ve sonuc bildirimleri Telegram'a da gider.
6) OCR (tesseract.js, tur): PDF metin katmani bossa (taranmis) ilk 8 sayfa
OCR. Olcum: sentetik cetvelde guven 87, ~0,3 sn/sayfa; IKN ve kalemler
dogru okundu. Kalem havuzu ve derin analiz artik taranmis PDF'ten de
besleniyor.
7) Rakip Radari'nda KIK yasakli sorgusu baglantisi (firma adi panoya
kopyalanir; EKAP sorguyu API'den vermiyor).
Sinir deger hesaplayici KURULMADI: Kamu Ihale Genel Tebligi'ne ulasilamadi
(mevzuat.gov.tr / ihale.gov.tr bu makineden erisilemiyor); formul kaynaksiz
yazilmadi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-03 22:58:13 +03:00