docs/RUST.md: the two 2026-09-06 fixes under P1a, with the emulator's first legible screenshot

This commit is contained in:
iris committed 2026-09-06 19:59:57 -04:00
1 parent f5b88932b4
commit 33e8ab83a2
2 files changed
+29

No files matched your search

+29
View File
@@ -5654,6 +5654,35 @@ device.
also what Iris's phone reports have shown all along. The fix also what Iris's phone reports have shown all along. The fix
matters for any device that falls back to GLES, which is why it is matters for any device that falls back to GLES, which is why it is
not just an emulator convenience. not just an emulator convenience.
- **Appearance testing on Android is back.** `build-apk.sh debug
--abi x86_64 --features "transcript-screen bench force-gles"` on
this checkout's AVD draws the transcript legibly --
`docs/bench/p1a-2026-09-06/iris-emulator-gles-fixed.png` -- so
P1b onwards can be checked here rather than only on the desktop
backend or Iris's phone.
**2026-09-06: the move slot has one owner.** IRIS_TODO's open
"a wrapped transcript row trips `reposition`'s debug assert" is
fixed rather than suppressed. `mov` accumulates a delta on a
widget's move slot and `reposition` overwrote it, and both
legitimately land on one widget in one frame: `List::place`'s
Bottom-known branch offers a row a same-size box that has *moved*
(`mov`), then corrects the placement inside it when the row's
cached height no longer matches what the row reports
(`reposition`) -- measured with a probe on the `.wrap(true)` repro:
`h=1604.7 height=548.7`, the row's own draw having updated
`active.size` without the list's height cache. The slot now means
`move_applied + repositioned` (both on `ActiveData`), so
`reposition` adds the move instead of dropping it and stays
idempotent, and the old assert is replaced by a `debug_assert_eq!`
that nothing *but* those two ever wrote the slot. Test:
`a_widget_moved_by_its_parent_and_then_placed_inside_it_lands_at_the_placement`
(`layout_tests.rs`), which draws the child at the offered position
rather than the placement without the fix. Checks: `cargo fmt --all
--check` clean, `cargo clippy --workspace --all-targets`
warning-free, `cargo test --workspace` 86 (iris, +1) + 13
(iris-core) + 31 (transcript-ui), the `.wrap(true)` repro drawing
correctly, and an emulator bench run with assertions live and no
abort (`2438 frames over 147.7s, p50 27.2ms`).
- [ ] **P1b — tool-call cards and grouping.** `ToolRows.kt`/ - [ ] **P1b — tool-call cards and grouping.** `ToolRows.kt`/
`ToolInput.kt`'s cards: a collapsed row per call with name `ToolInput.kt`'s cards: a collapsed row per call with name
Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB