pcbjam/tests/kicad
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Gergő Törcsvári 48da418f34
design-b D3: fix the doc-19 hang — quasi-modals off the coroutine stack
THE BUG IS FIXED. tests/kicad/quasimodal-strand.spec.ts flips from a
test.fail() pin to a plain green regression test: 3/3 runs
closed=true dialogs=0 refused-resumes=0 (was closed=false dialogs=1
refused-resumes=1 on every run).

Mechanism: a quasi-modal's nested event loop parked on the TOOL
COROUTINE's stack, which suspends the fiber's body where the fiber layer
cannot see it — so the stale-fiber guard quarantined the fiber and then
refused its own resume, the dispatch guard was never released, and every
click after that was deferred forever. Bouncing the nested loop onto the
main stack leaves the coroutine suspended the legitimate way (a recorded
fiber swap), so nothing is quarantined and nothing is refused.

Layering, so this is not a pile of WASM ifdefs in KiCad:
- wx (3d37db3bf1) owns the POLICY and the hook; it must not know what a
  coroutine is.
- wasm/bindings/main_stack_runner.h is the only place that may know both
  sides: it finds the frame's TOOL_MANAGER and bounces via RunMainStack.
  Header-only and self-installing, so no build-script change; included by
  every editor's binding TU.
- KiCad gets ONE ifdef-free method (2c777efede), needed only because
  TOOL_STATE is opaque outside TOOL_MANAGER. libcontext and dialog_shim
  are untouched — an earlier draft edited both and was reverted.

This also reframes the remaining plan: the doc-19 class is closed WITHOUT
migrating tool coroutines onto scheduler contexts. Note it does not make
the wait a context yield — waits still park in place, just never on a
coroutine stack.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TEHGiiXMShNXbBr7gSJ7iz
2026-08-10 10:14:17 +02:00
..
utils design-b D-1b: delete the legacy handlesleep runtime from the injector 2026-08-10 10:14:14 +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
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 design-b D3: fix the doc-19 hang — quasi-modals off the coroutine stack 2026-08-10 10:14:17 +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
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 design-b D-1b: delete the legacy handlesleep runtime from the injector 2026-08-10 10:14:14 +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