- A grid-cols-N recipe plan may only override the authored template when
computed tracks are near-equal - asymmetric sidebar templates
(260px 1fr) keep their authored geometry
- Source-intent named tokens (max-w-md etc.) re-emit only when their
Tailwind-4 value matches the captured computed px; mismatches (older
token scales) emit the captured value instead
- Per-axis source-variant selection keeps the highest-min-width active
variant instead of last-in-class-order, matching real Tailwind cascade
(lg:grid-cols-3 no longer loses to a later md:grid-cols-2 at desktop) -
latent since the initial commit
- New non-blocking textHiddenInClone metric in the dom gate: counts
capture-visible text that renders hidden in the clone, so silent
disappearances surface in reports
435 tests pass (10 new), typecheck clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Capture:
- Preserve real asset extensions (.lottie no longer truncated); extract the
default animation JSON from dotLottie ZIP containers at materialization
(minimal built-in ZIP reader, no new deps)
- Reset scroll + settle before every viewport snapshot so scroll-linked
styles can't bake into captured computed values
- Marquee detection now requires content overflow (>1.35x), sustained
velocity across separated windows, scroll independence (jiggle test), and
genuine content repetition — kills scroll-settle-lerp false positives
- Sizing probe trusts authored explicit heights (px/vh/calc) over circular
parent/child reflow verdicts, fixing dropped 100vh heroes
Normalize/generate:
- Canonicalize identity transforms to "none" per viewport; emit explicit
transform resets across bands when any band has a real transform
- DittoLottie keeps the captured placeholder until DOMLoaded; failed loads
no longer blank the container
- mx-auto only for true auto-margin centering; literal per-band margins are
preserved (fixes full-bleed regressions)
- Spacing-scale snap tightened to 0.25px (3.5px stays p-[3.5px]); emit
whitespace-nowrap for wrap-vulnerable single-line text leaves
- Grid recipes no longer override captured track counts or column spans;
responsive re-flow plans apply only when geometry agrees
Quality scoring:
- Rewritten 6-dimension rubric (payload, decomposition, duplication,
semantics, hygiene, runtime) with catastrophe caps and per-dimension
reporting; thresholds are documented calibration guides
218 tests pass (74 new), typecheck clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>