diff --git a/README.md b/README.md index 2126b29..b3d6308 100644 --- a/README.md +++ b/README.md @@ -151,3 +151,50 @@ report -- "copy this and send it to Iris" via the existing Copy button. Full account, including what's still unverified on a real phone, in `docs/RUST.md`'s P0 box in the `ai-app-2` repo (`rustify` branch). + +## 2026-09-06, later still: keyboard-wipe fix, a density unit for crisp text, header background + +Iris's report on the previous rebuild, with screenshots: text now the +right size but **blurry**; opening the keyboard still **wipes every +glyph** (rectangles stay, only text disappears); the **header buttons +have nothing behind them and overlap the transcript text**. + +- **Keyboard wipe**: `surface_changed` fires on every surface resize, not + only a genuinely new surface -- showing the keyboard under + `adjustResize` is exactly such a resize. It was rebuilding the whole + renderer (a fresh, empty glyph atlas) every time, while the CPU-side + glyph cache kept coordinates into the *old* atlas. Fixed: reuse the + existing renderer's device/atlas/buffers and only reconfigure the + surface when one is already live. Confirmed on this checkout's own + emulator two ways (a forced display resize and an actual soft-keyboard + open) -- text stayed on screen both times. +- **Blur**: the previous fix's global "logical size" stretch (window + divided by density, then displayed stretched back up) rasterised each + glyph small and displayed it bigger than it had texels for. Fixed with + the density-independent length unit Iris asked for the same day (a new + `dp` alongside the existing physical-pixel and relative lengths, + resolved against the display's density at layout time) -- text now + rasterises at the display's real physical resolution. +- **Header**: only each button's own coloured rect painted anything, so + gaps between/around them showed the black clear colour one layer back, + and the row's reserved height did not match the (now density-correct) + transcript below it. Fixed with an opaque panel behind the whole row + and every header size moved onto the new `dp` unit. +- **New**: the bench build now auto-captures a diagnostics report ~500ms + after the keyboard opens (logged, copied to the clipboard, and shown in + a plain overlay with Copy/Close over the running app) -- so a report + can come back even if a keyboard-triggered regression is still + happening. + +**Not fully verified.** This build has not been run on Iris's actual +phone. It was verified end to end on this checkout's own emulator +(`run-bench.sh`, no crash, 24/24 swipes, 400/400 streamed events; +before/after screenshots for the two keyboard-resize tests above). While +verifying, a **separate, not-yet-fixed issue turned up**: after a +keyboard-triggered resize, the header row appeared to render a second +time, out of place, inside the transcript area, and a tap meant for the +message field below landed on a header button instead (a benchmark run +started unexpectedly). Not root-caused, and not confirmed to be caused by +this pass's changes rather than something pre-existing -- worth watching +for on the phone and reporting back if seen. Full account in +`docs/RUST.md`'s P0 box in the `ai-app-2` repo (`rustify` branch). diff --git a/iris/build/outputs/apk/release/iris-bench-arm64.apk b/iris/build/outputs/apk/release/iris-bench-arm64.apk index b8aa796..1f8d69d 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