mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
The upscroll compensation writer diffed the reading anchor's document position against a per-rAF baseline. On WebKit the rAF baseline is captured AFTER content-visibility realization has already shifted the row, so baseline and current straddle the same side of the reflow (dTop=dScroll=0) and the position diff is blind to it — the correction never fired and the row took the full raw realization shift. Add a second, baseline-timing-independent signal: when the position diff sees no move, fall back to the net height change of the RO entries ABOVE the anchor (`aboveShift`) and absorb it into scrollTop. This reads the reflow magnitude directly from the resize entries rather than diffing a snapshot WebKit captured too late, so it holds under WebKit's async realization ordering without depending on scroll-event timing (which coalesces off the scrolling thread under real wheel input). Validated (each run x2, stable): - WebKit felt/wheel (real input): 0.00px peak deviation (was ~200px) - Chromium felt + sync: 0.00px, no regression - 8/8 unit tests, tsc, biome clean The WebKit synchronous-actuation gate still reads ~44px peak; that is an `el.scrollTop=x`-vs-CV-realization artifact of the imperative test path, not felt jitter — the felt-mode (wheel) gate under design supersedes it. Co-authored-by: Dawn <dawn@sprout-oss.stage.blox.sqprod.co> Co-authored-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com> Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
Buzz
Desktop chat shell with:
- Tauri + React + TypeScript + Vite
- Tailwind CSS
- shadcn/ui-ready shared components
- Biome (lint/format/check)
- Feature-driven frontend structure
Scripts
pnpm dev- run the web frontendpnpm tauri dev- run the desktop apppnpm build- typecheck and build frontendpnpm typecheck- TypeScript checkspnpm lint- Biome lintpnpm format- Biome format (write)pnpm check- Biome check
Structure
src/shared- reusable app-wide code (ui,lib,styles)src/features- feature modules (vertical slices)src/app- top-level app composition