RUST.md, DECISIONS.md: P0, the phone benchmark gate Iris asked for before P1

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
irisandClaude Fable 5.1 committed 2026-09-05 20:31:20 -04:00
1 parent 5b7dc0e4e2
commit bfe93c4188
2 files changed
+48

No files matched your search

+33
View File
@@ -3238,6 +3238,39 @@ AVD, `ui-trace` by accessibility name, GrapheneOS phone quirks, the
running any pass condition below that touches an emulator or a real
device.
- [ ] **P0 — the phone benchmark gate (asked for 2026-09-05; must pass
before P1 starts).** Iris runs both apps on her own phone and pastes
the reports back; the emulator's numbers are not a substitute.
Two halves, buildable independently:
- **Compose half** (`app/`): a `bench` build type (release
optimisations, `applicationIdSuffix ".bench"`, own label "AI
Sessions bench") whose session screen can open an embedded fixture
transcript from assets with no server, and a "Run benchmark"
control in the existing render-report place that programmatically
performs the fixed scroll loop (same distances and timings as
`transcript-bench.sh`, driven through the `LazyListState`), then a
streaming phase (append fixture events at 20/s for 20 s into the
same fold path a live SSE reply uses), then shows the report with
the existing copy button. The report adds process CPU time over
the run (`Process.getElapsedCpuTime`), peak RSS, and
`BatteryManager.BATTERY_PROPERTY_CURRENT_NOW` samples.
- **iris half** (`iris/android-app`, `transcript-screen` feature): the
same fixture embedded, the same scripted loop and streaming phase
driven through `List::scroll` and the fold, the same report fields
added to `FrameReport`'s line, shown on screen with a copy-to-
clipboard control (through the shell's Java side), arm64 release.
- **The fixture**: one synthetic transcript generated from
`app/ui-sandbox.sh`'s invented sessions (never a real one), at
least 3,000 events, with headings, code fences, links, tool calls
with kilobyte outputs, and a few images; committed once under
`app/bench-fixture/` and read by both apps.
- **Delivery**: `~/host/bench/` gets `iris-bench-arm64.apk`,
`compose-bench-arm64.apk`, and `README.md` saying how to run each
and what to paste back.
**Pass**: Iris's call from the two reports — iris within a reasonable
margin of Compose on p50, p99 and CPU time, no crash, no stutter she
can see. Fail stops the port.
- [ ] **P1 — session screen parity.** History paging backward (with the
page-boundary healing `client-core` does not have yet, below),
`TranscriptSource`-backed cache/server stitching, jump-to-latest,