From 8c10b5ecdb4f36cdd178449fcd43e33b201676b2 Mon Sep 17 00:00:00 2001 From: wtclaude Date: Fri, 23 Oct 2026 01:48:36 -0500 Subject: [PATCH] docs(android): record M20 as built Android-app#58 implements M20: the string split, the core rewording, the StringVocabularyTest guard and weapon names. It also records three things beyond the plan: - Moderation and the support queue are gated on the shard capability now (org lead's decision, 2026-10-23); - the guard declares src/main/res as a Test input, so Gradle can't skip it; - an open finding: every 503 renders as "the game server is offline", including core's maintenance-mode 503. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY --- android/PLAN.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/android/PLAN.md b/android/PLAN.md index 4afac85..8f02705 100644 --- a/android/PLAN.md +++ b/android/PLAN.md @@ -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