mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-24 10:37:03 -06:00
* fix(pptx): harden import resource budgets, deduplication, and lookup caching - Chart sidecars (Finding 2): Enforce an import-wide retained byte budget and cache captured sidecars by chart part to prevent memory amplification. - Content types cache (Finding 6): Cache parsed [Content_Types].xml defaults and overrides in Package.ct_cache. - Text run splitting and font lengths (Finding 8): Bound typeface attribute lengths and cap paragraph runs to prevent multiplication on text splitting. - Inner namespace decls (Finding 15): Use HashSet/HashMap indexing and cap inner declarations to 1,000. - Slide and notes deduplication (Finding 16): Deduplicate slide paths and cache parsed notes slide bodies by target. - Diagram media caching (Finding 22): Cache diagram media payloads in imp.media_by_part. - Master slide deduplication (Finding 28): Deduplicate master paths before loading. - Layout target deduplication (Finding 30): Deduplicate layout targets across master slides. - Chart value axis indexing (Finding 32): Index valAx by axId using a HashMap. - ChartEx series output budget (Finding 34): Charge series point vectors against an aggregate output budget and cap series count. - ChartEx point allocation bounds (Finding 36): Allocate point vectors only to actual point span bounded by budget rather than declared ptCount. - SmartArt recursion depth (Finding 38): Limit SmartArt recursion depth to 8. * fix(pptx): address review feedback on sidecar cache, series budget, and inner decls * fix(pptx): preserve cached sidecar bytes and non-empty category fallback