Viktor Vaczi
3f09a46ff5
jspi: migration phases 0-7 — build knob, scheduler shim, test successor suite
Toolchain: emsdk 6.0.6 (versions.sh; cache-hash keys on it). Build knob
PCBJAM_ASYNC_BACKEND=jspi|asyncify: build-kicad-target.sh links editors with
-sJSPI + -sJSPI_EXPORTS=@scripts/common/jspi-exports.txt + --pre-js
jspi-scheduler.js (no DYNCALLS, no post-link asyncify pipeline); wx build
stamps the backend and forces clean on flip or unknown provenance;
docker/build.sh passes the knob, seeds the emscripten ports cache from the
volume every launch, jspi postprocess = patch-env-shim only.
scripts/common/shims/jspi-scheduler.js: the JSPI successor scheduler —
token-wait registry, resume turnstile (one armed resume between engine
re-entries, SP swaps only at microtask boundaries), green-region spill
stacks (16-aligned tops), S1 embind mutator FIFO lane + parker wraps, S6
shutdown, libctx integration hooks (suspend/end/quarantine + g_current
arm/clear), SuspendError attributor, lost-wake + stuck-window watchdogs,
__wxWaitDump observability.
Embind: PARKER registrations get emscripten::async() under PCBJAM_JSPI
(wasm/bindings/pcbjam_async_policy.h). nanosleep yields route via the shim.
Tests: tests/asyncify -> tests/jspi successor suite (jspi-stack red/green
shadow-stack battery, jspi-coroutine MiniCoro harness, suspend-races
semantic scenarios + __wxWaitDump books coherence); projects jspi-firefox/
jspi-chrome (asyncify-webkit retired — no JSPI in WebKit); unconditional
Firefox JSPI pref; guard-beacons -> wait-beacons (+wxScheduler/libctxJspi
families); Makefile.wasm links test apps against JSPI with the shim as a
tracked link prerequisite.
Web: WasmTool setRo await + __wxWaitDump forensics, open-flow contained
promise, scheduler-shim.test.ts retargeted (8 green).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NDeBaKKhQztd8KiVtHuyXr
|
2026-08-13 07:06:24 +02:00 |
| .. |
|
utils
|
jspi: migration phases 0-7 — build knob, scheduler shim, test successor suite
|
2026-08-13 07:06:24 +02:00 |
|
3d-viewer-deadlock.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
3d-viewer-models.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
3d-viewer.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
appearance.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
calculator.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
collab-load-fuzz.spec.ts
|
design-b D-1b: delete the legacy handlesleep runtime from the injector
|
2026-08-10 10:14:14 +02:00 |
|
collab-undo.spec.ts
|
feat(collab): local-ops-only undo — remote applies skip the undo stack (ysync miss 09)
|
2026-07-08 11:09:26 +02:00 |
|
contextmenu-scrollbar-pcbnew.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
contextmenu-scrollbar.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
dark-mode.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
drift-trio-fuzz.spec.ts
|
fix(drift-trio): pin fiber slot across asyncify parks (#10b layer 1)
|
2026-07-21 12:45:51 +02:00 |
|
drift-trio-scenarios.spec.ts
|
test(drift): quarantine the whole S4 conflict class — three distinct steps diverge
|
2026-08-01 23:12:31 +02:00 |
|
drift-trio.spec.ts
|
feat(drift-trio): phase B — action-catalog hooks + duplicate/lock wire fixes
|
2026-07-21 10:37:37 +02:00 |
|
eeschema-collab.spec.ts
|
feat: adopt shared wasm wire schemas; resurrect collab e2e bundle (ysync 0008 A)
|
2026-06-12 14:05:40 +02:00 |
|
eeschema-crosshair.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
eeschema-load.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
eeschema-perf.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
eeschema-sim.spec.ts
|
fix(wasm): re-land eeschema-switch nav from 3dcfea5e45 + de-flake sim run-tool poll
|
2026-07-22 10:40:55 +02:00 |
|
eeschema-subschema.spec.ts
|
feat(eeschema): hierarchical subschema collaboration — per-sheet rooms, lazy seed, save flow, embind + e2e
|
2026-06-17 17:55:30 +02:00 |
|
eeschema-ui.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
eeschema-url-regex.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
eeschema.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
fiber-resume-park.spec.ts
|
test(kicad): poisoned-attribution lever — the laundering scenario, red/green
|
2026-08-01 10:05:42 +02:00 |
|
fixtures.ts
|
eeschema simulator: lazy ngspice_service worker — static sharedspice (XSPICE registry + CIDER), init_dll ifdef, e2e both engines
|
2026-07-19 15:59:21 +02:00 |
|
footprint-chooser-close.spec.ts
|
jspi: migration phases 0-7 — build knob, scheduler shim, test successor suite
|
2026-08-13 07:06:24 +02:00 |
|
frame-runtime.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
gerbview-print.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
gerbview.spec.ts
|
fix(load): close the dispatch-interlock hole at open + open gerbers from a project route
|
2026-07-30 19:08:57 +02:00 |
|
import-settings-modal-stack.spec.ts
|
test(pcbnew): e2e repro for stacked-modal click routing + wxwidgets barrier
|
2026-07-17 16:53:34 +02:00 |
|
items-bridge.spec.ts
|
feat: v2 per-item s-expr collab bridge in all three tools (ysync 0008 Stage C)
|
2026-06-12 14:05:40 +02:00 |
|
load-pcb-probe.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
load-pcb.spec.ts
|
design-b D-1b: delete the legacy handlesleep runtime from the injector
|
2026-08-10 10:14:14 +02:00 |
|
mailbox-ordering.spec.ts
|
design-b D-1b: delete the legacy handlesleep runtime from the injector
|
2026-08-10 10:14:14 +02:00 |
|
ngspice-probe.spec.ts
|
eeschema simulator: lazy ngspice_service worker — static sharedspice (XSPICE registry + CIDER), init_dll ifdef, e2e both engines
|
2026-07-19 15:59:21 +02:00 |
|
occ-export-models.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
occ-export.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
occ-probe.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
pcbnew-collab.spec.ts
|
feat(wasm-eh): migrate the WASM build to native wasm exceptions (+ 3D viewer default-on)
|
2026-06-30 09:40:26 +02:00 |
|
pcbnew-move.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
pcbnew-perf.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
pcbnew.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
pl_editor-collab.spec.ts
|
feat: adopt shared wasm wire schemas; resurrect collab e2e bundle (ysync 0008 A)
|
2026-06-12 14:05:40 +02:00 |
|
pl_editor-load.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
pl_editor-uuid.spec.ts
|
feat(pl_editor): add KIID m_Uuid + (uuid) to .kicad_wks format (yjs-bridge commit 1)
|
2026-06-05 13:56:38 +02:00 |
|
pl_editor.spec.ts
|
test(screenshots): restore screenshot-neutrality after the determinism refactor
|
2026-07-07 11:35:39 +02:00 |
|
presence-eeschema.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
presence-locks-eeschema.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
presence-locks-pcbnew.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
presence-pcbnew.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
project-sync.spec.ts
|
project-sync: boot .kicad_pro synthesis + creation-time companion + live sibling restage
|
2026-07-16 19:05:23 +02:00 |
|
quasimodal-strand.spec.ts
|
THE FLIP: levers re-pinned to the post-migration invariant; all gates green incl. blue-screen repro 5/5
|
2026-08-10 10:14:20 +02:00 |
|
roundtrip.spec.ts
|
fix(ysync): wire dialect == file dialect, uuid churn, drift noise
|
2026-07-20 18:32:04 +02:00 |
|
save-hook.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
shell-open-dialogs.spec.ts
|
Phase F fix: open-lane token was lost across the dispatch-context swap — mint it in JS; repro spec added
|
2026-08-10 10:14:21 +02:00 |
|
symbol_editor.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
timer-park-repro.spec.ts
|
jspi: migration phases 0-7 — build knob, scheduler shim, test successor suite
|
2026-08-13 07:06:24 +02:00 |
|
xface-probe.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |
|
ysync-libsymbols.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
ysync-repros-eeschema.spec.ts
|
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
|
2026-07-06 08:57:57 +02:00 |
|
ysync-repros-pcbnew.spec.ts
|
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
|
2026-07-06 08:57:57 +02:00 |
|
ysync-two-tab.spec.ts
|
e2e/CI: dual-engine suites, per-engine screenshots, SwiftShader retired, prod web suite, CI-coverage gate
|
2026-07-17 12:21:54 +02:00 |
|
zoom-cursor.spec.ts
|
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
|
2026-07-07 10:50:24 +02:00 |