Commit Graph
100 Commits
Author SHA1 Message Date
hikmettan c7bb67b101 Correct calendar deadline export and isolate notification storage 2026-09-06 12:50:06 +03:00
hikmettan f2b33749a7 Verify durable AI worker recovery after real process termination 2026-09-06 12:48:29 +03:00
hikmettan fa28fb5f85 Verify analysis recovery in browser and refresh new job status 2026-09-06 12:47:11 +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 801d4fca8d Verify durable AI job result recovery through the browser 2026-09-06 12:37:53 +03:00
hikmettan f830625b60 Persist offer assistant jobs and recover results across closed views 2026-09-06 12:35:30 +03:00
hikmettan 2e16a68565 Scan complete source text for grounded offer audit requirements 2026-09-06 10:56:04 +03:00
hikmettan 9f70e3e77f Bound account requests and reject stale or malformed private responses 2026-09-06 10:54:28 +03:00
hikmettan b44ec646a0 Add verified backup and restore for shared data volumes 2026-09-06 10:52:57 +03:00
hikmettan 8d6f3bc3ea Verify paginated source history in the browser and fix QA route matching 2026-09-06 10:51:13 +03:00
hikmettan 68fe84e9c7 Persist observed tender source revisions and expose paginated history 2026-09-06 10:49:30 +03:00
hikmettan a0f4824c7e Show tender source changes against saved preparation metadata 2026-09-06 10:47:07 +03:00
hikmettan f51f9b4eb0 Verify document deletion recovery across forced process termination 2026-09-06 10:45:45 +03:00
hikmettan 3b40061d96 Make document deletion durable before physical file cleanup 2026-09-06 10:44:47 +03:00
hikmettan fa56e0fe83 Preserve preparation conditions and invalidate outdated source reviews 2026-09-06 10:43:14 +03:00
hikmettan fef6f2ab89 Load tool views on demand with isolated retry states 2026-09-06 10:41:50 +03:00
hikmettan 1a62a876e6 Enforce API key quota within the database transaction 2026-09-06 10:40:45 +03:00
hikmettan 1c0b48655e Preserve complete input in multi-part offer draft generation 2026-09-06 10:39:42 +03:00
hikmettan 4c0289cfba Verify API key recovery and revocation through browser UI 2026-09-06 10:38:36 +03:00
hikmettan 372c0e76e0 Fix API key error states and verify revocation lifecycle 2026-09-06 10:37:14 +03:00
hikmettan 21e80d0dd6 Expose partial item search failures and allow query-scoped retries 2026-09-06 10:31:58 +03:00
hikmettan 0c16bbd96f Surface shared inventory failures and isolate test database storage 2026-09-06 10:30:51 +03:00
hikmettan dbe43c241d Recheck tender deadlines before preparation output delivery 2026-09-06 10:29:17 +03:00
hikmettan cb231426e8 Record browser acceptance for document previews across tender switches 2026-09-06 10:28:00 +03:00
hikmettan 7e1e5fe0a1 Scope tender document workflows to the active account and tender 2026-09-06 10:26:49 +03:00
hikmettan 2164494c32 Cancel vault rereading without persisting a false document error 2026-09-06 10:25:17 +03:00
hikmettan 3ad9348c20 Cancel PDF reading and OCR when the offer assistant closes 2026-09-06 10:24:07 +03:00
hikmettan d534ea20b9 Cancel disconnected offer analysis and stop remaining provider calls 2026-09-06 10:22:29 +03:00
hikmettan 673d6c1bc8 Audit all supplied requirements across complete long drafts 2026-09-06 10:20:37 +03:00
hikmettan c3ec8c8ba8 Honor explicitly supplied sources and disclose draft source changes 2026-09-06 10:18:28 +03:00
hikmettan 2b9e1953e4 Restrict preparation document links to their tender scope 2026-09-06 10:17:14 +03:00
hikmettan 91451b1134 Distinguish shared item inventory from tender rows and load errors 2026-09-06 10:15:53 +03:00
hikmettan 0fd46c4867 Verify provider failure preserves drafts and improve user feedback 2026-09-06 10:14:29 +03:00
hikmettan a1d70b9dcf Validate assistant response contracts and bound AI request waiting 2026-09-06 10:12:53 +03:00
hikmettan 996cc15245 Preserve full draft sections and disclose missing requested content 2026-09-06 10:11:44 +03:00
hikmettan a78aaef7e5 Preserve question source chunks and reject fabricated citations 2026-09-06 10:10:26 +03:00
hikmettan 0b3bb8223f Require real draft evidence for offer audit findings 2026-09-06 10:09:12 +03:00
hikmettan ecc031a822 Bind offer assistant requests and private context to their session 2026-09-06 10:08:03 +03:00
hikmettan 132bd815c6 Populate search detail summaries from EKAP announcement tables 2026-09-06 10:06:23 +03:00
hikmettan a136a74a1b Open and retain tender details discovered outside the main pool 2026-09-06 10:01:34 +03:00
hikmettan 819a10c006 Add modal keyboard navigation and focus restoration to product search 2026-09-06 09:59:23 +03:00
hikmettan 5895f60b28 Make mobile filters a keyboard-accessible modal drawer 2026-09-06 09:56:34 +03:00
hikmettan 3550f1a9bc Fix list and header overflow on mobile and tablet widths 2026-09-06 09:54:48 +03:00
hikmettan af250c0980 Record browser acceptance for persisted and conflicting document reviews 2026-09-06 09:52:32 +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 e49593be46 Add source-comparison form for versioned document text reviews 2026-09-06 09:48:09 +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 49965a2688 Expose document text and OCR page provenance for review 2026-09-06 09:44:06 +03:00
hikmettan b340cf5772 Read complete PDFs and surface per-page OCR failures 2026-09-06 09:42:35 +03:00
hikmettan 01d4acf246 Verify stored PDF retry in browser and clarify upload errors 2026-09-06 09:41:17 +03:00
hikmettan 277c9407a2 Keep vault state and file transfers within their originating session 2026-09-06 09:39:05 +03:00
hikmettan 6dc6fadda8 Share stored document retry flow across tender detail and vault 2026-09-06 09:37:56 +03:00
hikmettan ba1f93bd76 Persist client document read failures with stale-state protection 2026-09-06 09:36:47 +03:00
hikmettan a109c2e548 Allow retrying item extraction from stored tender documents 2026-09-06 09:35:51 +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 5e9f17969c fix: provide visible prepared Excel download link 2026-09-06 09:28:58 +03:00
hikmettan 90fc789a7a test: record integrated search and preparation browser evidence 2026-09-06 09:27:35 +03:00
hikmettan bc71984847 fix: enforce source-backed offer type in bid preparation 2026-09-06 09:25:51 +03:00
hikmettan a751147d45 fix: carry source-backed bid validity into preparation drafts 2026-09-06 09:24:38 +03:00
hikmettan e07be66e7f fix: expose tender detail loading errors and retry 2026-09-06 09:23:13 +03:00
hikmettan a34b758430 fix: normalize Turkish search and isolate query item matches 2026-09-06 09:22:05 +03:00
hikmettan efec6e434d fix: order new tenders by validated publication time 2026-09-06 09:20:45 +03:00
hikmettan f593d5e372 fix: export filtered tender list as real XLSX 2026-09-06 09:19:41 +03:00
hikmettan 9c7055a543 fix: align list expiry and date ordering with tender deadlines 2026-09-06 09:18:41 +03:00
hikmettan a87ee758bc fix: restrict PWA cache and report actual offline capabilities 2026-09-06 09:17:15 +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 0d2cf584e7 fix: require explicit choice for conflicting bid item sources 2026-09-06 09:13:26 +03:00
hikmettan c3264149ea fix: support keyboard navigation in tender details 2026-09-06 09:12:07 +03:00
hikmettan 2aaf56ce8b fix: validate nested analysis fields before merging and preparation 2026-09-06 09:10:18 +03:00
hikmettan 144724484c fix: align server deadlines and follow consumers with preparation state 2026-09-06 09:09:10 +03:00
hikmettan 7ad5fb4f50 fix: preserve newer tender note drafts after delayed saves 2026-09-06 09:07:23 +03:00
hikmettan d4d9d17a9f feat: verify offline user data backup and recovery 2026-09-06 09:04:03 +03:00
hikmettan f88a0c7bfe fix: persist explicit review status and align review counters 2026-09-06 09:02:28 +03:00
hikmettan a9036cf909 feat: verify analysis citations against source text 2026-09-06 09:00:16 +03:00
hikmettan 0ae828163a feat: analyze complete long documents in bounded source parts 2026-09-06 08:58:54 +03:00
hikmettan 90d85060f2 fix: expose incomplete AI analysis and track source versions 2026-09-06 08:57:32 +03:00
hikmettan ca92bebb45 feat: export validated bid sheets as real Excel workbooks 2026-09-06 08:56:12 +03:00
hikmettan 2dfd32aa9c fix: invalidate pending bid output when preparation changes 2026-09-06 08:54:22 +03:00
hikmettan 953d3b5c1e feat: validate preparation against owned document files 2026-09-06 08:53:41 +03:00
hikmettan 0d332afdb1 feat: prepare bids by official lot selection 2026-09-06 08:52:07 +03:00
hikmettan 311344306b fix: preserve Turkish decimal prices and verify preparation persistence 2026-09-06 08:50:18 +03:00
hikmettan b94ab97241 fix: unify tender countdowns and add monthly calendar navigation 2026-09-06 08:47:44 +03:00
hikmettan a291b186df fix: isolate account state and ignore stale session responses 2026-09-06 08:46:05 +03:00
hikmettan 05c7e7ecdc fix: share persisted preparation checks across analysis screens 2026-09-06 08:44:10 +03:00
hikmettan e4b02f5dd3 feat: track document and health product preparation checks 2026-09-06 08:42:59 +03:00
hikmettan 465874ebbb fix: bind bid prices and review to source content 2026-09-06 08:41:14 +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
hikmettanandClaude Fable 5.1 909ebae7c2 fix(pwa): önbellek v2 — yanlış MIME ile saklanan pdf worker temizlenir, bozuk JS yanıtları artık önbelleğe alınmaz
nginx düzeltmesi tek başına yetmezdi: servis çalışanı /assets/ dosyalarını
cache-first sakladığı için kullanıcıların tarayıcısındaki octet-stream'li
worker kopyası redeploy sonrasında da kullanılmaya devam ederdi. Sürüm
yükseltilince eski önbellek silinir; ayrıca .js/.mjs dosyaları yalnızca
JavaScript MIME tipiyle ve 200 ile geldiğinde saklanır.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 01:02:35 +03:00
hikmettanandClaude Fable 5.1 3a0403f07f fix: PDF okuma — nginx .mjs worker dosyasını octet-stream sunuyordu, tarayıcı worker'ı reddediyordu
pdfjs worker'ı Vite tarafından pdf.worker.min-<hash>.mjs olarak üretiliyor.
Debian nginx'in mime.types dosyasında mjs uzantısı olmadığından dosya
application/octet-stream ile geliyor; tarayıcılar modül worker'ını yalnızca
JavaScript MIME tipiyle yüklediği için her PDF yüklemesinde
"Setting up fake worker failed: Failed to fetch dynamically imported module"
hatası çıkıyor, belge analizi tamamlanamıyordu. mjs → application/javascript
eşlemesi eklendi (nginx -t ile doğrulandı).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 01:02:04 +03:00
hikmettanandClaude 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
hikmettanandClaude Fable 5.1 8e9dff6833 TED çevirisi: parçalar 3'lü eşzamanlı — 30 ilanlık liste daha hızlı tamamlanır
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 17:08:46 +03:00
hikmettanandClaude 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
hikmettanandClaude Fable 5.1 eeb1447edc Kalan kişisel varsayılanlar: firma sitesi tarama URL'si ve sonuç kartı kazanan yedeği
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 15:36:37 +03:00
hikmettanandClaude Fable 5.1 782b361d24 feat: Gemini Flash ücretli yedek — analiz zincirinin sonunda her zaman denenir
Panelde seçilen modeller tıkanınca (limit/429) şartname analizi ve teklif asistanı
boş kalıyordu; analyzeSpec zincire yoksa 'gemini'yi sona ekler. Panel ve kılavuz notu.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 13:45:04 +03:00