From 01d4acf24625083d1610414b55e6e5e18b10b667 Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 09:41:17 +0300 Subject: [PATCH] Verify stored PDF retry in browser and clarify upload errors --- docs/quality/evidence/qa-document-upload.txt | 49 ++++ .../evidence/qa-document-vault-retry.txt | 48 ++++ docs/quality/uygulama-durumu.md | 8 + src/components/tools/DocumentVault.jsx | 2 +- src/services/pdfText.js | 8 +- tests/fixtures/document-broken.pdf | 1 + tests/fixtures/document-readable.pdf | 244 ++++++++++++++++++ 7 files changed, 358 insertions(+), 2 deletions(-) create mode 100644 docs/quality/evidence/qa-document-upload.txt create mode 100644 docs/quality/evidence/qa-document-vault-retry.txt create mode 100644 tests/fixtures/document-broken.pdf create mode 100644 tests/fixtures/document-readable.pdf diff --git a/docs/quality/evidence/qa-document-upload.txt b/docs/quality/evidence/qa-document-upload.txt new file mode 100644 index 0000000..1613234 --- /dev/null +++ b/docs/quality/evidence/qa-document-upload.txt @@ -0,0 +1,49 @@ + [level=4]: + - text: İhale Dokümanları + - paragraph: + - text: İhale dokümanları EKAP üzerinde tutulur. Aşağıdaki bağlantı sizi doğrudan bu ihalenin EKAP doküman sayfasına götürür; EKAP önce kısa bir + - strong: güvenlik doğrulaması + - text: (resim seçme) ister, ardından şartname ve ekleri listelenir. İlan metnini ise analiz için buradan çekebilirsiniz. + - button "EKAP Dokümanlarını Aç": + - text: EKAP Dokümanlarını Aç + - button "İlan Metnini AI ile Analiz Et": + - text: İlan Metnini AI ile Analiz Et + - paragraph: + - strong: document-broken.pdf + - text: yüklendi ve bu ihaleye bağlandı. + - alert: "Kalem aktarımı tamamlanamadı: Invalid PDF structure.. Dosya kaydı korunmuştur." + - text: Bu dosyadan teklif cetveli kalemi çıkarılamadı. + - paragraph: + - text: EKAP dokümanı kendi oturumunuz üzerinden + - strong: bilgisayarınıza iner + - text: — biz sunucudan alamıyoruz. İnen dosyayı buraya yükleyin; bu ihaleye bağlanır ve AI ile analiz edebilirsiniz. + - button "İndirdiğim dosyayı yükle": + - text: İndirdiğim dosyayı yükle + - generic: PDF, DOCX, XLSX, ZIP · en fazla 10 MB + - paragraph: + - text: Bu ihaleye yüklenen belgeler (2) + - generic: document-broken.pdf + - generic: Dosya metni okunamadı. Dosya biçimini ve bütünlüğünü kontrol edip yeniden deneyin. + - generic: 0 KB + - button "AI analiz" + - button "Derin" + - button "document-broken.pdf için kalem çıkarımını yeniden dene": Kalemleri yeniden çıkar + - button "Sil": + - generic: document-readable.pdf + - generic: Kalem çıkarılamadı — resmi cetveli kontrol edin + - generic: 3 KB + - button "AI analiz" + - button "Derin" + - button "document-readable.pdf için kalem çıkarımını yeniden dene": Kalemleri yeniden çıkar + - button "Sil": + - heading "Derin Analiz & Yol Haritası" [level=5] + - paragraph: + - text: EKAP ilan metni ve bu ihaleye yüklediğiniz tüm evrak + - strong: birlikte + - text: okunur; elenme sebepleri, gözden kaçan ince detaylar, belge kontrol listesi, kritik tarihler ve teklife kadar adım adım yol haritası çıkarılır. + - button "Tüm Evrakı Derin Analiz Et": + - text: Tüm Evrakı Derin Analiz Et + - paragraph: İlan metni + 2 yüklü belge okunacak + - heading "Kritik Yeterlik Şartları" [level=4] + - list +- button "Kullanım kılavuzu (? tuşu)": \ No newline at end of file diff --git a/docs/quality/evidence/qa-document-vault-retry.txt b/docs/quality/evidence/qa-document-vault-retry.txt new file mode 100644 index 0000000..428b2eb --- /dev/null +++ b/docs/quality/evidence/qa-document-vault-retry.txt @@ -0,0 +1,48 @@ + + - button "Yeniden dene" + - heading "Belge Kasası" [level=2] + - paragraph: İhale dosyalarınıza her cihazdan erişin — belgeler sunucuda saklanır, tarayıcınızda değil. + - text: Kullanım + - generic: 2 / 5 belge · 3.4 KB / 25.0 MB + - heading "Belge Yükleyin" [level=3] + - paragraph: İmza sirküleri, sertifikalar, vergi levhası… (en fazla 10 MB) + - combobox: + - option "Yasal Belgeler" [selected] + - option "Kalite Belgeleri" + - option "Mali Belgeler" + - option "Resmi Kayıtlar" + - option "Teknik Belgeler" + - option "Diğer" + - text: Dosya Seç + - heading "İhale Dokümanlarını Toplu Yükle" [level=3] + - paragraph: + - text: EKAP'tan indirdiğiniz şartname/doküman dosyalarını (PDF, DOCX, XLSX, ZIP) hepsini birden seçin. Her dosyanın + - strong: İKN'si metninden bulunur + - text: ", ihaleye bağlanır ve teklif cetveli kalemleri otomatik çıkarılır — o ihale herkesin kartında kalemleriyle görünür." + - text: Dosyaları Seç (çoklu) + - paragraph: PDF dosyası bozuk veya geçerli PDF biçiminde değil. + - paragraph: document-broken.pdf + - paragraph: + - text: İhale dokümanı · İhale Dokümanı · + - strong: 43 B + - paragraph: + - text: 06.09.2026 09:40:14 + - generic: Dosya metni okunamadı. Dosya biçimini ve bütünlüğünü kontrol edip yeniden deneyin. + - generic: Son kullanma + - textbox "Son kullanma" + - button "document-broken.pdf için kalem çıkarımını yeniden dene": Kalemleri yeniden çıkar + - button "İndir": + - button "Sil": + - paragraph: document-readable.pdf + - paragraph: + - text: İhale dokümanı · İhale Dokümanı · + - strong: 3.4 KB + - paragraph: + - text: 06.09.2026 09:40:06 + - generic: Kalem çıkarılamadı — resmi cetveli kontrol edin + - generic: Son kullanma + - textbox "Son kullanma" + - button "document-readable.pdf için kalem çıkarımını yeniden dene": Kalemleri yeniden çıkar + - button "İndir": + - button "Sil": +- button "Kullanım kılavuzu (? tuşu)": \ No newline at end of file diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index 516fc11..43918d6 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -319,3 +319,11 @@ Doküman Deposu'nda İKN bağlantılı, okunabilir ihale belgelerine yeniden kal Doküman Deposu hesap kimliğine göre yeniden oluşturuluyor; eski bileşenden veya değişmiş token'dan gelen sonuçlar durum güncellemesine uygulanmıyor. Toplu yüklemenin sonraki dosyası ve kalem aktarımı öncesinde oturum kontrolü var. Ortak yükleme servisi FileReader tamamlandığında token değişmişse istek göndermiyor; ortak indirme servisi blob tamamlandığında token değişmişse tarayıcı indirmesi başlatmıyor. Bu kontroller sunucunun sahiplik kontrollerine ek olarak istemcide eski oturum işinin devamını sınırlıyor. 72 test ve üretim derlemesi geçti. Yeni test, FileReader sırasında hesap değiştiğinde sıfır yükleme isteği gönderildiğini ve blob okuma sırasında hesap değiştiğinde indirmenin reddedildiğini doğruluyor. Gerçek tarayıcıda çok dosyalı yükleme/hesap değişimi kabulü, aynı hesapta eşzamanlı metadata yanıt sıralaması ve diğer modüllerin oturum denetimi halen açık. + +### Gerçek tarayıcıda PDF yükleme/yeniden işleme kabulü + +Güncel backend için ayrı localhost:5174 QA örneği açıldı (önceki 5173 örneğine dokunulmadı). In-app tarayıcıda sentetik Giresun kaydına iki dosya yüklendi: okunabilir, cetvel içermeyen PDF ve kasıtlı bozuk PDF. Okunabilir PDF kalemsiz sonuç verdi; aynı dosyada yeniden çıkarım 0 kalem sonucunu gösterdi. Bozuk PDF kaydı korundu, okuma hatası kalıcı göründü. Genel depoya geçiş ve sayfa yenilemesi sonrasında iki dosya ve ayrı durumları korundu; depodaki yeniden çıkarım bozuk dosya hatasını gösterdi, belge sayısı 2 kaldı. + +Tarayıcı testinde bulunan İngilizce PDF istisnası kullanıcıya yönelik Türkçe mesaja dönüştürüldü; depodaki eski 8 MB metni sunucunun 10 MB sınırıyla eşitlendi. Türkçe hata tarayıcıda tekrar doğrulandı. 72 test ve üretim derlemesi geçti. + +Kanıt: evidence/qa-document-upload.txt (ilk hata metni dahil), evidence/qa-document-vault-retry.txt (düzeltme sonrası). Test dosyaları tests/fixtures/document-readable.pdf ve document-broken.pdf; resmi ihale belgesi değildir. Bu kabul OCR, 40 sayfayı aşan doküman, gerçek cetvel kalem doğruluğu veya beş resmi dosyanın tamamlanması anlamına gelmez. Bunlar halen açık. diff --git a/src/components/tools/DocumentVault.jsx b/src/components/tools/DocumentVault.jsx index bde7e61..624ba8a 100644 --- a/src/components/tools/DocumentVault.jsx +++ b/src/components/tools/DocumentVault.jsx @@ -191,7 +191,7 @@ const DocumentVaultSession = ({signedIn}) => {

Belge Yükleyin

-

İmza sirküleri, sertifikalar, vergi levhası… (en fazla 8 MB)

+

İmza sirküleri, sertifikalar, vergi levhası… (en fazla 10 MB)