M0-05D
Phone Chrome and APK probes
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
$ node tools/unity/probe.mjs phone-chrome --cdp http://127.0.0.1:9222$ 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$ pnpm --filter @zoen/wiki exec playwright test --only-changedNotes
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.
