iris: rebuild from 20303e0 -- typing, launch layout, fling, per-block streaming, doubled rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
fbafdc10a9
commit
95e25feec1
2 files changed
+37
No files matched your search
@@ -258,3 +258,40 @@ now for a specific, named reason rather than an unknown one.
|
|||||||
|
|
||||||
Full account, including what was tried and ruled out, in
|
Full account, including what was tried and ruled out, in
|
||||||
`docs/RUST.md`'s P0 box in the `ai-app-2` repo (`rustify` branch).
|
`docs/RUST.md`'s P0 box in the `ai-app-2` repo (`rustify` branch).
|
||||||
|
|
||||||
|
## 2026-09-06, evening: typing, launch layout, fling, per-block streaming, doubled rows
|
||||||
|
|
||||||
|
`iris-bench-arm64.apk` rebuilt from ai-app-2 commit `20303e0` (arm64 Vulkan release,
|
||||||
|
`iris/android-app/build-apk.sh release --abi arm64-v8a --features "transcript-screen bench"`).
|
||||||
|
Everything since the 02:07 build, in one entry -- two intermediate builds went to the wrong
|
||||||
|
folder and never reached this repo:
|
||||||
|
|
||||||
|
- **Launch layout**: the black third below the composer was the bench shell's own empty
|
||||||
|
report pane taking a third of the screen, not an inset bug. Sized to its content now.
|
||||||
|
- **Typing**: tapping the empty composer focused it with no caret, so every keystroke was
|
||||||
|
dropped. Fixed, with a regression test. Text should appear as you type.
|
||||||
|
- **Fling and swipe from the composer**: dragging is now iris's own `DragGesture` with pointer
|
||||||
|
capture. A fast swipe keeps moving after release; a pan starting on the grey bar is taken by
|
||||||
|
the list from the frame it commits.
|
||||||
|
- **Doubled rows** (the `Compacted:` row, and the earlier doubled header): a widget redrawn
|
||||||
|
through its ancestor while marked dirty never freed its previous primitives, so they were
|
||||||
|
drawn every frame for the life of the process. Fixed; a debug-build assertion now checks
|
||||||
|
every frame that no primitive outlives its widget.
|
||||||
|
- **Streaming re-lays out only the block the delta lands in.** A message row is a column of
|
||||||
|
one text widget per markdown block; a streamed delta replaces the last block only (one text
|
||||||
|
shape per delta into a 100-paragraph reply, by counter). Emulator stream-phase p99 went
|
||||||
|
343ms -> 137ms. **The stream phase on your phone is the number to look at** (it was p50
|
||||||
|
18.2ms vs Compose's 13.4ms before).
|
||||||
|
- **Selection is per block**: a drag selects within and across blocks; copy joins them. Whether
|
||||||
|
a block should be the selection unit is yours to judge (`docs/DECISIONS.md`, 2026-09-06).
|
||||||
|
- **The composer scrolls under a finger** when it overflows its six-line cap.
|
||||||
|
- Also fixed: every widget's tap target sat short of its drawing by its last move (from
|
||||||
|
launch); stale mask slots after a keyboard resize; a targeted-redraw abort on masked
|
||||||
|
widgets; the full-screen diagnostics overlay on every keyboard open is gone (logged only).
|
||||||
|
- **App-switch text loss** did not reproduce on the emulator, so this build logs one line per
|
||||||
|
surface event with glyph counts. If text still vanishes on returning to the app, please send
|
||||||
|
`adb logcat | grep -i iris` from around the return; `already_live=true` on the way back in
|
||||||
|
names the cause outright.
|
||||||
|
|
||||||
|
Not in this build: markdown block styling (headings, highlighted fences, lists, tables, links)
|
||||||
|
and tool-call cards, which landed on `rustify` after it -- next build.
|
||||||
Binary file not shown.
Reference in new issue
Block a user