Merge pull request 'docs(android): record M20 as built' (#373) from docs/m20-built into main

Reviewed-on: #373
This commit is contained in:
2026-10-23 06:51:15 +00:00

View File

@@ -1716,6 +1716,24 @@ push, and Play (M6–M8) follow the designed app.
`PlayerNotifications.jsx`, `coreTriggers.js`, `templateSeeds.js`), which belong to `website/`,
not the app.
**Built 2026-10-23, Android-app#58 into `edge`.** 578 strings, split as 253 core / 189 UO /
136 Rust, with the 14 core strings reworded as the table above says. Three outcomes beyond the
plan:
- **Moderation and the support queue are now gated on the shard capability** (org lead,
2026-10-23). The trace found that both drawer rows carried no capability, yet both call
`/admin/shard/*`, which is module-uo's admin mount. So a moderator on a Rust-only site saw
a UO form whose every action failed. They are UO screens now, and their strings are in
`strings_uo.xml`.
- **The guard declares `src/main/res` as a Test input** in `app/build.gradle.kts`. A
reworded string changes no class, so without that input Gradle left `testDebugUnitTest`
UP-TO-DATE and the guard did not run again.
- **Found, not fixed: every 503 is "the game server is offline".** `ErrorKind.SHARD_OFFLINE`
takes every 503, and core's `siteMode` middleware also answers 503 (body
`mode: "maintenance"`) to signed-out content reads. So during maintenance, News says
*The game server is offline right now*. It said *The shard is offline* before, which was
just as wrong. A maintenance error kind, read from that body, is the likely fix. It is
outside M20 and waits for a decision.
### Deferred (not a milestone)
- **Platform Teams in the app** — **deferred 2026-08-17, no app work scheduled.** The website is