Commit Graph
172 Commits
Author SHA1 Message Date
hikmettan e5e1b12185 fix: guide EKAP human verification 2026-09-15 17:41:51 +03:00
hikmettan 4d191a07b1 feat: expose verifiable deployment release 2026-09-15 15:17:24 +03:00
hikmettanandClaude Fable 5.1 9b3809e21b fix(ted-ceviri): GLM harf bozulmasını onar, TED çevirisinde önce GLM 5.3
Quality gates / test-build (push) Canceled after 0s
Quality gates / container (push) Canceled after 0s
Canlı ölçüm (2026-09-11): glm-5.3-flash 22 başlığın 4'ünde kelime içi
büyük İ ve büyük harfe dönen kuyruk üretti ("Arazİ araçları",
"Elektrİklİ", "temİNİ"); açıklamalar temizdi.

- harfOnar: kelime küçük harfle devam ettikten sonra gelen büyükleri Türkçe
  kuralıyla küçültür; tamamı büyük kısaltmalara dokunmaz. Model çıktısına
  ve daha önce önbelleğe girmiş kayıtlara okunurken uygulanır.
- Çeviri prompt'una Türkçe yazım kuralı uyarısı eklendi.
- ZAI_TRANSLATE_MODELS varsayılanı glm-5.3 → glm-5.3-flash (paketler 6
  ilanlık, hız kaybı küçük; başlıklar kullanıcıya doğrudan görünüyor).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 00:26:33 +03:00
hikmettanandClaude Fable 5.1 7fa71f1a4e feat(ai): Z.ai GLM birincil sağlayıcı; OpenRouter yalnız yedek
Quality gates / test-build (push) Canceled after 0s
Quality gates / container (push) Canceled after 0s
OpenRouter anahtarı iptal olup bakiye eksiye düşünce şartname analizi,
TED çevirisi ve site taraması durmuştu. Artık ZAI_API_KEY ile GLM 5.3 ve
GLM 5.3 Flash doğrudan Z.ai Coding Plan üzerinden çağrılır; kalan modeller
OpenRouter anahtarı varsa yedek olarak denenir.

- server/zai.mjs: doğrudan istemci; glm-5.x için reasoning_effort:low,
  glm-4.x için thinking kapalı; süreç genelinde en fazla 2 eşzamanlı istek
  (kullanıcı istekleri arka plan çevirisinden öncelikli); geçici 429'da
  aynı modelle yeniden deneme, 1113 bakiye hatasında hemen sıradaki model.
- ai.mjs: 'zai' (GLM 5.3) sağlayıcısı eklendi, Z.ai yolu yeni istemciyi
  kullanıyor; varsayılan sıra zai → glmflash → gemini → …
- ted-ceviri.mjs: önce ZAI_TRANSLATE_MODELS (glm-5.3-flash, glm-5.3),
  sonra OpenRouter; 2'li eşzamanlı parça işleme.
- Admin model kataloğuna GLM 5.3 eklendi, kayıtlı zincirler sürüm 4'e taşınır.
- tests/zai.test.mjs: düşünme ayarı, 429/1113 davranışı, eşzamanlılık,
  analyzeSpec ve TED çevirisinin Z.ai'ye gittiği.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 23:11:41 +03:00
hikmettan 4eb90615e8 yenilemede ihale detay onbelleğini tazele
Quality gates / test-build (push) Canceled after 0s
Quality gates / container (push) Canceled after 0s
2026-09-06 21:23:45 +03:00
hikmettan cdf6e988e4 refresh EKAP document counts from detail 2026-09-06 19:46:56 +03:00
hikmettan 9fd1db3c8a prefer official EKAP detail deadline 2026-09-06 19:44:29 +03:00
hikmettan 74e784e2f7 use canonical province map for direct tenders 2026-09-06 19:36:00 +03:00
hikmettan 285dd6fb9f support tender deadline label variants 2026-09-06 19:27:23 +03:00
hikmettan bd5c122522 normalize tender result status in dedupe 2026-09-06 19:25:08 +03:00
hikmettan 171392585c classify document source outages 2026-09-06 18:55:43 +03:00
hikmettan 11685867e2 add persistent readiness health check 2026-09-06 18:37:11 +03:00
hikmettan 404bfc4972 restrict browser permissions on API responses 2026-09-06 18:25:05 +03:00
hikmettan bdde4534f6 vary CORS responses by origin 2026-09-06 18:18:19 +03:00
hikmettan 089f5c36f0 allow configuring CORS origins 2026-09-06 18:16:27 +03:00
hikmettan 6e78485228 skip malformed tender rows during deduplication 2026-09-06 18:09:06 +03:00
hikmettan 6b3b446e49 normalize health portfolio identifiers 2026-09-06 18:07:55 +03:00
hikmettan 231c372411 validate health portfolio profile writes 2026-09-06 18:07:10 +03:00
hikmettan 64919270d8 validate Telegram bot token in production 2026-09-06 18:03:39 +03:00
hikmettan 348e32377c validate email delivery inputs 2026-09-06 18:01:13 +03:00
hikmettan 1d6bb71478 support CORS preflight requests 2026-09-06 17:59:28 +03:00
hikmettan f1b283b3d9 verify Stripe cancellation was scheduled 2026-09-06 17:58:14 +03:00
hikmettan a5cfc93424 default unknown Stripe plans to free 2026-09-06 17:56:48 +03:00
hikmettan 8f62f2f0cf restrict Stripe webhook plan ids 2026-09-06 17:56:07 +03:00
hikmettan 182f6dc05c harden Stripe checkout webhook fields 2026-09-06 17:55:24 +03:00
hikmettan d6040379c2 add API response security headers 2026-09-06 17:53:33 +03:00
hikmettan 2cac68e6ba require expiration on auth tokens 2026-09-06 17:52:34 +03:00
hikmettan efe10a9fc4 require boolean Stripe cancellation state 2026-09-06 17:51:46 +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 5bffc66fc6 validate Stripe cancellation timestamp 2026-09-06 17:49:09 +03:00
hikmettan fc45d8e934 validate Stripe cancellation responses 2026-09-06 17:48:13 +03:00
hikmettan cd06cafddf validate Stripe checkout responses 2026-09-06 17:47:26 +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 84ce2b8155 validate Stripe webhook event shape 2026-09-06 17:44:43 +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 9cd3476670 validate brief manifests before enqueue 2026-09-06 17:40:53 +03:00
hikmettan 846431ca17 surface malformed seen tender history 2026-09-06 17:40:12 +03:00
hikmettan 78d6cb7de2 validate completed AI results 2026-09-06 17:39:25 +03:00
hikmettan c6dfd26387 validate weekly brief message fields 2026-09-06 17:38:43 +03:00
hikmettan b9a71a83dc validate weekly brief manifests 2026-09-06 17:38:04 +03:00
hikmettan 9e90d04ef5 validate persisted AI job JSON 2026-09-06 17:37:16 +03:00
hikmettan d02b6f0f3c validate Google identity claims 2026-09-06 17:36:19 +03:00
hikmettan 887cd5872f separate public client id from auth secret 2026-09-06 17:35:40 +03:00
hikmettan ed1f061019 validate legacy notification filters 2026-09-06 17:34:57 +03:00
hikmettan d9b6e11582 fail closed on missing auth secret 2026-09-06 17:34:13 +03:00
hikmettan 410bd2de1f require auth secret in production 2026-09-06 17:33:35 +03:00
hikmettan 7bda9cf3f6 surface malformed subscription filters 2026-09-06 17:32:37 +03:00