fix(ui): sometimes outlines get clipped#33846
Merged
Merged
Conversation
97a7bd3 to
ae0375f
Compare
# Conflicts: # packages/session-ui/src/components/message-part.css
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.
Summary
Root cause
The virtual timeline gives each row an explicit rounded measured height and overflow clipping. At fractional Electron/display zoom, the rounded allocation can end just inside a row's outer paint and remove its bottom device pixel. A 0.5px overflow clip margin matches the nearest-integer under-rounding bound without changing row measurement, starts, total scroll height, or layout.
Scope
An adversarial row audit found the measurement invariant is structural rather than tool-specific. Diff summaries, attachment-only user rows, and final Markdown borders can share the same geometry. Every timeline variant except TurnGap uses measured framed content, so the implementation now keys off the row model instead of mutable renderer/tool details.
The larger V2 focus-ring overflow is a separate accessibility issue: it is intrinsic 4.5px focus paint rather than subpixel measurement error and should not be addressed by weakening stale-content clipping in this PR.
Follow-up evidence
Validation