Recover attachment formats and add source-linked slide evidence - #578
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A real emailed PowerPoint was stored as
.binafter Gmail refreshed its opaque attachment handles. Reading that file decoded package bytes as text, and indexing failed. Imports now recover MIME metadata only through unique byte equality when handles rotate; file reads recognise Office package structure independently of the stored extension and use bounded extraction.Adds
read_presentation_slidesthrough the existing private image tool surface. It returns numbered native text/notes and actual slide images to the vision model, with source hashes, renderer provenance, pagination and optional cached OCR. PPTX rendering uses LibreOffice; original bytes remain unchanged. Derived cache reads follow source access checks.Validation: 88 focused tests passed, 2 skipped; a further notes-without-text-frame regression passed. Real privately held 14-slide deck extracted successfully, rendered to 14 PDF pages, and a diagram image plus OCR was saved through canonical file-copy services. Research content and private receipts are outside Git. Natural-language workflow acceptance follows activation; this PR does not claim automatic reply handling.
An adjacent pre-existing RAG collection test failed because its fixture supplies an untrusted namespace without an actor; it does not exercise the changed extraction path. Tracked under JVNAUTOSCI-2223.