| Filename | Latest commit message | Latest commit date |
|---|---|---|
Doc 20 gets a status table instead of a narrative: D-1/D0/D1 done, D2 reverted, D3's goal met but its MEANS skipped (waits still park in place — only the stack they park on changed), D4/D5/D6 not started. Plus an explicit "what was skipped and is still owed" list, so nothing quietly reads as delivered: dispatch contexts, waits-as-yields, bridges, real-park-site buffer sizing, the both-EH CI matrix. Doc 22 is the handoff plan a fresh session can implement from: - the bug it targets is the BLUE SCREEN (a context recovered twice or by the wrong fiber), not doc 19's hang, which is fixed and was only one ingredient; - the diagnosis that matters: bookkeeping is already centralised (currData is single-writer, the shim sees every swap) but the DECISION is not — libcontext decides swaps and never tells anyone, so three layers each invented heuristics. Centralising means moving the decision; - why D2/D3 knotted, with the measurements, so nobody retries that order; - phases A-F with estimates (~4-6 wk): A absorbs libcontext behaviour- preservingly and is landable ALONE (the de-risking step D2 never had), B+C+D must land as one commit, E bridges, F deletes the guards only once they are provably silent; - gates including the crash's own repro, since the batteries never reproduced it and therefore cannot certify it; - the traps this run paid for: 16-byte fiber stack alignment, the per-fiber stack-limits gotcha, host-side asyncify buffers, the stack-ownership rule, partial migration, and the gitignored-artifact triage trick; - measured build/test cycle costs, so the estimates are grounded. README: index rows for 21 and 22, doc 19 marked FIXED, and the stale 2026-06 "single decisive next step" folded away behind the current one. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TEHGiiXMShNXbBr7gSJ7iz |
||
| .. | ||
| debugging | ||
| features | ||
| research | ||
| build.md | ||
| ci-build-slowness-findings.md | ||
| README.md | ||
| wasm-exceptions-experiment.md | ||
Documentation Map
A central index of the documentation in this repo. The goal of the project is to build KiCad with WASM and run it in a browser.
Note: per-area
README.mdfiles stay next to the code they describe (they're linked below). Cross-cutting guides live underdocs/. Per-feature design notes live underfeatures/.
Start here
- Project README — overview, prerequisites, quick start, project structure
- CLAUDE.md — project/agent context and contribution conventions
Build
- docs/build.md — Docker-based KiCad WASM build system (two-phase build, outputs, memory)
- docker/README.md — Docker build environment, branch-specific containers, troubleshooting
- wasm/README.md — WASM compatibility layer (overrides/shims without patching KiCad)
Debugging & Asyncify
- docs/debugging/DEBUG.md — debugging guide: Asyncify stalls vs crashes, shim/codegen coupling, stub-bisection
- docs/debugging/learning.md — Asyncify + consecutive modal dialogs: the lock pattern
- docs/research/threading_1.md — deep dive: the Asyncify single-slot
currDatacollision bug and the fix - docs/research/threading_2.md — external research: JSPI/WasmFX/state-machine alternatives, QEMU analysis
Architecture
- wasm/README.md — WASM compatibility layer structure
- web/README.md — web app (create/open KiCad projects), tech stack, URL routing, WASM artifact serving
Testing
- tests/README.md — Playwright test infrastructure, element registry, logs, screenshots
- tests/WHATWORKS.md — wxWidgets-in-WASM feature coverage matrix and KiCad readiness
- tests/GL_README.md — Emscripten legacy GL immediate-mode quirks (color-per-vertex)
- tests/gal-regression/README.md — GAL visual regression suite (native OpenGL vs WebGL WASM)
Feature design docs
Per-feature design notes and porting records live under features/:
- web-init — web app spec
- schematic — eeschema WASM bring-up
- symbol-editor — symbol editor (eeschema kiface launcher)
- gerbview — Gerber viewer port
- pl-editor — page-layout editor port (incl. file-dialog usability fixes)
- browser-tools — tool-activation / coroutine deep dives
- fix-asyncify-O2-and-modal-promise-rejection — RTree wasm overflow bug investigation
Archived / historical
features/archive/ holds docs whose work is done or superseded
(each carries a status banner):