diff --git a/README.md b/README.md index a669932..f0c319a 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/iris/build/outputs/apk/release/iris-bench-arm64.apk b/iris/build/outputs/apk/release/iris-bench-arm64.apk index aa48fb2..e828ea1 100644 Binary files a/iris/build/outputs/apk/release/iris-bench-arm64.apk and b/iris/build/outputs/apk/release/iris-bench-arm64.apk differ