At 640×360 the mock's first shop card completes a merge; its detail opens in
the left slot and moves to the right one 20-40 ms later because the elite's
lit board tile lies under the left slot (screens/game.js dSide, DESIGN
§20.11). The check caught the left card only sometimes and then measured the
corner buttons against the right one. It now taps a card without a merge and
asserts the card stays left.
- puppeteer-core ^23.11.1 -> ^25.12.0 (dev only); npm audit: 7 high (basic-ftp via
@puppeteer/browsers / proxy-agent, extract-zip) -> 0; production audit stays clean
- puppeteer-core 25 is ESM-only and needs Node >= 22.12: the render / sim browser suites
load it with await import() instead of createRequire
- headless: 'new' -> headless: true (same new headless mode; 'new' is no longer a typed value)
- fieldview CPU throttle: page.emulateCPUThrottling() instead of the deprecated page.target() CDP session
- THIRD-PARTY-NOTICES version, DESIGN test note