iris bench: one ScrollController for every scroll area (ai-app-2 4fdabc3)

This commit is contained in:
iris committed 2026-09-08 22:00:58 -04:00
1 parent 91a7cae692
commit 427512da20
2 files changed
+45

No files matched your search

+45
View File
@@ -11,6 +11,51 @@ no enrolment and no permissions.
The rest of this file is the runbook that was delivered with the APKs.
**2026-09-08 (newest): scrolling is one mechanism, and this build is
mostly structure.** `iris-bench-arm64.apk` rebuilt from ai-app-2
`4fdabc3`, four commits on from the last one. **There is deliberately no
new feature here and little that should look different** -- it is the
scrolling rework you asked for after reading `docs/SCROLL.md`, plus the
two changes before it, so what this build is for is catching anything
that got *worse*.
- Everything a scroll position is made of now lives in one
`ScrollController` that the two scrolling widgets own, instead of a
protocol between a `Scroll` and the list inside it. The list is no
longer wrapped in a scroll area at all -- it is one widget doing its own
layout and its own scrolling -- and the `Widget` trait lost the three
scrolling methods that existed only to connect the two.
- A scroll delta's sign is now a screen direction (positive scrolls up or
left) rather than "toward earlier content", which pointed the opposite
way for a list laid out backwards. Nothing in this build lays one out
backwards yet, so this is a latent fix rather than something to see.
- The one behaviour that genuinely changed: a scroll delta is now applied
by the next frame's layout rather than the instant it arrives, because
the layout is the only thing that knows where the content ends. Input is
always followed by a frame, so this should be invisible -- if any
gesture feels a frame behind your finger, that is the change to suspect
and worth saying so.
- Earlier in the same run: one fling and one drag implementation for every
scroll area (a code fence, the composer and the transcript now share
exactly the same code), and the list's pin ("stay at the newest
message") is separate from which way it is laid out.
What to look for -- all of it is "does this still work", not "is this
new":
- Flick the transcript hard both ways: it should decelerate and stop
exactly on the first and last message, never past either.
- Put a finger down on a coasting transcript: it should stop dead under
your finger and then follow it.
- Flick a code block sideways while scrolling the transcript vertically
somewhere else -- the two should not interfere.
- Scroll the composer's text when a message is long enough to need it.
- While a reply is streaming, the view should stay stuck to the bottom;
scroll away and it should stop following, and coming back to the bottom
should re-stick.
- Selecting text with a long press should still work and should not pan.
**2026-09-08 (later still): the scroll lock, and the input box's clip.**
`iris-bench-arm64.apk` rebuilt from ai-app-2 `5e34dba`. Both are from
your report on the bench build, and both have a test that fails without