docs: line-box fidelity - no uniform correction is safe (measured negative) - #37
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The mobile-width gap (
landing360px at 11.41% against 1920px at 1.84%) was localized in #36 to cumulative vertical drift through HUG parents. This task attempted the correction. It found that no uniform correction is safe, and lands that as a measured result rather than shipping a change that moves the error around.No
crates/file, no threshold, no golden, no checksum, no diagnostic and no source map changed. One document.The three corrections, all rejected
Every probe improves the narrowest width and regresses both wider ones. Trading 0.60–0.84pp at 992 and 1920 for 1.77pp at 360 would leave the repo worse at the two widths currently closest to the design, so the no-regression condition rejected all three.
Why it is not a tuning problem
The same heading measures +1.953px too tall at 360 (design 245, browser 246.953) and −1.625px too short at 992 and 1920 (design 272, browser 270.375). The sign reverses with width.
No single uniform per-line correction can satisfy both signs at once — it must worsen one while improving the other. The three probes sharing one signature was that proof arriving three times, not three unrelated failures.
The sharpest datum
Reading the design's own PNG rather than inferring from node heights:
The first two lines agree and the third starts one pixel late. That is consistent with half-leading or ascent/descent differing on accumulation, not with a wrong ratio. The document states which of those the numbers can and cannot distinguish, and deliberately does not claim a universal pixel-advance rule from three screenshots.
PERCENT normalization is closed out
Figma reports
lineHeightas{unit: PERCENT, value: 129.99999523162842}.line_height()already rounds that to1.3, matching the plugin's ownMath.round(v/10)/10. Using the unrounded value changes the per-line advance by under two millionths of a pixel, so that rounding is not the residual. Direction 2 of the brief is answered with evidence rather than a change.Separate gate defect found
devup-mcp --test cli'sversion_build_id_reports_the_repository_dirty_statefailed once during this work (left: false, right: true): the binary was compiled while the tree was clean at9f287d34e4b1, then untracked probe files appeared, so the compiled-in identity said clean while the runtimegit status --porcelain=v1 --untracked-files=normalsaw dirty. Documented under its own heading with the mechanism; not fixed here, as it deserves its own change.Verification
Coordinator-measured on the merged branch:
cargo fmt --all -- --checkexit 0;cargo test --workspace1049 passed / 0 failed / 2 ignored (99 suites); working tree clean so the identity race does not fire. Identical to before, which is the correct outcome for a change that touches no code.Docs only; no changepack applies.