- `.gitignore` said `index.html` unanchored, which also caught the Vite source page; a fresh clone could neither `dev` nor `build`. Anchored to `/index.html`, page added. - Removed GM_REMOTE (tools/remote/gm-browser.ps1 and the ssh/scp branch in browser.mjs): the Windows test machine is gone and the only flaky check that lived on it is closed (#37). - Removed `npm run preview`, undocumented and unused. - Comments: wrong number in collider.test.ts (250 → 200), the "declarations used to…" history in listItems.ts and friends, the 24 px/28 contradiction, section banners in nodes/index.ts, node-catalog.test.ts and api/index.php, name paraphrases, and the stale step numbers in tools/e2e/11-…23- from the old global count. - README: asset types include `animation`, kind order Number/Text/Boolean, tagged colour and texture items, 6/5 kinds, the `Texture` node, `./build.sh`, PROJECT_FORMAT_VERSION, and the file tree (kinds.ts, listItems.ts, propertyPorts.ts, Breadcrumb.ts, beads.ts, tools/assets/). - tests/helpers.ts takes the duplicated `findObject` and `sceneWithCamera`. Proof: ./check.sh 797 tests, full e2e ALL PASSED 633 checks against this bundle. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { spawn } from 'node:child_process';
|
|
|
|
const FLAGS = [
|
|
'--headless',
|
|
'--hide-scrollbars',
|
|
/**
|
|
* Measured (idle editor, 20 s): software WebGL 373% of a core at 8 fps, HD 630 via ANGLE/Vulkan 69% at
|
|
* 56 fps; no software fallback on purpose. `--use-angle=gl` and `--use-gl=egl` get no WebGL context at all.
|
|
*/
|
|
'--use-angle=vulkan',
|
|
'--ignore-gpu-blocklist',
|
|
'--enable-gpu',
|
|
'--enable-features=Vulkan',
|
|
// None of this serves a headless check, and its stderr was full of GCM sign-in retries.
|
|
'--disable-background-networking',
|
|
'--disable-sync',
|
|
'--disable-extensions',
|
|
'--no-first-run',
|
|
'--mute-audio',
|
|
];
|
|
|
|
/** Starts chromium with the CDP port open; `proc.stderr` carries its last words. */
|
|
export function launchBrowser({ port, width, height }) {
|
|
const proc = spawn(
|
|
'chromium',
|
|
// --no-sandbox: this container runs as root, where chromium refuses to start otherwise.
|
|
[
|
|
...FLAGS,
|
|
'--no-sandbox',
|
|
`--remote-debugging-port=${port}`,
|
|
`--window-size=${width},${height}`,
|
|
'about:blank',
|
|
],
|
|
{ stdio: ['ignore', 'ignore', 'pipe'] },
|
|
);
|
|
return { proc, stop: () => proc.kill('SIGTERM'), where: 'local chromium' };
|
|
}
|