Istvan Matejcsok
0b8e7186d4
findings(E-1,E-2,E-3,E-6): ngspice service generations + credit-bounded event transport
...
Adapted from codex/asyncify-execution-owner-core 3753320. Service side mirrors
the occ-service shape (E-1 watchdogs, E-2 fail-all + boot-death fix — onerror
now rejects the in-flight boot waiter instead of stranding it, E-3
onmessageerror terminal, Blob URL revoked, per-generation evtQueue cleared on
retirement).
E-6 transport bounds (worker hunks re-applied inside the emscripten-6
em-pthread else-branch — the codex file predates that split, so this is a
re-application, not a cherry-pick):
- batch cut at 512 lines / 1 MiB exact JSON-UTF-8 bytes, measured before a
line is retained; a single line > 1 MiB flushes the accepted prefix then
stops the event stream terminally (never retained);
- posting gated by a 64-frame / 8 MiB unacked credit window; each frame
carries { eventSequence, eventBytes } and is released only by an exact
{ sequence, bytes } ack; any mismatched ack is terminal;
- the service mirrors the same 64-frame / 8 MiB bound on its pre-handler
queue, acks after handing a frame to __ngspiceOnEvent, and retires the
generation on invalid credit; { fatal } frames retire the worker.
Tests: ngspice-service.test.ts (11, ported) — watchdogs, crash/bootError/
decode-fault settlement + recovery, out-of-order ids, sync postMessage throw,
stale-generation event drops, fatal-frame retirement. tests/tools/
ngspice-worker-batch-unit.ts (node:vm over the production worker source;
`npm run ngspice:worker-batch`) — bounded ordered chunks, byte-pressure
flush, 100k-chunk credit storm, over-limit line, exact ack lease. e2e harness
twin updated to speak the ack protocol (adds __ngspiceServiceTestHooks).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 18:18:02 +02:00
..
utils
findings(E-1,E-2,E-3,E-6): ngspice service generations + credit-bounded event transport
2026-08-31 18:18:02 +02:00
3d-viewer-deadlock.spec.ts
tests: un-skip sweep — 26 tests revived on the JSPI build, failures re-gated with fresh evidence
2026-08-13 18:43:36 +02:00
3d-viewer-engine-toggle.spec.ts
fix(3d): blank viewer after raytracing round-trip — owner-context FFP routing + VAO isolation (gl1)
2026-08-25 11:25:34 +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-reopen.spec.ts
fix(3d): blank render + lost position after 3D viewer close/reopen (gl1 context guard)
2026-08-24 16:18:22 +02:00
3d-viewer-toolbar-hijack.spec.ts
fix(wasm): 3D-viewer toolbar clicks hijacked by hidden main-frame DOM controls — input barrier + canvas anchoring
2026-08-26 13:19:34 +02:00
3d-viewer.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
appearance.spec.ts
test(determinism): deterministic waits + stableShot screenshots; drop blind sleeps/ifs/retries
2026-07-07 10:50:24 +02:00
apply-sheet-guard.spec.ts
ysync bug 07 UP side: superseded sheet switch never adopts onto the new screen + apply envelope sheet tag/guard (subsheet self-reference fix)
2026-08-28 18:19:29 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +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
coroutine-lifecycle.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
dark-mode.spec.ts
tests: dark-mode spec diffs against a per-engine light-mode reference
2026-08-28 23:24:20 +02:00
drift-trio-fuzz.spec.ts
tests: un-skip sweep — 26 tests revived on the JSPI build, failures re-gated with fresh evidence
2026-08-13 18:43:36 +02:00
drift-trio-scenarios.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
drift-trio.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
eeschema-collab.spec.ts
tests: fix two-tab collab baseline race + build the jspi harnesses in CI
2026-08-14 21:46:24 +02:00
eeschema-copy-paste.spec.ts
tests: eeschema-copy-paste — satisfy the determinism guard
2026-08-26 12:16:57 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
eeschema-perf.spec.ts
build+perf: wasm-opt the shipped wasm, and measure real frames in CI
2026-08-22 12:53:00 +02:00
eeschema-sim.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +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
fix(dialogs): centre unpositioned dialogs — repair the origin-placement regression from the display-index fix
2026-08-24 17:50:21 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
findings-p.spec.ts
findings group P: liftBlob field gap (P-5), apply-slot hardening (P-1), chooser-held rotate (P-4)
2026-08-28 12:57:51 +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 cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
footprint-chooser-confirm.spec.ts
findings group O: chooser Enter + infobar close fixes (wx → 15e5315244) with repro specs and uipolish guards
2026-08-28 11:31:32 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
grid-editors-typing.spec.ts
wx wasm: grid cell editors typeable (wxwidgets → d32535fefb) + gating e2e
2026-08-27 14:42:37 +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
infobar-dismiss.spec.ts
findings group O: chooser Enter + infobar close fixes (wx → 15e5315244) with repro specs and uipolish guards
2026-08-28 11:31:32 +02:00
items-bridge.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
load-pcb-probe.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
load-pcb.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
mailbox-ordering.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +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
tests: fix two-tab collab baseline race + build the jspi harnesses in CI
2026-08-14 21:46:24 +02:00
pcbnew-large-perf.spec.ts
bench: jetson FPS battery — both backends saturate at 80.9 MB scale
2026-08-14 12:07:18 +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
build+perf: wasm-opt the shipped wasm, and measure real frames in CI
2026-08-22 12:53:00 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
presence-eeschema.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
presence-stale-after-delete.spec.ts
tests: annotate documented dwells in group-Y presence specs (determinism lint)
2026-08-28 21:30:49 +02:00
project-sync.spec.ts
findings R: coverage for the demo-ledger fixes (R-2, R-3, R-4, R-9) — tests only
2026-08-28 13:56:53 +02:00
quasimodal-strand.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
roundtrip.spec.ts
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
save-cmd-key.spec.ts
libs 0017: sync overrides indexed + stale-lib session menu + Cmd+S DOM-focus fix + WasmTool split
2026-08-25 17:58:54 +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 cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +02:00
via-snapshot-assert.spec.ts
findings R: coverage for the demo-ledger fixes (R-2, R-3, R-4, R-9) — tests only
2026-08-28 13:56:53 +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
tests: un-skip sweep — 26 tests revived on the JSPI build, failures re-gated with fresh evidence
2026-08-13 18:43:36 +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
jspi cleanup: remove the asyncify-era residue — dead code, conditionals, pipeline scaffolding, stale prose
2026-08-14 09:25:32 +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