Game guide · source of truth
Ledger

M0-05D

Phone Chrome and APK probes

← Ledger

partialstatus · M0
12✓ 1✗tests passed / failed
6.53Mtokens · 16 min
2evidence files · 3 kB

Evidence

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

Logs and data (2)

apk-logcat-probe-line.txt · 1 kB · open
M0-05D android-apk probe (fresh APK, 2026-10-08): adb logcat -d -v brief -s Unity:I. The ZOEN_PROBE entry arrives cut at
1023 bytes of message (line below is 1042 chars incl. the 19-char logcat prefix) and its stack trace is gone, so the JSON is unterminated.
Next line is the following log entry. Fix in M0-05E: split the probe into ZOEN_PROBE_PART i/n lines on Android.

I/Unity   (23293): ZOEN_PROBE {"schema":1,"platform":"Android","unity":"6000.3.25f1","device":{"model":"nubia NX709S","type":"Handheld","mobile":true,"os":"Android OS 13 / API-33 (TKQ1.221013.002/eng.nubia.20241207.182340)","osFamily":"Other","cpu":"ARM64 FP ASIMD AES","cores":8,"cpuMhz":6374,"memoryMb":17028,"soc":"SM8475"},"gpu":{"name":"Adreno (TM) 730","vendor":"Qualcomm","vendorId":20803,"deviceId":117637122,"api":"Vulkan","version":"Vulkan 1.1.0 [512.615.0 (0x80267000)]","memoryMb":17284,"shaderLevel":50,"multiThreaded":true,"maxTextureSize":16384,"maxCubemapSize":16384,"renderTargets":8,"compute":true,"instancing":true,"asyncCompute":false,"asyncReadback":true,"rayTracing":false,"msaaMax":4,"msaaTextures":1,"reversedZ":true,"hiddenSurfaceRemoval":true,"pipeline":"UniversalRenderPipelineAsset","srpBatcher":false},"textures":{"astc":true,"astcHdr":true,"etc2":true,"etc":true,"dxt":true,"bc45":true,"bc6h":true,"bc7":true},"renderTargets":{"hdr":true,"argbHalf":true,"argbFloat":true,"rgb111110":true,"argb2101010":true,"rHal
I/Unity   (23293): ZOEN_GM panel=on buttons=15
probe-android-apk-cut-line.json · 2 kB · open
{
  "target": "android-apk",
  "measured": "2026-10-08T08:38:32.983Z",
  "date": "2026-10-08",
  "tool": "tools/unity/probe.mjs",
  "pass": false,
  "problems": [
    "ZOEN_PROBE is not JSON: Unterminated string in JSON at position 1012 (line 1 column 1013)",
    "no ZOEN_PROBE object"
  ],
  "run": {
    "apk": "apps/client-unity/Builds/Android/zoen.apk",
    "component": "com.zoen.client/com.unity3d.player.UnityPlayerGameActivity",
    "installed": true
  },
  "probe": null,
  "boot": {
    "tier": "Mid",
    "tierSource": "BenchmarkCached",
    "graphicsApi": "Vulkan",
    "fpsTarget": 30,
    "displayHz": 60,
    "version": "0.1.0"
  },
  "host": {
    "source": "adb getprop (listed keys only), /proc/meminfo, dumpsys thermalservice/battery/display/package, wm size/density",
    "props": {
      "ro.product.manufacturer": "nubia",
      "ro.product.brand": "nubia",
      "ro.product.model": "NX709S",
      "ro.product.device": "NX709S-EEA",
      "ro.soc.manufacturer": "QTI",
      "ro.soc.model": "SM8475",
      "ro.board.platform": "taro",
      "ro.build.version.release": "13",
      "ro.build.version.sdk": "33",
      "ro.build.version.security_patch": "2024-11-01",
      "ro.product.cpu.abi": "arm64-v8a",
      "ro.opengles.version": "196610",
      "ro.hardware.vulkan": "adreno",
…

Tests

pass phone-chrome probe (Web build from M0-05C) · 8.5 s · raw log$ node tools/unity/probe.mjs phone-chrome --cdp http://127.0.0.1:9222
pass data tests (phone-chrome record, dotted getprop facts) · 108.4 s · raw log$ pnpm data:test
pass Android build (probe MSAA fix) · 489.3 s · raw log$ node tools/unity-run.mjs build android
fail android-apk probe (fresh APK) · 9.3 s · raw log$ node tools/unity/probe.mjs android-apk
pass probe-contract re-check of the three measured records · 0.2 s · raw log$ node tools/unity/probe-contract.mjs logs/evidence/M0-05C/probe-macos-app.json logs/evidence/M0-05C/probe-mac-chrome.json logs/evidence/M0-05C/probe-phone-chrome.json
pass data tests · 48.7 s · raw log$ pnpm data:test
pass zoen-sim cargo tests + clippy · 7.2 s · raw log$ pnpm sim:test
pass Zoen.Core dotnet build + xunit · 10.1 s · raw log$ pnpm core:test
pass docs lint + index · 1.1 s · raw log$ pnpm docs:lint
pass wiki typecheck · 8.4 s · raw log$ pnpm --filter @zoen/wiki typecheck
pass wiki production build · 37.9 s · raw log$ pnpm wiki:build
pass wiki e2e (changed specs) · 3.1 s · raw log$ pnpm --filter @zoen/wiki exec playwright test --only-changed
pass data tests (final CONTINUE_HERE size) · 25.8 s · raw log$ pnpm data:test

Notes

2026-10-08 08:44 UTC · Partial (context over 150k). Done: phone-chrome probe PASS (M0-05D-01; nubia NX709S, Chrome 154, WebGL 2 via ANGLE on Adreno 730, deviceMemory 8 GB cap, max texture 4096, Mid by platform default) recorded in ownerTestDevices[owner_android].probes (34 facts, task M0-05D, evidence logs/evidence/M0-05C/probe-phone-chrome.json, validatesLowReference false); owner_android.model now from the measured getprop facts; probe.ownerResults updated. at() in probe-contract.mjs resolves dotted getprop keys (host.props.ro.soc.model); device-probes test 6 uses the one probe folder (M0-05C, probe.mjs default --out) and checks owner_android.model against the measured model and SoC. Android rebuilt PASS (M0-05D-02, 489 s). FIRST ERROR: android-apk probe FAIL (M0-05D-04): Unity's Android player cut the ZOEN_PROBE logcat entry at 1023 bytes (JSON unterminated); evidence logs/evidence/M0-05D/apk-logcat-probe-line.txt and probe-android-apk-cut-line.json (moved out of the merged folder; summary rebuilt with three passing targets). probe-contract re-check PASS for the three records (M0-05D-05). verify --changed green (M0-05D-06..12), data 176/176 (M0-05D-13). adb: my reverse tcp:4350 and forward tcp:9222 removed. M0-05E: core ProbeJson.Lines(json, maxLineBytes) writing ZOEN_PROBE_PART i/n parts (UTF-8 budget ~800 B on Android, never cut at a space or surrogate) + xunit; CapabilityProbe.LogOnce logs parts on Android (LogOption.NoStacktrace); probeFromLines joins parts + hasProbe() for probe.mjs runApk waitFor; data test sample; rebuild Android; probe.mjs android-apk; probe-contract on all four; record android-apk; require all four targets in device-probes test 6; ownerResults and PERFORMANCE.md to measured.