diff --git a/docs/RUST.md b/docs/RUST.md index d60260a..6bfa894 100644 --- a/docs/RUST.md +++ b/docs/RUST.md @@ -4509,12 +4509,57 @@ device. warnings`, zero beyond the pre-existing `tabs-ui` unused-dependency and wgpu future-incompat notices), `cargo test --workspace` (all passing), `cargo ndk -t arm64-v8a check`/`clippy` for both the - `transcript-screen bench` feature set. **Not verified this pass**: - an actual emulator run of `run-bench.sh`, a forced-resize - before/after screenshot for the keyboard fix, or anything on Iris's - real phone -- next agent with emulator/phone time should confirm - all three and the two-density crispness check IRIS_TODO.md's unit - item asks for. + `transcript-screen bench` feature set. + + **Then run on this checkout's own emulator** (x86_64 debug, + `--features "transcript-screen force-gles bench"` -- this AVD has no + Vulkan adapter under a plain `-gpu host` boot, matching every prior + emulator finding in this file): `run-bench.sh` end to end, no crash, + `frames=534 janky%=79.03 ... cpu_p50=1.3ms`, 24/24 swipes, 400/400 + streamed events -- unchanged in shape from prior readings, so the + diff cost nothing on the success path. **Header background**: + screenshot confirms the `HEADER_SURFACE` panel now sits behind all + three buttons (`/tmp/bench-after-run.png` this pass). **Keyboard + wipe**: forced a real `surface_changed` two ways -- `adb shell wm + size 1080x1900` (screenshot before/after, text intact) and actually + opening the soft keyboard via `settings put secure + show_ime_with_hard_keyboard 1` + tapping the message field + (ui-trace confirmed a real resize, elements moved -547px; keyboard + visible in the screenshot, text still fully rendered, not wiped). + Both are real evidence the reuse-renderer fix works, though neither + is the literal before/after diff this box originally asked for -- + **still worth a deliberate side-by-side screenshot pair in a future + pass.** + + **Found during this same verification, not fixed, needs a follow-up + pass**: after the keyboard-triggered resize, the top button row + appeared to render a **second time**, well below its real position, + inside the transcript's scroll area (same colours/text, unmistakably + the same three buttons) -- and a tap aimed at the composer's + "Message" field landed on "Run benchmark" instead (a second + benchmark run started, visible in logcat as two `iris bench report:` + lines from one session). Only seen after a resize with the keyboard + genuinely open; the plain `wm size` resize screenshot pair did not + show it, nor did the fresh-install screenshot before either resize. + **Not root-caused this pass** -- time ran out before isolating + whether this is the `Span::DOWN` two-phase draw (LAYOUT.md's + provisional-then-real placement) leaving a phase-1 primitive + retained somewhere it should have been moved from, something + specific to the keyboard's `on_insets_changed` rebuild racing a + redraw, or unrelated to this pass's changes entirely (not verified + against a build predating this session's commits, so do not treat + "caused by this pass" as established -- MACHINE.md's pinned rule + about not attributing without measuring applies here too). Also + noteworthy: `capture_keyboard_diagnostics` never fired in this + session (no "iris keyboard diagnostics" log line) despite the + keyboard visibly opening -- `on_insets_changed`'s `ime_bottom` may + not be populated the way expected on this emulator/API level, or + the duplicate-row state above interfered; **also needs a follow-up + pass** before relying on the auto-capture on a real phone. + + **Not verified this pass**: anything on Iris's real phone, the + two-density crispness check IRIS_TODO.md's unit item asks for, and + the two open items just above. - [ ] **P1 — session screen parity.** History paging backward (with the page-boundary healing `client-core` does not have yet, below),