From 9c85ea486451fa621505a9bd1e70bd47e5bcaa17 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Sun, 13 Sep 2026 20:44:46 -0400 Subject: [PATCH] Correct how the work is sequenced, and record #15 opened --- docs/IRIS_EXTRACTION_HANDOFF.md | 38 ++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/docs/IRIS_EXTRACTION_HANDOFF.md b/docs/IRIS_EXTRACTION_HANDOFF.md index c4c7e4b..f10090c 100644 --- a/docs/IRIS_EXTRACTION_HANDOFF.md +++ b/docs/IRIS_EXTRACTION_HANDOFF.md @@ -9,17 +9,17 @@ Canonical `main` is **`32b1038`** (#14, SetSize). Twelve slices are in. One pull request is open and one branch is pushed but unopened: - **#12** `split/12-pointer-routing`, worktree `/home/bob/repos/iris-pr12`, - head `f3fd941`. Reworked after the owner's review rejected the design: a - layer, not a widget, is what consumes input. `CursorSenses::consumes` - decides only whether a layer stops the input reaching the one below, taking - nothing out of the cursor, and senses on one layer never block each other. - Five tests; two fail on `main`. One question is out to her in the reply: - whether a widget the cursor has left should still be handed a press. -- **`split/15-harness`**, worktree `/home/bob/repos/iris-pr15`, head - `d5efdd2`, pushed with no pull request opened. `Tasks` takes an - `Arc` instead of an `Arc`, so `DefaultRsc` builds - without one, and `iris::harness` drives a ui with no surface. Six tests in - `tests/harness.rs`. Open it when #12 clears. + head `e53ce58`. Reworked twice after review: a layer, not a widget, is what + consumes input. `CursorSenses::consumes` decides only whether a layer stops + the input reaching the one below, and senses on one layer never block each + other. The vocabulary is `position_only`, not "momentary". Five tests; two + fail on `main`. **One question is out to her**: whether to replace + `registered` with a `consumed: &Cell` on `CursorData` that + `should_run` sets, which also removes the double match. +- **#15** `split/15-harness`, worktree `/home/bob/repos/iris-pr15`. `Tasks` + takes an `Arc` instead of an `Arc`, so + `DefaultRsc` builds without one, and `iris::harness` drives a ui with no + surface. Six tests in `tests/harness.rs`. Disjoint from #12. Check for a review before starting anything, and read the newest `submitted_at` rather than the first result: @@ -73,12 +73,16 @@ Other standing instructions from the owner: - Pull Iris out even if the Rust application switchover is not accepted. No app, session, transcript, setup or server concepts in Iris; the dependency runs one way from `app/` to Iris. -- **Small, coherent PRs, one at a time.** The original extraction PR was too - large to review. A slice may be redone rather than transplanted, and need not - remove every old feature. Do not open several at once to stay busy during a - review: on 2026-09-13 the owner asked for the work to go serially, most - fundamental first, so that code is written once against the version of the - framework that will actually exist. +- **Small, coherent PRs.** The original extraction PR was too large to review. + A slice may be redone rather than transplanted, and need not remove every old + feature. Non-conflicting pull requests may be open at once — disjoint path + sets, each branched from current `upstream/main` rather than stacked. The + owner reviews small ones as they arrive and only avoids having two *large* + ones in flight, which is one more reason to keep a slice small. +- **Order by dependency, largest reach first.** On 2026-09-13: *"do the large + reaching framework changes first so less has to be redone."* Pick the next + slice by how much sits on top of it, not by what is nearest ready, so each + piece of code is written once against the framework that will exist. - Do not recreate an `ai` branch in canonical Iris; the fork is the boundary. - **Never rewrite a pushed branch.** Follow review with additive commits, and merge `upstream/main` in rather than rebasing when a branch falls behind.