mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-26 19:37:03 -06:00
Ultrareview finding 6: boxes past a chain's 16th distinct width (compared by exact float equality) showed no text, which resized boxes hit easily. Widths are now told apart to a twip, and past the cap a box takes the nearest layout already made (same direction, widest that fits, else the narrowest). Work stays bounded at 16 story layouts. Ultrareview finding 7 (also raised by CodeRabbit): opaque non-JPEG pictures were decoded and charged to the per-layout pixel budget though they give no outline, and a budget refusal was cached in LayoutCache as a permanent "no outline". The header (read via into_decoder, PNG tRNS included) now says whether a picture can be transparent before anything is charged; Alphas::outline reports OverBudget distinctly from Ok(None), and Ctx::wrap_outline (via picture_outline) doesn't keep a refusal in LayoutCache::outlines. Within one layout a refused picture is remembered so its header isn't re-read. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>