DECK 4b probe record — the waterfall canvas paint path
probe: cache/scratch/deck/integrate/deck_4b_probe.mjs (parent-run, live page, c4 held, forced steps)

=== RUN 1 — BEFORE the fix (index.html == 0ff22c9c…, 2026-10-08) ===
Diagnosis: avDeckUiState.wfMode stayed "none" while the core's waterfall frame advanced
(rows 3→6→10, latestRow 2→5→9, cols 96, data Float32Array(9216)) and the canvas digest was
byte-identical (sumLum 1291008 · ink 0 · nonBlack 31488) — only the flat dark panel ever painted.
resolveCall {r:false, mode:"none"}; scope digest changed fine (340027 → 1236991); 0 page errors.

PROBE-RESULT {"ready":true,"engine":{"found":true,"state":"running","sampleRate":48000},"cardUp":true,"attached":true,"silence":{"state":{"stateFnType":"object","mode":"none","wfReady":true,"srcN":0,"newest":-1,"srcType":"null","sig":"NaN","dirty":false,"attached":true,"frames":6,"draws":6,"forced":4,"run":true,"freeze":false},"frame":{"found":true,"ready":true,"rows":3,"latestRow":2,"latestRowLen":null,"rowMs":120,"cols":96,"dataLen":9216,"dataType":"Float32Array","keys":["ready","rows","latestRow","rowMs","cols","data"]},"wfDigest":{"ok":true,"w":328,"h":96,"sumLum":1291008,"nonBlack":31488,"ink":0},"scopeDigest":{"ok":true,"w":328,"h":96,"sumLum":340027,"nonBlack":938,"ink":938}},"afterNote":{"state":{"stateFnType":"object","mode":"none","wfReady":true,"srcN":0,"newest":-1,"srcType":"null","sig":"NaN","dirty":false,"attached":true,"frames":12,"draws":12,"forced":10,"run":true,"freeze":false},"frame":{"found":true,"ready":true,"rows":6,"latestRow":5,"latestRowLen":null,"rowMs":120,"cols":96,"dataLen":9216,"dataType":"Float32Array","keys":["ready","rows","latestRow","rowMs","cols","data"]},"wfDigest":{"ok":true,"w":328,"h":96,"sumLum":1291008,"nonBlack":31488,"ink":0},"scopeDigest":{"ok":true,"w":328,"h":96,"sumLum":1236991,"nonBlack":2882,"ink":2882}},"afterMore":{"state":{"stateFnType":"object","mode":"none","wfReady":true,"srcN":0,"newest":-1,"srcType":"null","sig":"NaN","dirty":false,"attached":true,"frames":20,"draws":20,"forced":18,"run":true,"freeze":false},"frame":{"found":true,"ready":true,"rows":10,"latestRow":9,"latestRowLen":null,"rowMs":120,"cols":96,"dataLen":9216,"dataType":"Float32Array","keys":["ready","rows","latestRow","rowMs","cols","data"]},"wfDigest":{"ok":true,"w":328,"h":96,"sumLum":1291008,"nonBlack":31488,"ink":0}},"resolveCall":{"r":false,"mode":"none"},"pageErrors":[],"shaBefore":"0ff22c9c31cdb1a2e4f664fbf860d3d05cc532683091c793762f52f982aa42c5","shaAfter":"0ff22c9c31cdb1a2e4f664fbf860d3d05cc532683091c793762f52f982aa42c5","shaStable":true}

=== RUN 2 — AFTER the fix (index.html == 45cc39d7…, 2026-10-08) ===
Fix: src/av_deck_ui.js "flat" ring mode (counted-assert script cache/scratch/deck/integrate/_deck_4bfix.py,
8 edits) + harness flat coverage (238/238). wfMode "flat"; canvas advances with the rows
(sumLum 1291008 → 1295630 → 1305578 · ink 0 → 13 → 54); sig advances (3980803 … 10989425); 0 page errors.

PROBE-RESULT {"ready":true,"engine":{"found":true,"state":"running","sampleRate":48000},"cardUp":true,"attached":true,"silence":{"state":{"stateFnType":"object","mode":"flat","wfReady":true,"srcN":4,"newest":3,"srcType":"Float32Array","sig":3980803.096,"dirty":false,"attached":true,"frames":6,"draws":6,"forced":4,"run":true,"freeze":false},"frame":{"found":true,"ready":true,"rows":4,"latestRow":3,"latestRowLen":null,"rowMs":120,"cols":96,"dataLen":9216,"dataType":"Float32Array","keys":["ready","rows","latestRow","rowMs","cols","data"]},"wfDigest":{"ok":true,"w":328,"h":96,"sumLum":1291008,"nonBlack":31488,"ink":0},"scopeDigest":{"ok":true,"w":328,"h":96,"sumLum":340027,"nonBlack":938,"ink":938}},"afterNote":{"state":{"stateFnType":"object","mode":"flat","wfReady":true,"srcN":7,"newest":6,"srcType":"Float32Array","sig":6990396.919112488,"dirty":false,"attached":true,"frames":12,"draws":12,"forced":10,"run":true,"freeze":false},"frame":{"found":true,"ready":true,"rows":7,"latestRow":6,"latestRowLen":null,"rowMs":120,"cols":96,"dataLen":9216,"dataType":"Float32Array","keys":["ready","rows","latestRow","rowMs","cols","data"]},"wfDigest":{"ok":true,"w":328,"h":96,"sumLum":1295630,"nonBlack":31488,"ink":13},"scopeDigest":{"ok":true,"w":328,"h":96,"sumLum":1241920,"nonBlack":2888,"ink":2888}},"afterMore":{"state":{"stateFnType":"object","mode":"flat","wfReady":true,"srcN":11,"newest":10,"srcType":"Float32Array","sig":10989425.099520966,"dirty":false,"attached":true,"frames":20,"draws":20,"forced":18,"run":true,"freeze":false},"frame":{"found":true,"ready":true,"rows":11,"latestRow":10,"latestRowLen":null,"rowMs":120,"cols":96,"dataLen":9216,"dataType":"Float32Array","keys":["ready","rows","latestRow","rowMs","cols","data"]},"wfDigest":{"ok":true,"w":328,"h":96,"sumLum":1305578,"nonBlack":31488,"ink":54}},"resolveCall":{"r":false,"mode":"flat"},"pageErrors":[],"shaBefore":"45cc39d701a807c989ffb7a37a7522cdaed26a4639da72e959f3b0dc147a98ac","shaAfter":"45cc39d701a807c989ffb7a37a7522cdaed26a4639da72e959f3b0dc147a98ac","shaStable":true}

=== Gate evidence ===
Rig re-run on 45cc39d7: 34/34 PASS (verify/last-cdp_deck.log), 4b now:
  before {"ink":3,"inkSum":283,"sumLum":1292070} -> after {"ink":61,"inkSum":6485,"sumLum":1306417}
Smoke 22/22 on 45cc39d7.
