…rsion (#791)
Standalone CSV attachments become searchable through the existing document search commands, including semantic and hybrid retrieval when document embeddings are enabled. The worker converts each opted-in CSV locally with Docbank's bounded CSV to PDF converter, then sends only the generated PDF through the existing authenticated PDF capability and consent.
The archive keeps the CSV attachment's source hash and media type. It records the generated PDF hash, size, page count, converter identity, policy fingerprint and page to record and cell spans as extraction provenance. The generated PDF remains transient. Direct capability-authorized formats continue through their existing routes and upload their original bytes. Raw CSV has no enforceable Mistral unit bound, so disabled conversion leaves it outside the authorized scope. Each extraction records the media type it uploaded through. A served head covers its owner only while the in-scope representative occurrence still selects that route, so the candidate scan reprocesses a hash whose route changed through an occurrence, message type, or liveness change.
CSV conversion is off by default under `[attachments.documents.conversion.csv]`. Enabling it or changing an effective source, response, or page bound creates a new exact extraction profile and requires `msgvault documents consent-mistral` again. Existing PDF-only profiles keep their current identity. The dependency update to kenn-io/docbank#293 also preserves existing document-vector fingerprints through a small compatibility port for the removed raw embedding API.
The Docbank dependency also raises the first-party `go.kenn.io/kit` module from v0.18.1 to v0.24.1 through minimal-version selection. The transitive `golang.org/x/image` module is pinned to v0.45.0 to clear the hosted vulnerability check.
Refs #608
Co-authored-by: Rod Boev <rodboev@users.noreply.github.com>
Embedded applications can convert CSV locally into a bounded PDF for the existing OCR path, with hashes for both files and a mapping from generated pages to CSV records and cells. The converter checks source, cell, page and output limits before returning a PDF, so callers can replace their own PDF conversion step with a checked Go API.
This adds the CSV conversion library and its documentation. Provider authorization and application integration remain separate, including the Msgvault work in kenn-io/msgvault#608.
Refs #175.