Add a pre-boot "potato check" for the standalone editor: probe the device
against what the KiCad WASM tools actually require and warn (or block, with an
override) before the expensive WASM asset fetch.
- preflight/capabilities.ts: pure, unit-testable probe → CapabilityReport with
stable codes. Fatal: no SharedArrayBuffer/cross-origin-isolation, no
WebAssembly, no Workers+Atomics, no WebGL2. Warn: low deviceMemory, low JS
heap limit (Chromium), few cores, mobile, small screen. Thresholds in one
tunable const block.
- preflight/BlockingDialog.tsx: reusable modal blocking overlay (no dismiss
except via explicit action) — also for feature 0002's terminal dialog.
- preflight/PreflightGate.tsx: runs the probe once on mount; fatal → blocking
dialog with "Try anyway" (short-circuits the asset fetch); warnings →
dismissible advisory banner with localStorage "don't show again" keyed to the
exact warning codes.
- ToolPage: wrap WasmTool in PreflightGate so the gate runs before boot.
Optional micro-bench (phase 3) deferred per the spec.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>