feat(pcbnew): Yjs collab bridge — snapshot/diff emit + BOARD_COMMIT apply (move/delete/track-add), verified two-tab in real app
pcbnew's half of the unified Yjs collab bridge (4th tool; yjs-bridge commit 4), a near-verbatim port of the eeschema design. Root-repo only — kicad/wxwidgets submodules untouched. - wasm/bindings/pcbnew_embind.cpp: BOARD_LISTENER trigger + post-settle snapshot diff emit; BOARD_COMMIT apply inside a CallAfter + COROUTINE fiber (so a new item's GAL view->Add dispatches correctly). Move/delete sync for any top-level item by uuid; native PCB_TRACK add. Footprint/via/zone add deferred. - WasmTool.tsx: add pcbnew to COLLAB_TOOLS. - tests/apps/kicad/pcbnew-collab.html: seeded (wizard-free) harness, leaving pcbnew.html untouched for its wizard test. - tests/kicad/pcbnew-collab.spec.ts: snapshot + apply(move/remove/add) — 2 pass, two-tab skipped headless. Verified two-tab in the real web app: footprint move applies + syncs A->B. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
bb6dbfc76e
commit
2dc55c6138
4 changed files with 965 additions and 1 deletions
|
|
@ -9,7 +9,7 @@ import type { CollabWindow } from "@/wasm/collab";
|
|||
import { clog, cwarn } from "@/wasm/collab/debug";
|
||||
|
||||
// Tools with a working collab bridge (kicadCollabSnapshot/Apply embind exports).
|
||||
const COLLAB_TOOLS = new Set<Tool>(["pl_editor", "eeschema"]);
|
||||
const COLLAB_TOOLS = new Set<Tool>(["pl_editor", "eeschema", "pcbnew"]);
|
||||
|
||||
/**
|
||||
* Opt-in collaborative editing (features/yjs-bridge). Enabled when the URL carries
|
||||
|
|
|
|||
Loading…
Reference in a new issue