perf(export): weiger raster-export vooraf op een totaalbudget en ruim op (#1047) #1091

Merged
brenno merged 3 commits from fix/export-raster-window-1047 into main 2026-08-01 20:13:58 +00:00
Owner

Sluit #1047.

De rasterizer hield alle gerenderde PNG's vast en zette de image-cache op 1 GB; PDF/PPTX-assemblage begon pas nadat álles gerasteriseerd was, zodat honderden hoog-entropische dia's meerdere gigabytes tegelijk vasthielden. rasterize weigert nu vóóraf — vóór er iets getekend is — op een onderbouwd totaalbudget (kMaxRasterExportBytes = 4 GiB, injecteerbaar) met een gebruikersmelding in 31 talen, en ruimt de image-cache plus tussenresultaten na afloop én bij annulering altijd op.

Schaaltest bewijst weigering-zonder-render boven het budget en doorgang precies op de grens. make check groen.

Afweging (bewust): de PDF/PPTX-assemblage (pdf/archive-pakketten) houdt het hele document in geheugen, dus een echt streamend venster vergt een grotere refactor; het vooraf-budget (de tweede geaccepteerde optie in het issue) begrenst het pathologische geval nu deterministisch.

Bewaker overgeslagen: geen formaat/opslag/afhankelijkheid/belofte.

🤖 Generated with Claude Code

Sluit #1047. De rasterizer hield alle gerenderde PNG's vast en zette de image-cache op 1 GB; PDF/PPTX-assemblage begon pas nadat álles gerasteriseerd was, zodat honderden hoog-entropische dia's meerdere gigabytes tegelijk vasthielden. rasterize weigert nu vóóraf — vóór er iets getekend is — op een onderbouwd totaalbudget (kMaxRasterExportBytes = 4 GiB, injecteerbaar) met een gebruikersmelding in 31 talen, en ruimt de image-cache plus tussenresultaten na afloop én bij annulering altijd op. Schaaltest bewijst weigering-zonder-render boven het budget en doorgang precies op de grens. make check groen. Afweging (bewust): de PDF/PPTX-assemblage (pdf/archive-pakketten) houdt het hele document in geheugen, dus een echt streamend venster vergt een grotere refactor; het vooraf-budget (de tweede geaccepteerde optie in het issue) begrenst het pathologische geval nu deterministisch. Bewaker overgeslagen: geen formaat/opslag/afhankelijkheid/belofte. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
De rasterizer hield alle gerenderde PNG's vast en zette de image-cache op
1 GB; PDF/PPTX-assemblage begon pas nadat álles gerasteriseerd was, zodat
honderden hoog-entropische dia's meerdere gigabytes tegelijk vasthielden.
rasterize weigert nu vóóraf — vóór er iets getekend is — op een onderbouwd
totaalbudget (kMaxRasterExportBytes = 4 GiB, injecteerbaar) met een
gebruikersmelding, en ruimt de image-cache plus tussenresultaten na afloop én
bij annulering altijd op. Schaaltest bewijst weigering-zonder-render boven het
budget en doorgang precies op de grens.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
refactor(export): splits rasterize onder de methodelengte + lijn cancel-contract (#1047)
All checks were successful
scans / scans (pull_request) Successful in 3m38s
786f252614
De budgetweigering en overlay-opbouw naar eigen statische helpers, zodat
SlideRasterizer.rasterize onder de 150-regelratchet blijft. De pre-existing
cancel-test en de isCancelled-doc lieten nog het oude "onvolledige lijst"-
contract zien; de fix ruimt de deels verzamelde renders nu op, dus die
verwachten een lege lijst.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit c4a2fad298 into main 2026-08-01 20:13:58 +00:00
Sign in to join this conversation.
No description provided.