Commit Graph

5 Commits

Author SHA1 Message Date
Stefan Lohmaier 936ebc2f56 feat(pdf): gemeinsames pdfutil — Scan-PDFs als Bild + OCR (Files & Mail)
Scan-/bildbasierte PDFs werden jetzt von Files-MCP (read_file) UND Mail-MCP
(read_attachment) ueber das gemeinsame Modul pdfutil.py verarbeitet: Seiten via
PyMuPDF als PNG (150dpi, max 20) + OCR-Text (tesseract deu+eng). Verschluesselte/
kaputte PDFs bleiben graceful. Deps: pymupdf, pytesseract (+ system tesseract-ocr).
76 Tests gruen.
2026-06-19 08:46:00 +02:00
Stefan Lohmaier abeacfc3b8 feat(files): gescannte/bildbasierte PDFs als Bilder rendern (Vision)
read_file gab bei Scan-PDFs (kein extrahierbarer Text) nur nutzlose Rohbytes
zurueck -> claude.ai konnte sie nicht lesen. Jetzt: PyMuPDF rendert die Seiten
als PNG (150 dpi, max 20 Seiten) -> ImageContent, das LLM liest sie per Vision.
Verschluesselte/kaputte PDFs bleiben graceful. TestFileTypes scanned.pdf -> image.
Produktiv-Fix fuer alle User. Dep: pymupdf (requirements-extra.txt). 76 Tests gruen.
2026-06-19 08:27:08 +02:00
Stefan Lohmaier 85f5e26384 test: Edge-Case-Dateien + Tests (leer/gross/verschluesselt/Sonderzeichen)
/testdata/edge/: empty.txt, leer.bin (0 Byte), Name mit Umlauten+Leerzeichen+
Klammern, Unicode/Emoji/RTL-Inhalt, Datei ohne Endung, passwortgeschuetztes
PDF (pikepdf) + ZIP, riesig.dat (26 MB > MAX_BIN_SIZE). TestFileEdgeCases prueft
graceful Handling (kein Crash, 'Datei zu gross', PDF-Lesefehler sauber gemeldet).
gen_edge.py + upload_ocis.sh erweitert. 76 Tests gruen.
2026-06-19 08:05:25 +02:00
Stefan Lohmaier 5f3181b162 test: umfangreiche Testdaten (alle Dateitypen + Mail-Anhaenge)
- oCIS /testdata/: Bilder (jpg/png/webp/bmp/gif/tiff/svg), Audio (mp3/ogg/m4a/
  flac/wav), Video (mp4), PDFs (Text + Scan), Office (docx/xlsx/pptx), Text/Daten
  (md/txt/csv/json/xml/yaml/html/py/vcf/ics), Archive (zip/tar.gz).
- Maildir: Mails mit diversen Anhaengen (PDF/Bild/Word/Excel/MP3/MP4/PPTX/ZIP).
- TestFileTypes: read_file je Typ -> Content-Typ pruefen (image/text/resource).
- Generatoren tests/testdata/gen_testfiles.py + gen_maildir.py + upload_ocis.sh.
68 Tests gruen (vorher 54). Doku in MCPTEST.md.
2026-06-19 07:56:08 +02:00
Stefan Lohmaier 0a1576aaa5 test: dedizierter mcptest-User statt Stefans echter Daten
USER_ALIASES test->mcptest. Eigene Backends pro Dienst:
- Radicale-User mcptest + /mcptest/calendar-test + contacts-test
- oCIS-User mcptest (Graph-API), Joplin lokales Profil :41186
- statische Test-Maildir tests/testdata/maildir (mcp-test-mail/-empty)
test_all.py auf mcptest-Backends umgestellt (Account-/Kalender-/Kontaktnamen).
config.json (gitignored) mit mcptest in allen Maps. Doku: tests/MCPTEST.md.
54 Tests gruen. Stefans calendar-test/contacts-test + Joplin-Test-Reste entfernt.
2026-06-19 07:46:35 +02:00