both benches: caps everywhere, and the edit-card quadratic fixed (ai-app-2 afbc2ad)

The first build in this repo where the Compose APK is new too: it gains
the same caps iris has (tool input, tool output, messages) so the two
apps are still comparing renderers rather than policies, and it stops
wrapping raw text.

The iris side carries the apply_free fix -- one widget's redraw was
O(its own primitives squared), which is what made expanding a big edit
card lag -- and a LazySpan that clips itself instead of requiring a mask.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
irisandClaude Opus 5 committed 2026-09-08 23:01:34 -04:00
1 parent 427512da20
commit 5efa866727
3 files changed
+36 -1

No files matched your search

+36 -1
View File
@@ -11,7 +11,42 @@ no enrolment and no permissions.
The rest of this file is the runbook that was delivered with the APKs.
**2026-09-08 (newest): scrolling is one mechanism, and this build is
**2026-09-08 (newest): nothing on the transcript is unbounded any more,
and both APKs are new.** Rebuilt from ai-app-2 `afbc2ad`. This one has
things to look at, unlike the last.
**The edit-card lag you reported is fixed, and it was a framework bug.**
Not text layout: shaping and rasterising a 51,200-glyph block is 20ms, and
the frame that drew it took 1.37 seconds. Redrawing a widget frees every
primitive it owned and writes fresh ones, and finding each one's handle to
renumber was a scan of everything that widget drew -- so one redraw cost
O(its own glyph count squared). It is 29ms now, and linear. Expanding a
big card should feel immediate; if it still doesn't, that is a *different*
fault and worth saying so.
**Both apps now cap long things behind "Show all N lines".** Same rule and
the same numbers in both, so this comparison is still renderer against
renderer:
- a tool call's **input** -- 80 lines or 4 KiB. This is the one you asked
for; an `Edit`'s `old_string`/`new_string` used to arrive whole.
- a tool call's **output** -- same bound. iris already did this; the
Compose app didn't, and now does.
- a **message**, yours or the model's -- 200 lines or 16 KiB.
A reply still streaming is never capped, so watching one arrive is
unchanged. A message is cut between markdown blocks rather than through
one, so you should never see half a fence.
**Raw text no longer wraps in the Compose app** either -- a tool's
leftover input fields and its output pan sideways, the way the command
line already did. Both apps agree now.
Worth pressing: expand the biggest edit card you can find; press "Show
all" on a card and on a long message and check the transcript doesn't jump
under you; scroll a long output sideways.
**2026-09-08: scrolling is one mechanism, and this build is
mostly structure.** `iris-bench-arm64.apk` rebuilt from ai-app-2
`4fdabc3`, four commits on from the last one. **There is deliberately no
new feature here and little that should look different** -- it is the