diff --git a/docs/RUST.md b/docs/RUST.md index 51d2cfa..eb7683e 100644 --- a/docs/RUST.md +++ b/docs/RUST.md @@ -34,14 +34,13 @@ the emulator, not by Mesa" and "the present mode was not the cause" are worth as much as the successes, because they are what stops the next session spending an afternoon on them again. -## Where things stand (2026-09-06, orchestrator plan) +## Where things stand (2026-09-06) -Written by the design agent on picking the branch up after a `/clear`, so -the next session can resume from here. P0 is delivered and Iris's phone -report v2 is in (`docs/bench/iris-phone-v2-2026-09-06.md`); **P1 stays -gated on her verdict**, so this pass works the P0 defects and the pure -prerequisites in this order. Each item is ticked here by the agent that -closes it. +Written on picking the branch up after a `/clear`, so the next session can +resume from here. P0 is delivered and Iris's phone report v2 is in +(`docs/bench/iris-phone-v2-2026-09-06.md`); **P1 stays gated on her +verdict**, so this pass works the P0 defects and the pure prerequisites in +this order. Each item is ticked here as it closes. ### The transcript's edges (2026-09-07, e922b73 + d507ae4) @@ -603,10 +602,16 @@ Committed: `iris/android-app/Cargo.toml`'s `[profile.release]` now reads `panic = "abort"`, `strip = true`, `lto = "fat"`, `codegen-units = 1`, `opt-level = "s"`, with a comment naming the measured savings. -### Queue, 2026-09-07 (orchestrator) +### Queue, 2026-09-07 -In order; two builders at a time. Each is ticked here by the agent that -closes it. +In order. Each is ticked here as it closes. + +**2026-09-08: this work is no longer split across subagents.** Iris said +so on that date -- "I'm no longer using subagents for this. Please do the +work yourself" -- so the queue below is a list of work, not an assignment +to anybody, and nothing here should be read as a brief to hand out. The +entries that recorded who owned what are kept only where they explain why +a change landed the way it did. - [x] Test rig, layers 1 and 2 ("Three test layers" below), landed 2026-09-07. - [x] Fling parity with Compose, and the phone's keyboard push-up, with @@ -615,18 +620,13 @@ closes it. the estimator in the "later" one (Lsq2, not Impulse -- see the box below), and the catch in b87f5a5. **Not yet confirmed from the phone**, which is what would close it for Iris rather than for us. -- **Orchestrator note, 2026-09-07 late**: the tree was found holding a - non-compiling diff from two killed agents (catch-a-fling in - `sense.rs`/`selection.rs`; shaped masks in the render files). One - opus agent owns splitting and landing both (catch-a-fling first); - one sonnet agent owns report hygiene and the bench header in - `bench_client.rs` and client-core's log ring. If both boxes below - are still open and nothing is running, that work was cut off again. - **2026-09-08: it was cut off again** -- the sonnet agent's two boxes - had landed (7485d78, b8ea723), catch-a-fling had landed unticked - (b87f5a5), and the shaped-mask diff was left uncommitted in the tree - with one failing test. Both are closed below, by one session working - inline rather than by agents. Nothing is running now. +- **Note, 2026-09-07 late**: the tree was found holding a non-compiling + diff, half-written (catch-a-fling in `sense.rs`/`selection.rs`; shaped + masks in the render files). **2026-09-08**: both are closed below -- + report hygiene and the bench header landed in 7485d78 and b8ea723, + catch-a-fling in b87f5a5, and the shaped-mask diff was found + uncommitted with one failing test and finished inline. The tree is + clean and nothing is outstanding from it. - [x] Rows at the transcript's top edge: culled too early in one state, drawn through the header in the other (docs/IRIS_TODO.md, 2026-09-07). Done 2026-09-07, e922b73 + d507ae4; the root causes and the test names @@ -5367,7 +5367,7 @@ silently on real hardware. ## The port, in order (decided 2026-09-05) Iris decided iris over Masonry (`DECISIONS.md`). This is the ordered plan -for the rest of the app, decided by the design agent per the standing +for the rest of the app, decided here per Iris's standing "decide technical questions yourself" instruction — a serious user-facing tradeoff is not in play in the ordering itself, so it is not deferred to her. **Crate shape, decided here**: the screens live in one @@ -6348,9 +6348,8 @@ device. access), and item 1's root cause (needs either the phone's next Diagnostics-page report or a Mali trace). - **Recorded but not fixed this pass** (a follow-up agent takes these, - to avoid colliding with this pass's `bench_client.rs`/`view.rs` - changes) -- see `IRIS_TODO.md`'s "From the phone, 2026-09-06": + **Recorded but not fixed this pass** (held back to avoid colliding + with this pass's `bench_client.rs`/`view.rs` changes) -- see `IRIS_TODO.md`'s "From the phone, 2026-09-06": swiping has no momentum (stops exactly where the finger releases, unlike Compose's fling), and scrolling down sometimes jitters the text. @@ -6392,8 +6391,9 @@ device. resize on this pass's emulator (no display keyboard exercised end-to-end here); the reasoning is a direct code read plus the existing `resize` path already being surface-only, not a - screenshot diff -- **the next agent with emulator time should do - the before/after screenshot this box originally asked for.** + screenshot diff -- **the before/after screenshot this box + originally asked for is still owed, next time the emulator is + up.** **2. The blur.** Root cause: the P0 fix that made text the right *size* (dividing the whole window into a "logical" space, then @@ -6839,8 +6839,8 @@ device. drag arbitration into `sense.rs` behind a new `Drop` event: this fix touches only `attr.rs` (new `press_track`/`on_press`) and `iris/src/widget/text/edit.rs` (the new `press_origin` field), not - `sense.rs` itself, so it should merge cleanly, but the next agent - through here should check whether `Selector`/`Selectable`'s + `sense.rs` itself, so it should merge cleanly, but whoever comes + through here next should check whether `Selector`/`Selectable`'s `Pressing`-frame delivery still arrives the way this code assumes once that lands. @@ -6858,9 +6858,8 @@ device. feature parity for the transcript screen so that the test can be more fair." So P0's "must pass before P1 starts" is lifted — the phone bench continues alongside, and parity is what makes its - comparison fair. **Sub-order, decided by the design agent, by what - the bench fixture exercises and Compose already draws** (each is - one agent; tick and date in place): + comparison fair. **Sub-order, by what the bench fixture exercises + and Compose already draws** (tick and date each in place): - [x] **P1a — markdown block rendering parity.** Done 2026-09-06. Each top-level block is drawn in one of **three frames** (`transcript-ui::markdown::BlockFrame`, mapped from @@ -7402,10 +7401,13 @@ device. once more against a real `ai-server` (not the sandbox) on a real phone, side by side with the Compose build until it holds. -## For the next agent +## For the next session What to do when you pick this up, in order, so nothing here has to be -re-derived: +re-derived. **The work is done inline, not handed to subagents** — Iris +said so on 2026-09-08 ("I'm no longer using subagents for this. Please do +the work yourself"), so read the code, make the change, run the tests and +push, in the session that picked the task up. 1. Read this file, then `AGENTS.md` and `PLAN.md`. The rules there (measure, do not read; fix the rig before accepting its limits; the