An agent run exporting a deck as an outline got the footer text and the
slide-number field (‹#›) as body lines under each title. PowerPoint's
outline view shows title and body placeholders only, so the text outline,
the RTF outline (Save As ▸ Outline/RTF) and the outline view now skip the
footer-row placeholders as they already skipped the title. Split out of the
frame export PR at review, which asked for all three together.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With rotateWithShape false, the renderer lays linear and radial gradients
out upright on the slide, while rectangular and path gradients still turn
with the shape. The shape.fill params doc now says so.
* Ogg: include recovered tail packets in Opus duration
Keep the existing missing-granule recovery cursor in step with the packet ends it assigns. Add a regression for a partially and entirely unanchored stream; existing valid end-trimming coverage remains unchanged.
Validation: rustc --edition=2024 --test crates/ogg/src/lib.rs: all 12 tests pass. Scoped rustfmt check passes. Full cargo --offline xtask ci is blocked before build by the uncached pinned egui checkout.
* Ogg: record recovery duration correction
* Fonts: bound font-controlled work in enumeration, outlines and carets
An embedded font could make each lookup do far more than real fonts need:
- enumerating a collection read up to 256 faces times 1024 named instances,
each then built with its own shaper; now 4096 per file across all faces,
with a set for the duplicate-style check instead of a scan;
- composite and VARC glyphs could expand one dense outline without limit,
and the outline cache only counted entries; outlines now stop at 32768
path elements (drawing nothing past it) and the cache is also bounded by
the elements it holds;
- the 64-caret limit applied after filtering, so a ligature lookup could
read every caret record; it now applies to the records read.
* address review: bound thread-local glyph cache by path elements
* render: look up a table's style once, keep the skip list as a set, count each dash
* render: index chart point fills, scatter x presence and waterfall bars once per chart
* PPTX export: index animation targets, cache a paragraph's build roles, serialize run properties once per text run
* address review: warn once when a by-paragraph build is truncated
* av1: count repeated-frame outputs as they are added
* hevc: give each slice segment its own entry-point list instead of keeping the copied one's allocation