…Headers on fetch
`white-space: nowrap`/`pre` now withhold soft wrap opportunities PER
INLINE RUN (`WhiteSpaceRegime::wraps`), not for the whole flow: a nowrap
span glues only its own spaces, a normal span inside `<pre>` wraps again,
and the infinite line width applies only when no run of the flow wraps.
Two corrections the per-file ruler forced before merge, each with a test
that was red: a collapsible space at the start of a line still collapses
under nowrap (§4.1.3 phase II — `claude-word-spacing` measured x=8.8
where Blink gives 0), and a glued space no longer counts a pending
separator twice (`float-nowrap-4/7`).
Appendix E layer 8: an out-of-flow box with `z-index: auto`/`0` is
spliced into the piece sequence before the first `position: relative`
box of the same layer that follows it in tree order
(`empilhamento::splice_layer8`), instead of always after the whole flow —
no stored index, the position is found at splice time. Its first version
applied a cached fragment's reuse offset twice when descending into a
`Piece::Child`; eight `position-relative-table-*-absolute-child` reftests
caught it, fixed by cancelling the offset before the insert.
`fetch()` in rts-node hands back the `Headers` global rts-std already
implements instead of a plain object; the reentrancy of
`entry::construct` inside `with_runtime` this uncovered is written down
at the site. `quebra.rs` and `linha.rs` split back under the 500-line
ceiling (`quebra_particao.rs`, `linha_atomos.rs`), byte-identical PNGs.
Measured per file against main: css-position 54 → 65, css-text/white-space
176 → 180, CSS2/normal-flow +2, css-flexbox +1, CSS2/floats +1, 0 lost;
paint parity 177/177; CSS corpus identical; suite 890/905, lost list
empty; `cargo test -p rts-dom --lib` 1 310, `-p rts-node --lib` 137.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ERaR4gN9psf59ofSFpqZaf
Wave 4 (#2731). Per file against main: css-position 54 → 65, white-space 176 → 180, normal-flow +2, flexbox +1, floats +1, 0 lost; parity 177/177; corpus identical; suite 890/905 lost list empty; 1 310 + 137 crate tests. Two regressions the ruler caught on the first run are fixed with red-first tests.
🤖 Generated with Claude Code
https://claude.ai/code/session_01ERaR4gN9psf59ofSFpqZaf