diff --git a/README.md b/README.md index 8d412dd..f52598f 100644 --- a/README.md +++ b/README.md @@ -415,3 +415,57 @@ reproducible here. Still not fixed, and still unrelated: the composer bar's grey background is not drawn on this build, so the transcript shows through behind the message field. + +## 2026-09-07, evening: clamped scrolling, a faster flick start, platform fonts, enrollment, and a runtime log Dev Updater can read + +`iris-bench-arm64.apk` rebuilt from ai-app-2 `rustify` commit `92985ba`, +against the last delivery (`b47eb73`, the fling-curve + keyboard-targetSdk +build). APK **9,639,224 bytes**, `libmain.so` **7,506,448 bytes** (arm64-v8a +only) -- both smaller than that build, mostly from replacing the bundled +Noto fonts with the platform's own (Roboto for body text, Droid Sans Mono +for code) and a further release-profile tuning pass; docs/RUST.md has the +full size table. + +What changed: + +- The list is now clipped to its own box and rows are drawn at both edges -- + nothing scrolls up behind the header, and there is no blank band at + either end. +- Scrolling is clamped at both ends of the transcript, matching the fling + fix from the last build: you cannot drag or fling past the top or the + bottom. +- A released flick now starts at the speed your finger was actually moving + at, using the same least-squares velocity estimator Compose itself uses, + rather than a slower approximation -- a flick should feel like it starts + fast and decelerates, not like it ramps up. +- The clock that timestamps each touch sample was misdating batched input, + which fed wrong numbers into that velocity estimate; it now dates them + correctly. +- Code blocks render in a real monospace font and body text in Roboto -- + both platform fonts now, not the bundled Noto this build removes. +- The app enrols itself from the `aiapp://enroll` link -- Dev Updater's + Enroll button on this APK's component opens it directly. Diagnostics + shows either `enrolled: host:port` or `not enrolled`. +- The app exposes its own log to Dev Updater: APK component -> log button + -> Runtime tab. This needs the updated Dev Updater build on the host to + show anything. +- A "Trace" switch in the bench header turns on a line per input and per + frame in that log, for when a report alone isn't enough to say what + happened. +- Several of the invariants this code relies on internally are now hard + assertions in this release build, rather than silently-wrong behaviour if + one is ever violated. + +What to look for: + +- The header shows nothing behind it, at either edge of a scroll. +- You cannot scroll past the top or the bottom of the transcript. +- A flick starts at roughly the speed of your finger and visibly + decelerates, rather than ramping up or holding a constant speed. +- Code blocks are monospace; body text is not. +- Opening the keyboard pushes the composer up. If it doesn't, screenshot + Diagnostics' `insets:` line as in the last build's report. +- Dev Updater's Runtime tab (APK component -> log button) shows this app's + own lines, once the host's Dev Updater is updated. +- With Trace on, do a few flicks, then press Copy in the render report -- + the input log that comes back is what to send back here. diff --git a/iris/build/outputs/apk/release/iris-bench-arm64.apk b/iris/build/outputs/apk/release/iris-bench-arm64.apk index abce3dd..e467c3b 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