Skip to content

fix(desktop): seed timeline virtualization row heights#1887

Open
wesbillman wants to merge 2 commits into
mainfrom
pinky/virtua-row-estimates
Open

fix(desktop): seed timeline virtualization row heights#1887
wesbillman wants to merge 2 commits into
mainfrom
pinky/virtua-row-estimates

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Summary

  • seed Virtua with per-row timeline height estimates while keeping measured heights authoritative
  • memoize estimate arrays so ordinary scroll does not recompute them
  • paint estimated rows immediately outside prepend compensation, while preserving Virtua's visibility safety during prepend
  • keep the row shell component type stable so prepends do not remount mounted messages

Safety

  • adds an E2E call-count gate proving five ordinary scroll moves do not recompute row estimates
  • adds a prepend DOM-identity gate proving the mounted anchor node survives history insertion
  • keeps image placeholders/blurhash polish out of this PR

Validation

After rebasing onto origin/main:

  • pnpm check (passes; 2 pre-existing unused-code warnings)
  • cd desktop && pnpm test — 2,886 passed
  • cd desktop && pnpm build
  • cd desktop && pnpm exec playwright test --project=smoke tests/e2e/timeline-no-shift.spec.ts tests/e2e/scroll-history.spec.ts --repeat-each=3 — 66 passed

Manual verification

Chromium automation covers estimate memoization, mounted coverage, anchor stability, and prepend node identity. The transient WKWebView fast-scroll blank still needs a final desktop eyeball because Chromium cannot directly reproduce that compositor behavior.

wesbillman and others added 2 commits July 14, 2026 19:37
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman wesbillman requested a review from a team as a code owner July 15, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant