From a853eb5a4deff603522b30ff8038be79ca0455f9 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Sat, 5 Sep 2026 12:18:26 -0400 Subject: [PATCH] DECISIONS.md: the summary file for choices made without Iris; RUST.md: note the two in-flight pieces Co-Authored-By: Claude Fable 5.1 --- DECISIONS.md | 30 ++++++++++++++++++++++++++++++ RUST.md | 8 ++++++++ 2 files changed, 38 insertions(+) create mode 100644 DECISIONS.md diff --git a/DECISIONS.md b/DECISIONS.md new file mode 100644 index 0000000..5dd9d3f --- /dev/null +++ b/DECISIONS.md @@ -0,0 +1,30 @@ +# Decisions taken for Iris to review + +Short list of design choices made by the design agent without asking, so +they can be judged and reversed later. Detail lives in RUST.md (and IRIS.md +for iris API changes); this file is only the summary. Newest first. Items +marked **DEFERRED** are ones the agent chose not to decide alone. + +## 2026-09-05 + +- **Touch drag on a transcript row follows Android's own rule**: a vertical + drag pans the list immediately; a stationary press held 500 ms starts a + text selection which further dragging extends; a horizontal drag while + something is already selected extends that selection without the wait. + One `DragArbiter` per list decides it (`iris/src/sense.rs`). Chosen over a + "text layer always wins" or "list always wins" rule because either loses + one of the two gestures a reader expects. +- **E4's desktop shape is a new `iris/desktop-app` crate**: a winit window + holding `transcript-ui`'s screen beside a session list, talking to a real + `ai-server` through `client-core`. It enrols by pasting the same + `aiapp://enroll?…` link a phone scans (`client-core::config::EnrolledServer`) + and keeps it owner-only under `$XDG_CONFIG_HOME/ai-app-desktop/`. The + pinned CA is a path given on the command line, not baked in. Chosen so + the phone and desktop share one enrolment format and no second one is + invented. +- **Order of remaining work**: finish the two in-flight pieces above, then + the transcript screen's Android integration and the `transcript-bench.sh` + comparison against Compose — the numbers the recommendation still lacks. +- **DEFERRED — whether to commit to iris over Masonry for `ai-app`.** Waits + on the bench numbers above; RUST.md's recommendation says what the + measurements must show. diff --git a/RUST.md b/RUST.md index c7ddc18..76078b0 100644 --- a/RUST.md +++ b/RUST.md @@ -36,6 +36,14 @@ session spending an afternoon on them again. ## Where things stand (2026-09-05) +- **In flight, 2026-09-05 (session cleared mid-work, picked up again):** + (a) the I5 touch-drag pan-vs-select gap, as a `DragArbiter` in + `iris/src/sense.rs` wired into `transcript-ui`'s selection; (b) E4 as a + new `iris/desktop-app` crate on winit, embedding `transcript-ui` via + `build_tree` beside a session list, with `client-core::config` holding the + enrolment. Design choices for both are summarised in `DECISIONS.md` at + the repo root, which is the file Iris reads for choices made without her. + Next after those: I5's Android integration and the bench numbers. - **Done**: E0 (toolchain), E1 (Masonry on android-view, which found the keyboard gap — now explained, see below), E2 (a transcript in Masonry, which found that Masonry has no touch-scroll on Android at all — see