Commit Graph
21 Commits
Author SHA1 Message Date
irisandClaude Opus 5 5efa866727 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>
2026-09-08 23:01:34 -04:00
iris 427512da20 iris bench: one ScrollController for every scroll area (ai-app-2 4fdabc3) 2026-09-08 22:00:58 -04:00
iris 91a7cae692 iris bench: a Scroll measures and places in one frame (ai-app-2 a003769) 2026-09-08 17:18:16 -04:00
iris 174ca31067 iris bench: a press only reaches what the pointer is on (ai-app-2 5e34dba)
Iris's report on the previous bench build: a vertical scroll locked to a
horizontal scroll area whose fling was still running, and the message
box clipping its text 12dp inside its own edge.
2026-09-08 16:31:12 -04:00
irisandClaude Opus 5 00784d924e iris bench: cancelled gestures, flinging on every axis, and rows that change height (ai-app-2 a2e5e58)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 15:33:16 -04:00
irisandClaude Opus 5 539097b1a5 iris bench: the right commit id for the icon-font build
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 14:43:34 -04:00
irisandClaude Opus 5 ea7de9f639 iris bench: icons from iris's own Nerd Fonts subset (ai-app-2 8dc1e05)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 14:43:26 -04:00
irisandClaude Opus 5 6fc50a7726 iris bench: shared mark textures, textures that survive a new device, and a devlog that shows panics (ai-app-2 341b7a5)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 14:28:38 -04:00
irisandClaude Opus 5 bd9ae635c3 iris bench: nested scroll, a drawn chevron, and a fling ticked by the frame loop
From ai-app-2 rustify 9c560e3. The three things Iris reported on
2026-09-08:

- A capture no longer strands everybody else's gesture. Panning a code
  fence sideways left the transcript's own gesture open at a stale
  origin, so the next tap anywhere panned the list by the distance
  between two unrelated fingers; and the fence itself never learned its
  gesture ended, so the next drag jumped. Vertical drags fall through to
  the list and horizontal ones stay in the fence, with a test each way.
- The benchmark's fling is ticked by the frame loop rather than by a
  16ms timer, so it runs at the display's own rate instead of 60Hz. The
  fling line in the report says ticked=frame-loop.
- The tool cards' open/closed marks are drawn triangles, not font
  codepoints the platform may not have (the empty box in her
  screenshot). A code fence also no longer opens scrolled to the end of
  its longest line.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 14:03:52 -04:00
irisandClaude Opus 5 a012ff92ec iris bench: catch a moving list, and code fences that clip on the curve
Rebuilt from ai-app-2 38bf630, arm64-v8a release, 9,651,616 bytes
(lib/arm64-v8a/libmain.so 7,518,840 -- the only .so in the APK, checked
rather than assumed, since the ABI trap below is what this build had to
dodge).

What is new for the phone, both unconfirmed there and both from Iris's
2026-09-07 night report:

- A finger put down on a moving list stops the fling at that sample and
  pans from it with no DRAG_SLOP wait (Compose's `startDragImmediately =
  isScrollInProgress`); a catch released without moving is not a tap.
- A mask carries a shape rather than a rectangle, so a code fence clips
  on its own rounded corners instead of an inner square, nested clips
  multiply their coverage, and touch obeys the same shape.

Also in it: the winit/Android renderer no longer aborts on a device
whose only usable adapter is GLES, and a frame report's `primitives=`
no longer counts undrawn clip shapes.

The build itself needed ai-app-2's `build-apk.sh` fix landing in the
same pass: Gradle's merged-native-libs cache survives `rm -rf jniLibs`,
so with an x86_64 lib left in this checkout from emulator work, the
"arm64" APK would have carried x86_64 and aborted on the phone with a
Vulkan error that has nothing to do with Vulkan.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 11:16:57 -04:00
iris bf2088b62b iris bench: clamped scrolling, faster flick start, platform fonts, enrollment, runtime log (ai-app-2 92985ba)
Rebuilt from ai-app-2 rustify commit 92985ba, against the last delivery
(b47eb73). APK 9,639,224 bytes / libmain.so 7,506,448 bytes, both smaller
from replacing bundled Noto with platform fonts plus a release-profile
tuning pass.
2026-09-07 21:12:39 -04:00
irisandClaude Fable 5.1 b47eb73ed4 iris bench: the fling curve was a straight line, and the keyboard was a targetSdk
ai-app-2 rustify 4274b8b. Iris's 2026-09-07 phone report on the previous
build: the resume glyph corruption is fixed (closed on her evidence), the
fling "seems to just be linear velocity with an abrupt stop", and the
keyboard still does not push anything up.

The fling was arithmetically linear: two halves of AOSP's spline build loop
were transposed, which made its two tables identical, and the lookup that
reads one against the other then reduces to the identity. Ported exactly
now from OverScroller.java and Compose's SplineBasedDecay.kt. The keyboard
was `targetSdk = 34` in the bench app's build.gradle against the Compose
app's 37; below 35 the window is resized for the IME and the reported ime
inset is therefore zero. Now 37, plus a WindowInsetsAnimation.Callback, and
the Diagnostics pane prints the insets and how many times the platform has
delivered any -- which is what her screenshot will settle, since the
targetSdk reading could not be measured on any device here.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 15:36:10 -04:00
irisandClaude Fable 5.1 2fd256bf20 iris bench: the 22:16 report's four items, from ai-app-2 ba0f2ea
Keyboard reopen and the IME's height are fixed and confirmed on the
emulator; the fling had three faults behind it (batched samples never
read, nothing advancing an animation between input events, and two wrong
constants that made a flick coast for 45 seconds once it finally moved)
and needs the phone to settle, with the logcat line to send named in the
README; the resume/texture fix has a test but no device that can
reproduce the state it fixes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 12:13:10 -04:00
irisandClaude Fable 5.1 95e25feec1 iris: rebuild from 20303e0 -- typing, launch layout, fling, per-block streaming, doubled rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 20:04:07 -04:00
irisandClaude Fable 5.1 fbafdc10a9 iris: rebuild with composing-text sync, tap-vs-swipe focus, composer rebuild
Composed text now syncs back to Gboard via updateSelection, a swipe over
the composer no longer opens the keyboard, and text survives leaving and
returning to the app. Composed text still not visible on screen -- a
separate, unfixed bug; see ai-app-2 docs/RUST.md's P0 box.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 02:07:50 -04:00
iris 502582e424 iris: bench v2 (fling/stream/type/keyboard), fling physics, jitter fix (2026-09-06, ai-app-2 2e3f4ad) 2026-09-06 01:25:12 -04:00
iris ad5a0c5b26 iris: keyboard-wipe fix, dp unit for crisp text, header background (2026-09-06) 2026-09-06 00:57:56 -04:00
irisandClaude Fable 5.1 a9232ac938 iris: rebuild with bundled fonts, content-scale fix, and a Diagnostics control
Iris's first real-phone report on the previous rebuild found the top
buttons and text rendering fine before any touch, but four defects on
interaction: every glyph vanishing on the first tap or scroll (not
root-caused this pass -- diagnostics added to catch it next report),
bold words rendering as blank gaps (fixed: bundled static Noto Sans/Noto
Sans Mono faces), text far too small (fixed: density-based scaling,
missing on both platforms before this), and the top row sitting under
the status bar (fixed: a new insets hook). Full account in ai-app-2's
docs/RUST.md P0 box.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:00:50 -04:00
irisandClaude Fable 5.1 b3868db468 compose: rebuild with the fling/stream/type/keyboard bench v2
Iris asked for a faster fling (v1's tween-based swipe barely moved the
list) plus typing and keyboard phases; see ai-app-2's docs/RUST.md P0
box, "Benchmark v2 (2026-09-06)" for the spec and the emulator smoke
run this build was checked against.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 23:40:42 -04:00
irisandClaude Fable 5.1 8eb87a2289 iris: rebuild with the phone-crash diagnostic and without force-gles
The bench APK aborted on Iris's phone in AndroidRenderer::new with only
a truncated "wgpu error: Validation Error". This build carries ai-app-2
commit 46246ea: a renderer-creation failure now reports the adapter,
its limits/downlevel flags, and wgpu's full error chain on screen and
in logcat instead of aborting, and build-apk.sh no longer forces the
GLES backend (force-gles was meant only for one emulator measurement,
but the delivered APK inherited it regardless of target -- the named
hypothesis for the crash, per ai-app-2's RUST.md P0 box).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 23:05:27 -04:00
iris 5d7dee5d1f The two P0 benchmark APKs with a Dev Updater config 2026-09-05 22:33:09 -04:00