1 parent
d0606f46ec
commit
f3ba05d446
1 file changed
+32
-23
@@ -5,19 +5,21 @@ Not a decisions log; delete it when the extraction is done.
|
|||||||
|
|
||||||
## Where things stand
|
## Where things stand
|
||||||
|
|
||||||
Canonical `main` is **`00d2230`** (#13, wgpu 30). Eleven slices are in; two
|
Canonical `main` is **`32b1038`** (#14, SetSize). Twelve slices are in. One
|
||||||
pull requests are open and both are waiting on the owner, not on me:
|
pull request is open and one branch is pushed but unopened:
|
||||||
|
|
||||||
- **#12** `split/12-pointer-routing`, worktree `/home/bob/repos/iris-pr12`,
|
- **#12** `split/12-pointer-routing`, worktree `/home/bob/repos/iris-pr12`,
|
||||||
head `71ba372`. A widget takes only the input it answers to, and only where
|
head `f3fd941`. Reworked after the owner's review rejected the design: a
|
||||||
the cursor is. Self-reviewed under the process below, which found two
|
layer, not a widget, is what consumes input. `CursorSenses::consumes`
|
||||||
defects: consumption decided once a frame rather than per input kind, and a
|
decides only whether a layer stops the input reaching the one below, taking
|
||||||
press firing on a widget the cursor had just left. Six tests across layers;
|
nothing out of the cursor, and senses on one layer never block each other.
|
||||||
three of them fail on `main`.
|
Five tests; two fail on `main`. One question is out to her in the reply:
|
||||||
- **#14** `split/14-setsize`, worktree `/home/bob/repos/iris-pr14`, head
|
whether a widget the cursor has left should still be handed a press.
|
||||||
`f312db6`. The `Sized` widget becomes `SetSize`, so the prelude stops
|
- **`split/15-harness`**, worktree `/home/bob/repos/iris-pr15`, head
|
||||||
shadowing the marker trait and `?Sized` resolves again in any crate that
|
`d5efdd2`, pushed with no pull request opened. `Tasks` takes an
|
||||||
imports it. `tests/prelude_bounds.rs` fails to compile if that comes back.
|
`Arc<dyn WakeTaskQueue>` instead of an `Arc<Window>`, 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.
|
||||||
|
|
||||||
Check for a review before starting anything, and read the newest
|
Check for a review before starting anything, and read the newest
|
||||||
`submitted_at` rather than the first result:
|
`submitted_at` rather than the first result:
|
||||||
@@ -71,23 +73,29 @@ Other standing instructions from the owner:
|
|||||||
- Pull Iris out even if the Rust application switchover is not accepted. No
|
- Pull Iris out even if the Rust application switchover is not accepted. No
|
||||||
app, session, transcript, setup or server concepts in Iris; the dependency
|
app, session, transcript, setup or server concepts in Iris; the dependency
|
||||||
runs one way from `app/` to Iris.
|
runs one way from `app/` to Iris.
|
||||||
- **Small, coherent PRs.** The original extraction PR was too large to review.
|
- **Small, coherent PRs, one at a time.** The original extraction PR was too
|
||||||
A slice may be redone rather than transplanted, and need not remove every old
|
large to review. A slice may be redone rather than transplanted, and need not
|
||||||
feature. Independent PRs may be open at once so work continues during review.
|
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.
|
||||||
- Do not recreate an `ai` branch in canonical Iris; the fork is the boundary.
|
- 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
|
- **Never rewrite a pushed branch.** Follow review with additive commits, and
|
||||||
merge `upstream/main` in rather than rebasing when a branch falls behind.
|
merge `upstream/main` in rather than rebasing when a branch falls behind.
|
||||||
- Respond to each review finding with a fix or a concise explanation. Do not
|
- Respond to each review finding with a fix or a concise explanation. Do not
|
||||||
add a ceremonial comment when the changed code already answers it.
|
add a ceremonial comment when the changed code already answers it.
|
||||||
|
- **A test has to guard something that could break again.** The owner deleted
|
||||||
|
#14's test as pointless: the rename it guarded cannot regress. When a fix is
|
||||||
|
structural, the structure is the test.
|
||||||
|
|
||||||
## The next slice
|
## The next slice
|
||||||
|
|
||||||
**The headless rig and the test harness.** `scripts/run-headless.sh`,
|
**The headless rig.** `scripts/run-headless.sh`, `headless.conf` and
|
||||||
`headless.conf`, `rig-input` and `iris::harness` live in ai-app's iris
|
`rig-input` are still only in ai-app's iris submodule, so every rendering
|
||||||
submodule and not in canonical Iris. Until they are extracted, Iris can only
|
claim in canonical Iris is verified by hand from another checkout. The harness
|
||||||
be tested by what runs without a window, and every rendering claim is verified
|
half of this is done in `split/15-harness`; the rig is shell and a Wayland
|
||||||
by hand from another checkout. Extracting them is what lets later slices
|
replay binary and transplants nearly as-is, minus the `--phone` and `--dir`
|
||||||
arrive with tests instead of screenshots. Nothing else is claimed.
|
flags' ai-app specifics.
|
||||||
|
|
||||||
Still in the target, roughly in dependency order:
|
Still in the target, roughly in dependency order:
|
||||||
|
|
||||||
@@ -95,9 +103,9 @@ Still in the target, roughly in dependency order:
|
|||||||
(308 lines to 2313), plus `core/src/event/controller.rs`, `desktop/input.rs`,
|
(308 lines to 2313), plus `core/src/event/controller.rs`, `desktop/input.rs`,
|
||||||
`android/input.rs` and `sense_tests.rs`: pointer capture, drag slop and axis,
|
`android/input.rs` and `sense_tests.rs`: pointer capture, drag slop and axis,
|
||||||
platform cancellation, mask-aware hit testing, event timestamps. It replaces
|
platform cancellation, mask-aware hit testing, event timestamps. It replaces
|
||||||
the file #12 fixes, and **the archived copy carries the same per-frame
|
the file #12 fixes. The archive's own `consumes` is what #12 now implements,
|
||||||
consumption defect #12 removes** — extracting it as-is brings the bug back,
|
so that part transplants; `tests/pointer_routing.rs` is the acceptance
|
||||||
so `tests/pointer_routing.rs` is the acceptance criterion for that slice.
|
criterion for the slice.
|
||||||
- Widget draw size and measurement cleanup (source commit `6671194`).
|
- Widget draw size and measurement cleanup (source commit `6671194`).
|
||||||
- Retained span, scrolling and layout placement.
|
- Retained span, scrolling and layout placement.
|
||||||
- Retained paints, selection, overlays and shared UI runtime state.
|
- Retained paints, selection, overlays and shared UI runtime state.
|
||||||
@@ -262,5 +270,6 @@ argument for doing it next.
|
|||||||
| #10 | Text layout and rendering on Parley (`0f6a28b`) |
|
| #10 | Text layout and rendering on Parley (`0f6a28b`) |
|
||||||
| #11 | Atlas as an array texture, and the primitive rendering overhaul (`b234497`) |
|
| #11 | Atlas as an array texture, and the primitive rendering overhaul (`b234497`) |
|
||||||
| #13 | Build on wgpu 30 (`00d2230`) |
|
| #13 | Build on wgpu 30 (`00d2230`) |
|
||||||
|
| #14 | Rename the `Sized` widget to `SetSize` (`32b1038`) |
|
||||||
|
|
||||||
URLs are `https://git.arirex.me/iris/iris/pulls/{number}`.
|
URLs are `https://git.arirex.me/iris/iris/pulls/{number}`.
|
||||||
Reference in new issue
Block a user