Skip to content

v2.6.0 — render only the slides visual QA is looking at

Choose a tag to compare

@photonn photonn released this 01 Sep 11:05
· 3 commits to main since this release

Slide-scoped visual QA calls (visual_inspect_slides / visual_repair_slides with an
explicit slides list) still paid for a full-deck LibreOffice conversion on every render.
render_pptx_bytes_to_pngs's slides= argument only filtered pages out of the resulting PDF
after LibreOffice had already converted every slide — so a repair loop scoped to one problem
slide converted the whole deck up to VISUAL_QA_MAX_ITERATIONS times regardless.

_render_deck now builds a stripped copy of the deck first — reusing the existing OPC-level
delete_slide to drop every slide outside the requested scope — and hands LibreOffice only
that. The full deck is still converted for whole-deck inspections; only slide-scoped calls
change. Repair semantics are unaffected: apply_repairs still edits the real in-memory
presentation, the stripped copy is render-only and discarded after conversion.

Net effect: LibreOffice's per-conversion cost now scales with how much of the deck a call
actually asks about, not with deck size — most valuable in the inspect/repair loop, where it
was previously paid on every iteration.