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

Merged
whitlocktech merged 1 commits from docs/rust-phase-15 into main 2026-09-25 12:23:48 +00:00
Member

The plan for Android leg D, written before any code, as phase 14's was.

§31: five decisions, D121–D125, from the org lead on 2026-09-25.

  • D121: the phone draws the map itself. Coil loads the picture and a Compose Canvas draws the layers, with pinch and pan. The app gains no dependency. A WebView and map libraries were considered and rejected.
  • D122: a fifth tab on the server screen, between Online and Wipes, shown when the module declares map. ?tab=map opens it.
  • D123: "events" is two things.
    • A site-event marker opens the app's own event page on that run.
    • M13's event screens are walked against a real Rust run.
    • The web map is not changed.
  • D124: it polls every 10 s while the screen is resumed and the Map tab is selected.
  • D125: core's public calendar publishes runId on each run entry.
    • The public event page already publishes that id on every occurrence. The calendar was the one place that left it out.
    • Rehearsals and unlisted events stay absent, so their markers stay unlinked.
    • D125 corrects what D123 was asked on: the question assumed the calendar already carried the id.

The finding that shapes the build: map/live is projected per viewer on the server, and it reads bearer tokens as well as cookies. The app therefore has no layer gate of its own to get wrong: it draws what it is sent.

Also in this PR:

  • §31.1: facts, from the module, core and the app.
  • §31.2: what gets built:
    • website: one field and its spec.
    • Android-app: the tab, the frame, the canvas, the legend, the tap card, the run resolver, and a map state keyed on the signed-in account.
  • §31.3: a seven-step emulator walk.
  • §31.4: six readings nobody asked about, open to review before code.
  • Android plan: a new milestone, M17.

Once this merges, the build branches are feat/rust-phase-15-map in Android-app (from edge) and feat/public-calendar-run-id in website (from main). Module-Rust is not expected to change, and MODULE_API does not move.

  • AI-assisted: Claude Code (Claude Opus 5.5)

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

The plan for Android leg D, written before any code, as phase 14's was. **§31: five decisions, D121–D125, from the org lead on 2026-09-25.** - **D121: the phone draws the map itself.** Coil loads the picture and a Compose `Canvas` draws the layers, with pinch and pan. The app gains no dependency. A WebView and map libraries were considered and rejected. - **D122: a fifth tab on the server screen**, between Online and Wipes, shown when the module declares `map`. `?tab=map` opens it. - **D123: "events" is two things.** - A site-event marker opens the app's own event page on that run. - M13's event screens are walked against a real Rust run. - The web map is not changed. - **D124: it polls every 10 s** while the screen is resumed and the Map tab is selected. - **D125: core's public calendar publishes `runId`** on each run entry. - The public event page already publishes that id on every occurrence. The calendar was the one place that left it out. - Rehearsals and unlisted events stay absent, so their markers stay unlinked. - D125 corrects what D123 was asked on: the question assumed the calendar already carried the id. **The finding that shapes the build:** `map/live` is projected per viewer **on the server**, and it reads bearer tokens as well as cookies. The app therefore has no layer gate of its own to get wrong: it draws what it is sent. **Also in this PR:** - **§31.1: facts**, from the module, core and the app. - **§31.2: what gets built:** - **website:** one field and its spec. - **Android-app:** the tab, the frame, the canvas, the legend, the tap card, the run resolver, and a map state keyed on the signed-in account. - **§31.3: a seven-step emulator walk.** - **§31.4: six readings** nobody asked about, open to review before code. - **Android plan:** a new milestone, M17. Once this merges, the build branches are `feat/rust-phase-15-map` in Android-app (from `edge`) and `feat/public-calendar-run-id` in website (from `main`). Module-Rust is not expected to change, and `MODULE_API` does not move. - [x] AI-assisted: Claude Code (Claude Opus 5.5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-09-25 12:22:40 +00:00
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
whitlocktech merged commit a3fcc42a57 into main 2026-09-25 12:23:48 +00:00
whitlocktech deleted branch docs/rust-phase-15 2026-09-25 12:23:49 +00:00
Sign in to join this conversation.
No description provided.