app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Reference implementation of the KiCad bridge: multi-instance Python server, forward path via kicad-cli, reverse path via in-process plugin. Most complex of the three bundled bridges.
← Commit history
Routing README: close KiCad before enabling IPC; snapshot validation limits (from the PR 82 branch)
1 file changed
+14−3
demo/routing/README.md+14−3@@ -23,9 +23,11 @@ From bridge 0.9.340 the routing verbs and their IPC client (`routing_deps/`, Win CPython 3.11, 3.12 and 3.13) ship inside the normal release zip; nothing is pip-installed on the desktop. Install the release the canonical way (`bridge_install` with the tier manifest), then: -1. `kicad_ipc_api {"enable":true}` writes KiCad's `api.enable_server` switch (backup kept).-2. `kicad_close`, then open the fixture board again so KiCad starts with the IPC server on.-3. `kicad_routing_state {"filePath":...}` must return a `revision` before any mutation.+1. Save existing work and `kicad_close` first: a running KiCad rewrites its preferences on exit+ and would undo the switch.+2. `kicad_ipc_api {"enable":true}` writes KiCad's `api.enable_server` switch (backup kept).+3. Open the fixture board so KiCad starts with the IPC server on.+4. `kicad_routing_state {"filePath":...}` must return a `revision` before any mutation. The overlay tools (`tools/build_routing_dev.py`, `tools/install_routing_dev.py`) remain for patching a dev-pinned cache during development; they are not the release path.@@ -86,3 +88,12 @@ Both modes passed on arav-rog with KiCad 10.0.3, ab 2.1.66, Python 3.12 and the (three warnings for the fixture's uninstalled library). Wrong-net, stale-revision and crossing-route rejection, dry-run immutability, removal of all 22 items and native Undo/Redo passed. Evidence: [evidence/arav-rog-2026-09-07.json](evidence/arav-rog-2026-09-07.json).++## Snapshot validation limits++Validation (0.9.341 and later) refills zones on the disposable snapshot, so the live board and the+source file are never touched; the report carries `zonesRefilled:true`. Project and custom rule files+are copied alongside the snapshot. If an unconnected list may be capped, its count is labelled a lower+bound (`unconnectedCountIsLowerBound`). If a violation list may be capped, route validation refuses the+before/after comparison with `drc_incomplete` before changing any copper. None of this is electrical+sign-off.