Files
ai-app/app
irisandClaude Opus 5 53735f8df4 Let a paged-in row wait its turn instead of standing up with the page
The layers took care of the steady state -- the transcript's content
re-recorded fifteen times in a thirty-second scroll, and the frame's
draw phase sits at 3.5ms. What is left is entirely spikes, and they are
pages landing: one of those fifteen recordings took 99.9ms on its own,
with the frame after it unable to start.

The cause was a rule that read as caution and was not. A row with no
measured height was retained whatever its distance, on the grounds that
it had just been paged in and was about to be looked at -- but "no
measured height" describes the *whole page*, not the near edge of it, so
eight hundred events' worth of markdown was shaped inside the frame the
page arrived in.

A row that has not been measured now stands in at the average of those
that have, so it is placed and judged by distance like every other row
and is built when the reader comes near it. The average rather than a
constant because these run from a one-line note to a screenful, and the
average row in a conversation is a fair guess at the next one. Being
wrong is cheap here and self-correcting: an estimate is only ever used
above the viewport, and this layout hangs from its far end, so a
correction up there moves nothing on screen.

Checked by scrolling twenty-five swipes into history and back on a real
transcript -- rows stand up as they are reached, and the position does
not shift as the guesses are replaced by measurements.

Second half of the diagnosis from the ai-app-2-6d session.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 03:22:51 -04:00
..