docs(rust): phase 15 plan of record — the map and events on a phone (PLAN.md §31)

Android leg D. D121-D125: the map drawn natively in Compose as a fifth
tab gated on `map`, polled every 10 s; a site-event marker opening the
app's own event page, which needs runId on core's public calendar
entries; and M13 walked against a Rust run. Android plan gains M17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-09-25 07:22:19 -05:00
parent f28a098e95
commit ed4d9f52d3
2 changed files with 202 additions and 1 deletions

View File

@@ -1579,6 +1579,26 @@ push, and Play (M6–M8) follow the designed app.
pins it), and the lock-screen rendering (the emulator has no screen lock; the public version was
read back from `dumpsys notification`).
18. **M17 — the Rust map and events on a phone** (post-v1; planned 2026-09-25). `module-rust`
phase 15, R10's leg D. **Design of record:
[`../modules/rust/PLAN.md`](../modules/rust/PLAN.md) §31**, with its five decisions
(D121–D125).
- **The map is a fifth tab on the Rust server screen**, between Online and Wipes, shown when the
module declares `map`. It is drawn natively: Coil loads the picture and a Compose `Canvas`
draws the layers, with pinch and pan. The app gains no dependency.
- **The layer gates are the server's.** `map/live` is projected per viewer on the server, and a
layer the viewer may not see is absent from the answer. The app draws what it is sent, and it
lists each missing layer with who can see it.
- **It polls every 10 seconds** while resumed and on the tab. The other tabs keep 20.
- **A site-event marker opens the app's own event page on its run.** That needs `runId` on
core's public calendar entries (D125, a website change). A rehearsal's or an unlisted event's
marker stays unlinked.
- **M13 is walked against a Rust run** for the first time: participant names from the module's
meta, fractional scores, *My events*.
Excluded, as M14 excluded it: the admin Map card, which is operator configuration.
### Deferred (not a milestone)
- **Platform Teams in the app** — **deferred 2026-08-17, no app work scheduled.** The website is