fix(wasm): KiCad 10 kiplatform/libgit2 stubs, e2e fixtures, asyncify -g hook

- wasm/kiplatform: add EnableDarkMode, IO::TimestampDir, UI::AllowNetworkFileSystems,
  UI::CancelPendingScroll, SECRETS::DeleteSecret (new KiCad 10 functions).
- wasm/stubs/libgit2_stub.c: ~156 no-op stubs for KiCad 10's restructured git
  backend + git-backed local history + text_eval VCS.
- tests/kicad: bump the demo project dir 9.99 -> 10.0 (KiCad 10 stores projects
  under /home/kicad/documents/kicad/10.0/) — fixes load-pcb + 3d-viewer e2e.
- scripts/common/apply-asyncify.sh: ASYNCIFY_EXTRA_OPTS hook (e.g. -g for
  symbolizable wasm traces).
- kicad submodule -> ef00c2d3 (KiCad 10 link + runtime adaptations).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Istvan Matejcsok 2026-06-23 21:23:20 +02:00
commit cdaa96250d
10 changed files with 264 additions and 8 deletions

View file

@ -21,7 +21,8 @@ import { waitForPcbnew } from './utils/pcbnew-ready';
* models — deferred), the viewer shows copper/silk/mask/edge geometry in 3D.
*/
const KICAD_VERSION_DIR = '9.99';
// KiCad 10 stores projects under /home/kicad/documents/kicad/10.0/projects.
const KICAD_VERSION_DIR = '10.0';
const PROJECT_DIR_MEMFS = `/home/kicad/documents/kicad/${KICAD_VERSION_DIR}/projects`;
// pic_programmer frames correctly in the default 3D camera (the microwave demo

View file

@ -201,8 +201,8 @@ test.describe('PCB load probe', () => {
'/home/kicad',
'/home/kicad/documents',
'/home/kicad/documents/kicad',
'/home/kicad/documents/kicad/9.99',
'/home/kicad/documents/kicad/9.99/projects',
'/home/kicad/documents/kicad/10.0',
'/home/kicad/documents/kicad/10.0/projects',
'/tmp',
'/workspace',
]);
@ -238,7 +238,7 @@ test.describe('PCB load probe', () => {
// Final check: re-dump MEMFS so we can confirm nothing changed under us
await dumpMemfs(page, [
'/home/kicad/documents/kicad/9.99/projects',
'/home/kicad/documents/kicad/10.0/projects',
'/tmp',
]);

View file

@ -16,7 +16,7 @@ import { waitForBoardLoaded } from './utils/board-ready';
* if it appears — depends on whether MEMFS already has config).
* 2. Inject the demo's .kicad_pcb (+ .kicad_pro for completeness) into
* MEMFS at PATHS::GetDefaultUserProjectsPath() — confirmed by
* load-pcb-probe.spec.ts to be /home/kicad/documents/kicad/9.99/projects/.
* load-pcb-probe.spec.ts to be /home/kicad/documents/kicad/10.0/projects/.
* 3. Drive File → Open via menu helpers.
* 4. Click on the file row in wxFileListCtrl (wasm port doesn't register
* listctrl rows in wxElementRegistry, so we click by the filelist's
@ -36,7 +36,9 @@ import { waitForBoardLoaded } from './utils/board-ready';
* `features/<branch>/rtree-debug-findings.md` for the full trail.
*/
const KICAD_VERSION_DIR = '9.99';
// KiCad 10 stores projects under /home/kicad/documents/kicad/10.0/projects
// (GetMajorMinorVersion() = "10.0"); the old WASM port used "9.99".
const KICAD_VERSION_DIR = '10.0';
const PROJECT_DIR_MEMFS = `/home/kicad/documents/kicad/${KICAD_VERSION_DIR}/projects`;
type DemoCfg = {