diff --git a/scripts/win32_input_matrix_probe.cjs b/scripts/win32_input_matrix_probe.cjs new file mode 100644 index 0000000..9300c9b --- /dev/null +++ b/scripts/win32_input_matrix_probe.cjs @@ -0,0 +1,16 @@ +// Probe side of scripts/win32_input_matrix.ps1 — runs as the PTY child inside +// Nebula, dumps every stdin chunk as hex. The driver injects a fixed key +// matrix via PostMessage and asserts the concatenated byte sequence against a +// recorded baseline. 'q' (0x71) terminates. +const fs = require('fs'); +const out = process.argv[2] || 'D:\\temp_build\\nebula\\.tmp_win32_matrix.log'; +const t0 = Date.now(); +const log = (s) => fs.appendFileSync(out, `${((Date.now() - t0) / 1000).toFixed(1)}s ${s}\n`); +fs.writeFileSync(out, `matrix-probe ready node=${process.version} isTTY=${process.stdin.isTTY}\n`); +process.stdin.setRawMode(true); +process.stdin.resume(); +process.stdin.on('data', (b) => { + log(`rx ${b.toString('hex')}`); + if (b.includes(0x71)) { log('end'); process.exit(0); } +}); +setTimeout(() => { log('timeout'); process.exit(0); }, 90000);