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
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