Overview
dsh-attachment-formats
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
- OCR (tesseract.js) quality is limited on low-resolution scans and complex tables; insufficient confidence falls back to page images with an explicit note — garbled text is never injected. Higher-quality OCR (RapidOCR/MinerU/PaddleOCR) can be added as pluggable backends later (see `docs/upgrade-v6.md`). - The pymupdf4llm high-fidelity engine handles ≤40-page PDFs only (larger documents use the fast pdfjs engine); table/formula reconstruction is good but not typesetting-grade — layout details can be cross-checked against page images. - Scanned PDFs without a text layer can only go the page-image route when OCR is unavailable or fails (vision models can read them). - Legacy `.doc/.xls/.ppt` require LibreOffice (`soffice`); `rtf` requires pandoc; `epub/odt` work out of the box but pandoc (if installed) gives better fidelity. Missing binaries produce clear, actionable errors — nothing is silently dropped. - DOCX formulas and embedded images are not extracted (tables, headings and text are). - XLSX outputs displayed text/results only; charts and comments are not extracted. - Outlines prefer bookmark TOCs; PDFs without bookmarks fall back to font-size heuristics (weak on documents without strong heading styling) — the index card still carries line/page counts and reading pointers. - iWork and archives are not converted yet. - Images, document cards, clipboard text and progress belong to the conversation where intake started. Switching conversations keeps each draft separate. Native attachments require a working per-session interface (dsh 0.1.1+ for images; 0.1.3+ for general files). Older hosts no longer receive synthetic drops. - Draft merging uses the official input face, with a DOM bridge for older hosts. The card's **send** button dispatches Enter to the mounted native composer so its current queue/steer preference and upload gates apply. If a host changes its keymap, the merged content remains in the draft for native submission.
