From 591128eef130884efab6ced119bbbb5ef7f203f6 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Mon, 7 Sep 2026 12:13:54 -0400 Subject: [PATCH] AGENTS.md: the phone app and the planned desktop app share widgets and styling; only screen layout differs Iris, 2026-09-07. The second central design point beside the driver rule, so a platform crate growing a widget or a colour reads as a defect to move. docs/RUST.md carries the detail. Co-Authored-By: Claude Fable 5.1 --- AGENTS.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index d6a2552..3481aa3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,6 +19,21 @@ child process, translated into one common event model.** A new session type is a new driver — never a session-type branch in shared code (routes, transcript, app screens). +The second one, for the Rust port on the `rustify` branch: **the phone app +and a planned desktop app share almost all of their code.** Screens, widgets, +folding, paging, config and the network client live in the shared crates +(`iris`, `client-core`, `transcript-ui`, `tabs-ui`); `android-app` and +`desktop-app` are thin entry points that own only what the platform forces +(JNI and the IME on one side, winit and argv on the other). The two +*layouts* will differ, to suit a phone's screen and a finger against a +desktop's screen and a mouse -- but the widgets a layout is made of (a +button, a text field, a list, a card) and the styling (colours, spacing, +type) are one implementation with no per-platform copy. Anything that could +work on both goes in a shared crate the first time it is written, and a +platform crate growing a widget or a colour is a defect to move, not a +convenience to keep. Iris said this on 2026-09-07; docs/RUST.md carries the +details. + ## Layout Mirrors `../dev-updater` deliberately: same stack (axum 0.8 +