Game guide · source of truth
Ledger

M0-04D

Android APK and phone-Chrome smokes for tier rules

← Ledger

donestatus · M0
10✓ tests passed / failed
7.01Mtokens · 11 min
8evidence files · 2.0 MB

Evidence

From logs/evidence/M0-04D/. Click a thumbnail for the full image.

Images (7)

android-overlay-cycle-sheet.jpg
android-overlay-cycle-sheet.jpg · 60 kB
android-overlay-0-mid.png
android-overlay-0-mid.png · 263 kB
android-overlay-1-high.png
android-overlay-1-high.png · 258 kB
android-overlay-2-low.png
android-overlay-2-low.png · 257 kB
android-overlay-3-mid.png
android-overlay-3-mid.png · 265 kB
android-overlay-4-high.png
android-overlay-4-high.png · 256 kB
phone-chrome-overlay.png
phone-chrome-overlay.png · 595 kB

Logs and data (1)

android-overlay-cycle.json · 2 kB · open
{
  "finished": "2026-10-07T23:42:08.164Z",
  "start": "Mid",
  "cycle": [
    "Low",
    "Mid",
    "High"
  ],
  "bootCycle": [
    "Low",
    "Mid",
    "High"
  ],
  "expected": [
    "High",
    "Low",
    "Mid",
    "High"
  ],
  "observed": [
    "High",
    "Low",
    "Mid",
    "High"
  ],
  "fps": [
    "tier=Mid api=Vulkan target=30 fps=29.8 avgMs=33.52 p50Ms=33.19 p95Ms=33.20 p99Ms=34.23 maxMs=83.26 frames=150 logErrors=0 logWarnings=0",
    "tier=High api=Vulkan target=60 fps=60.3 avgMs=16.59 p50Ms=16.59 p95Ms=16.60 p99Ms=16.61 maxMs=16.61 frames=56 logErrors=0 logWarnings=0",
    "tier=High api=Vulkan target=60 fps=60.3 avgMs=16.59 p50Ms=16.60 p95Ms=16.60 p99Ms=16.60 maxMs=17.10 frames=240 logErrors=0 logWarnings=0",
    "tier=Low api=Vulkan target=30 fps=29.9 avgMs=33.48 p50Ms=33.19 p95Ms=33.20 p99Ms=34.21 maxMs=74.89 frames=142 logErrors=0 logWarnings=0",
    "tier=Mid api=Vulkan target=30 fps=29.6 avgMs=33.79 p50Ms=33.18 p95Ms=33.19 p99Ms=58.22 maxMs=75.16 frames=109 logErrors=0 logWarnings=0",
    "tier=High api=Vulkan target=60 fps=59.5 avgMs=16.81 p50Ms=16.59 p95Ms=16.67 p99Ms=17.13 maxMs=50.23 frames=155 logErrors=0 logWarnings=0"
  ],
  "screenshots": [
    "logs/evidence/M0-04D/android-overlay-0-mid.png",
    "logs/evidence/M0-04D/android-overlay-1-high.png",
    "logs/evidence/M0-04D/android-overlay-2-low.png",
    "logs/evidence/M0-04D/android-overlay-3-mid.png",
    "logs/evidence/M0-04D/android-overlay-4-high.png"
  ],
…

Tests

pass android smoke · 90.0 s · raw log$ node tools/unity/android-smoke.mjs --out logs/evidence/M0-04C
pass phone chrome web smoke · 66.8 s · raw log$ node tools/unity/web-smoke.mjs --label phone-chrome --cdp http://127.0.0.1:9222 --out logs/evidence/M0-04C
pass tier table with Android and phone-Chrome rows · 0.0 s · raw log$ node tools/unity/tier-table.mjs
pass android overlay cycle stops at High · 39.1 s · raw log$ node tools/unity/android-overlay-cycle.mjs
pass tier table shows the benchmark pick · 0.0 s · raw log$ node tools/unity/tier-table.mjs
pass data tests · 6.5 s · raw log$ pnpm data:test
pass docs lint + index · 0.2 s · raw log$ pnpm docs:lint
pass wiki typecheck · 5.2 s · raw log$ pnpm --filter @zoen/wiki typecheck
pass wiki production build · 10.2 s · raw log$ pnpm wiki:build
pass wiki e2e (changed specs) · 0.7 s · raw log$ pnpm --filter @zoen/wiki exec playwright test --only-changed

Notes

2026-10-07 23:44 UTC · No rebuild (generated Zoen_TierRules.asset matches feel-quality.json tierSelection). Android smoke 4/4 on NX709S (SM8475/Adreno 730, Android 13, Vulkan, 60 Hz), APK 31.7 MB from M0-04C: default Mid by benchmark (ZOEN_PICK Mid p95 33.22 ms) 30.1 fps; Low 30.1; High 60.3; Ultra 60.3 by --es zoen-tier only; boot cycle Low/Mid/High; 0 app E/F, logErrors 0, platformNoise 31/31/31/40, list unchanged. New tools/unity/android-overlay-cycle.mjs: overlay taps Mid>High>Low>Mid>High, never Ultra (logs/evidence/M0-04D/android-overlay-*.png, android-overlay-cycle-sheet.jpg, android-overlay-cycle.json). Phone Chrome 154 web smoke 4/4, 0 console errors: default Mid (deviceMemory 8, 8 cores) 30.0 fps, Low 30.1, Ultra refused, low-end deviceMemory 2 > Low (WebLowEnd); matches tier-expect. Phone screen capture logs/evidence/M0-04D/phone-chrome-overlay.png. tier-defaults.txt has 16 rows (macOS, Android, Mac and phone Chrome); tier-table.mjs now shows the benchmark pick as source. web-smoke.mjs serves the build itself (serve-web.mjs only for the phone capture, stopped; adb reverse/forward removed; ADB=~/Library/Android/sdk/platform-tools/adb). JS_FileSystem_Sync warning: Unity framework _JS_FileSystem_Sync warns once per page unless config.autoSyncPersistentDataPath; since M0-04C TierRuntime.Apply calls SetQualityLevel on every boot and Unity flushes PlayerPrefs (before, only ?tier=low loads warned). Unity's own, harmless, not changed; opt-in needs a custom WebGL template (UNITY_TOOLKIT.md).