Open the transcript at the window's edge and say where that edge is

A transcript that starts somewhere other than the session's beginning has to say so, in three places. The first row is now the window's own edge: a control that asks the daemon for the records behind it, and that names the compaction when the window opens on one, because that fold is the whole reason the transcript starts there. A turn is numbered by its place in the session — the sequence of its opening record — rather than by its rank in the window, which would number turn 361 as "#1" and tell the reader the session began where their window does. And a turn the window cut in half makes no summary claims at all: a count of the records that happen to be loaded is not a summary of the turn, and the failure that is above the edge would not be in it. Pressing load-earlier lands the reader at the top of the page that just arrived rather than leaving them still, since records arriving above a viewport that does not move look like nothing happened. It also fixes the follow, which the bigger sessions exposed: the list adjusts the scroll itself when a row measures, after the app's own hold has written the end and from the size that row had before it measured. The correction left the reader a row short of the end, and the scroll event it caused read as the reader leaving — so the follow disarmed and the transcript never caught up with itself. Measured at 400 turns: 93px short, permanently. The end is now written twice per size, once after the list has had its turn in the frame.

ac5f1f52 parent 3d843004 +197 −27
browse files