Everything written this session that has not been through the device: rounds 43 to 48 (each patch adversarially verified, 43's transient-notice expectation fixed), a partial round 49, the pipeline scripts, the Android Auto design and the icon comparison mock. Also the two harness changes that were never A/B'd — adaptive waits, which may only shorten a declared wait and never lengthen it, and a ship that runs the mock walk and the deploy at the same time. The A/B and its 255-step baseline are in handoff/tools; main stays at what the phone has actually walked.
24 lines
1.1 KiB
JavaScript
24 lines
1.1 KiB
JavaScript
// Bring the wave-five snapshot in line with round 37's two corrections:
|
|
// the drag probe reads the state behind the module namespace, and the console
|
|
// trap ignores Chrome's vibrate intervention (synthetic pointer events).
|
|
const fs = require('fs');
|
|
const f = process.argv[process.argv.length - 1] + '/tests/mobile/smoke.mjs';
|
|
let s = fs.readFileSync(f, 'utf8');
|
|
let done = [];
|
|
|
|
if (s.includes('__ss.pls.current.items')) {
|
|
s = s.split('__ss.pls.current.items').join('__ss.pls.pls.current.items');
|
|
done.push('probe');
|
|
}
|
|
|
|
const oldLog = ` cdp.on["Log.entryAdded"] = (p) => { if (p.entry.level === "error") problems.push("LOG " + p.entry.text + " " + (p.entry.url || "")); };`;
|
|
const newLog = ` cdp.on["Log.entryAdded"] = (p) => {
|
|
if (p.entry.level !== "error") return;
|
|
if (/navigator\\.vibrate/.test(p.entry.text || "")) return;
|
|
problems.push("LOG " + p.entry.text + " " + (p.entry.url || ""));
|
|
};`;
|
|
if (s.includes(oldLog)) { s = s.replace(oldLog, () => newLog); done.push('console trap'); }
|
|
|
|
fs.writeFileSync(f, s);
|
|
console.log('realigned: ' + (done.join(', ') || 'nothing to do'));
|