waybetter/dev-tools/README.md
CRT 5c64f2f6f8 dev-tools: the generic development harnesses (perf probes, close check, tab and webview stress)
Moved from wayBetter for X; an app passes its own origin, process name, scripts and fixtures.
2026-09-30 14:48:06 +07:00

2.4 KiB

dev-tools

Development harnesses for a wayBetter app. They are not part of the npm package and nothing here ships in an app: they probe a build you start yourself. Each file's header says exactly what it does and what it never does (site pages are only read and reloaded, never clicked; nothing is uploaded; the owner's session is not touched unless the header says a disposable profile is needed).

An app calls them with its own values. wayBetter for X keeps thin wrappers (apps/desktop/scripts/*, verification/live-check/*) that pass X's origin, process name, theme commands, scripts and fixtures.

Tool Runs against What it measures or checks
perf-probe.mjs (runPerfProbe) headless Chromium, the app's injected scripts, the app's fixtures script evaluation time, fetch/XHR wrapper layers and overhead, Response clones, large JSON parses, observer / rAF / timer work of the scripts, long tasks
runtime-start-check.mjs (runtimeStartCheck) headless Chromium, the built page runtime, static fixtures the runtime installs at document start; every feature flag on, off, default without a console or page error
resize-perf.mjs a running release build with a WebView2 CDP port theme (first paint vs. theme applied), drag (divider drag: shell frames, tabs_sync, native lag), switch (click to tab visible), window (with window-resize.ps1)
window-resize.ps1 the app's window (Windows) a repeatable ~2 s resize workload; never activates the window
close-check.ps1 the app's release exe (Windows) the app exits on a plain taskkill /PID in every window state and on a simulated sign-out
native-tab-stress.mjs a running build with a CDP port opens shell start tabs, measures responsiveness, closes them
native-webview-stress.mjs a running build with a CDP port, a fresh WebView2 profile ramps native site tabs (6, 12, 24) and records process memory; stops at a memory limit
native-stress-watch.ps1 the app's process tree (Windows) independent CPU and memory telemetry while a stress run is going
native-stale-shortcut-check.mjs an isolated release build with a CDP port a stale tab id in a shortcut never targets the active tab

Requirements: Node 24+, and for the headless probes playwright in the app (the probe takes the app's chromium). The CDP tools need the app started with WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS=--remote-debugging-port=<port>.