From e212ed8d020592b291589ce07e34b66253e9363e Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Wed, 9 Sep 2026 16:23:38 -0400 Subject: [PATCH] Document separate benchmark publication repo --- .dev-updater.ron | 17 +++-------------- AGENTS.md | 19 ++++++++++++------- docs/RUST.md | 8 +++++++- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.dev-updater.ron b/.dev-updater.ron index 32d8673..bc42ad5 100644 --- a/.dev-updater.ron +++ b/.dev-updater.ron @@ -17,9 +17,9 @@ label: "AI Sessions", // three constants -- there is nothing here worth spawning a process for. resources: Ron("resources.ron"), -// The server and three independently installable app surfaces this checkout -// produces. They are built in parallel -- this list is the set, not a -// sequence, so nothing here should be read as an order. +// The two halves this checkout produces: the server a phone talks to, and +// the app that talks to it. They are built in parallel -- this list is the +// set, not a sequence, so nothing here should be read as an order. components: [ Server( name: "server", @@ -55,17 +55,6 @@ components: [ // the terminal the QR would be printed on. enroll: "server/enroll-link.sh", ), - // The deterministic Rust/iris transcript benchmark. Its release build - // is arm64 by default and signed with the same machine-local key as the - // Compose app. - // `cwd` scopes APK discovery to app-rust, while commands containing a - // slash resolve from the project root, per Dev Updater's command model. - Apk( - name: "iris-bench", - modes: ["release", "debug"], - build: "app-rust/build-apk.sh", - cwd: "app-rust", - ), // E5 (RUST.md): app/shellApp packaged by the xtask instead of Gradle // (cargo ndk -> javac -> d8 -> aapt2 -> zipalign -> apksigner), signed // with the same release key as "app" above so the two can install diff --git a/AGENTS.md b/AGENTS.md index 097b5b1..fb11ecf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -148,12 +148,14 @@ Module-by-module intent is in `docs/PLAN.md`'s "Backend layout". pans, flings or lays out a long list. - `.dev-updater.ron` — what Dev Updater builds here: the server (run as `service: Managed(…)`, supervised by Dev Updater's own implementation - rather than a script kept here), the Compose app, the Rust/iris benchmark - APK, and the shell APK, in parallel. The iris benchmark is its own - `iris-bench` component rooted at `app-rust/`; its release mode is the arm64 - phone build with the `transcript-screen bench` features. The file points at - `resources.ron`, which is *ours* rather than - Dev Updater's — it names + rather than a script kept here), the Compose app and the shell APK, in + parallel. **It does not publish either benchmark APK.** Phone benchmark + builds live in the separate `~/repos/ai-app-bench` repository: build here, + copy the verified artifact to that repo's `compose/` or `iris/` Gradle-shaped + path, then commit and push that repo. Dev Updater pulls the committed APK + from there; pushing `ai-app-2` alone cannot update its benchmark card. This + file points at + `resources.ron`, which is *ours* rather than Dev Updater's — it names `~/.local/share/ai-app` and `~/.config/ai-app` so the Uninstall dialog can offer them. Note what deleting the config directory takes with it: the CA under `certs`, which is the one-way door. **Stop** on the server card stops @@ -378,7 +380,10 @@ Each exists because something was invisible without it. build/install/tap/read-report cycle stops being retyped by hand each time (docs/RUST.md's P0 box). It passes `--no-default-features`, so `--features` alone decides what is in the `.so`; that is what keeps the - 1.9 MB bench fixture out of a build that did not ask for `bench`. + 1.9 MB bench fixture out of a build that did not ask for `bench`. A phone + build is published only by replacing + `~/repos/ai-app-bench/iris/build/outputs/apk/release/iris-bench-arm64.apk` + and pushing the **bench repository**, not this checkout. - **iris's three test layers** (docs/RUST.md's "Three test layers" has the commands and what each cannot answer): test at the cheapest one that can answer the question. `cd app-rust && cargo test` runs the real diff --git a/docs/RUST.md b/docs/RUST.md index 68ec9a7..fb6f1d2 100644 --- a/docs/RUST.md +++ b/docs/RUST.md @@ -788,7 +788,13 @@ device. no server, driving the same scroll loop and streaming phase, and printing the same report fields. AGENTS.md's "The rigs" is the current description; `app-rust/build-apk.sh` and `run-bench.sh` are - how it is run. + how it is run. The build source is this repository, but the Dev Updater + publication is the separate `~/repos/ai-app-bench` repository, whose + `iris-bench` component serves a committed APK with no build step. After + an arm64 release build, replace its + `iris/build/outputs/apk/release/iris-bench-arm64.apk` and push that + repository; adding the component here or pushing only `ai-app-2` is the + wrong delivery path. - [ ] **P1 — session screen parity.** **Started 2026-09-06, on Iris's word**: "just continue with the plan for now; try to move towards