docs/RUST.md: the work is done inline, not handed to subagents (Iris, 2026-09-08)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
irisandClaude Opus 5 committed 2026-09-08 13:31:02 -04:00
1 parent 476609e1d3
commit cdeb7b0857
1 file changed
+37 -35
+37 -35
View File
@@ -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 worth as much as the successes, because they are what stops the next
session spending an afternoon on them again. 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 Written on picking the branch up after a `/clear`, so the next session can
the next session can resume from here. P0 is delivered and Iris's phone resume from here. P0 is delivered and Iris's phone report v2 is in
report v2 is in (`docs/bench/iris-phone-v2-2026-09-06.md`); **P1 stays (`docs/bench/iris-phone-v2-2026-09-06.md`); **P1 stays gated on her
gated on her verdict**, so this pass works the P0 defects and the pure verdict**, so this pass works the P0 defects and the pure prerequisites in
prerequisites in this order. Each item is ticked here by the agent that this order. Each item is ticked here as it closes.
closes it.
### The transcript's edges (2026-09-07, e922b73 + d507ae4) ### 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`, `panic = "abort"`, `strip = true`, `lto = "fat"`, `codegen-units = 1`,
`opt-level = "s"`, with a comment naming the measured savings. `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 In order. Each is ticked here as it closes.
closes it.
**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] 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 - [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 the estimator in the "later" one (Lsq2, not Impulse -- see the box
below), and the catch in b87f5a5. **Not yet confirmed from the below), and the catch in b87f5a5. **Not yet confirmed from the
phone**, which is what would close it for Iris rather than for us. 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 - **Note, 2026-09-07 late**: the tree was found holding a non-compiling
non-compiling diff from two killed agents (catch-a-fling in diff, half-written (catch-a-fling in `sense.rs`/`selection.rs`; shaped
`sense.rs`/`selection.rs`; shaped masks in the render files). One masks in the render files). **2026-09-08**: both are closed below --
opus agent owns splitting and landing both (catch-a-fling first); report hygiene and the bench header landed in 7485d78 and b8ea723,
one sonnet agent owns report hygiene and the bench header in catch-a-fling in b87f5a5, and the shaped-mask diff was found
`bench_client.rs` and client-core's log ring. If both boxes below uncommitted with one failing test and finished inline. The tree is
are still open and nothing is running, that work was cut off again. clean and nothing is outstanding from it.
**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.
- [x] Rows at the transcript's top edge: culled too early in one state, - [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). 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 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) ## The port, in order (decided 2026-09-05)
Iris decided iris over Masonry (`DECISIONS.md`). This is the ordered plan 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 "decide technical questions yourself" instruction — a serious
user-facing tradeoff is not in play in the ordering itself, so it is not 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 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 access), and item 1's root cause (needs either the phone's next
Diagnostics-page report or a Mali trace). Diagnostics-page report or a Mali trace).
**Recorded but not fixed this pass** (a follow-up agent takes these, **Recorded but not fixed this pass** (held back to avoid colliding
to avoid colliding with this pass's `bench_client.rs`/`view.rs` with this pass's `bench_client.rs`/`view.rs` changes) -- see `IRIS_TODO.md`'s "From the phone, 2026-09-06":
changes) -- see `IRIS_TODO.md`'s "From the phone, 2026-09-06":
swiping has no momentum (stops exactly where the finger releases, swiping has no momentum (stops exactly where the finger releases,
unlike Compose's fling), and scrolling down sometimes jitters the unlike Compose's fling), and scrolling down sometimes jitters the
text. text.
@@ -6392,8 +6391,9 @@ device.
resize on this pass's emulator (no display keyboard exercised resize on this pass's emulator (no display keyboard exercised
end-to-end here); the reasoning is a direct code read plus the end-to-end here); the reasoning is a direct code read plus the
existing `resize` path already being surface-only, not a existing `resize` path already being surface-only, not a
screenshot diff -- **the next agent with emulator time should do screenshot diff -- **the before/after screenshot this box
the before/after screenshot this box originally asked for.** 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 **2. The blur.** Root cause: the P0 fix that made text the right
*size* (dividing the whole window into a "logical" space, then *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 drag arbitration into `sense.rs` behind a new `Drop` event: this
fix touches only `attr.rs` (new `press_track`/`on_press`) and fix touches only `attr.rs` (new `press_track`/`on_press`) and
`iris/src/widget/text/edit.rs` (the new `press_origin` field), not `iris/src/widget/text/edit.rs` (the new `press_origin` field), not
`sense.rs` itself, so it should merge cleanly, but the next agent `sense.rs` itself, so it should merge cleanly, but whoever comes
through here should check whether `Selector`/`Selectable`'s through here next should check whether `Selector`/`Selectable`'s
`Pressing`-frame delivery still arrives the way this code assumes `Pressing`-frame delivery still arrives the way this code assumes
once that lands. once that lands.
@@ -6858,9 +6858,8 @@ device.
feature parity for the transcript screen so that the test can be 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 more fair." So P0's "must pass before P1 starts" is lifted — the
phone bench continues alongside, and parity is what makes its phone bench continues alongside, and parity is what makes its
comparison fair. **Sub-order, decided by the design agent, by what comparison fair. **Sub-order, by what the bench fixture exercises
the bench fixture exercises and Compose already draws** (each is and Compose already draws** (tick and date each in place):
one agent; tick and date in place):
- [x] **P1a — markdown block rendering parity.** Done 2026-09-06. - [x] **P1a — markdown block rendering parity.** Done 2026-09-06.
Each top-level block is drawn in one of **three frames** Each top-level block is drawn in one of **three frames**
(`transcript-ui::markdown::BlockFrame`, mapped from (`transcript-ui::markdown::BlockFrame`, mapped from
@@ -7402,10 +7401,13 @@ device.
once more against a real `ai-server` (not the sandbox) on a real once more against a real `ai-server` (not the sandbox) on a real
phone, side by side with the Compose build until it holds. 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 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 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 (measure, do not read; fix the rig before accepting its limits; the