b0c13b85a9144266c7fe460624f5e8c757d13c4e
`d21a215` answers the API question: one widget keeps one length per axis, and `Wrapper` -- what `WidgetPtr` already was -- is the second widget the second length needs. The `i64` composition item is rewritten around a measurement that changes what it is for. `prelude.wgsl` decodes the raw counts into `f32`, walks the move chain in floats, and lands every edge on a whole pixel with `snap_floor`. Checked in the render rather than read off the source: there is no partially covered column anywhere along `tabs`'s band of rounded rects, so every box edge is hard, and the two `pad(10)` gaps are exactly ten pixels on both sides of the truncating multiply. The screen invariant is therefore already as good as integers allow, and exact composition cannot improve it. What it can still buy is layout's own decisions -- the `Span` leftover boundary, the queued clamp crossover, `Holds` validity, warm-against-cold agreement -- with `Holds::through`'s two-route allowance as the test of whether it worked. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Languages
Rust
53%
Kotlin
44.4%
Shell
2.6%