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
plan: phase 1 third pass, native zip hosted by ab on ConfRoomROG
1 file changed
+1
docs/rust-port-plan.md+1@@ -11,6 +11,7 @@ Written 2026-09-11 from a full audit of the 0.9.350 source, the Adom Bridge (ab) | 2026-09-11 | The four ab-core asks filed as [adom/adom-bridge#184](https://wiki.adom.inc/adom/adom-bridge/issues/184). | | 2026-09-11 | Phase 2 de-risked before it starts: `kicad-ipc-rs` 0.5.1 (blocking feature) cross-builds for Windows from the container with mingw and cmake, and a probe on ConfRoomROG connected to the running PCB editor and returned KiCad 10.0.5, the open board and its nets in 8 ms. One build note for the record: on the gnu target nng needs `advapi32` appended to the link line (`cargo:rustc-link-arg=-ladvapi32` from a build script), or the IPC listener fails to link. | | 2026-09-11 | Phase 1, second pass: 33 verbs in the native binary. Added the netlist group (extract_netlist, trace_net, find_connections, analyze_connections), the lint group (lint_board, lint_schematic, lint_library, format_upgrade), libraries and settings (list_symbols, list_footprints, adom_library_status, get_settings, set_settings, list_design_rules, set_design_rules) and maintenance (model_check, pcm_list, pcm_install, pcm_uninstall, check_for_updates). 73 tests in kicad-core, including parser tests on real KiCad 10 DRC and ERC reports produced by service-kicad. The HTTPS client sits behind a `net` cargo feature so the macOS type-check runs from a box without a darwin C toolchain. Smoke on ConfRoomROG: every verb answers with the Python shapes; one fix found there (a kicad-cli plot check that times out on a 500-symbol stock library was reported as a refusal, in Python too). PCM zip handling is std-only (inflate and SHA-256 written in the crate) so the binary carries no zip or crypto dependency. Schematic edit, misc (ipc_api, export_molecule, errors, log_tail) and install groups in progress. |+| 2026-09-11 | Phase 1, third pass: 50 verbs. Schematic edit in place landed (place_symbol, wire, label, move, delete, set_property: lossless s-expression round trip, .bak per write, ERC before and after through kicad-cli with the delta reported; verified on KiCad 10.0.5, and service-kicad ERC accepts the edited sheets in the test suite). Install group landed (install_library, install_symbol, install_footprint, install_library_bundle, adom_library_heal, make_part_project, export_part). Misc group landed (ipc_api, export_molecule, errors, log_tail) plus the first-run seeding in core. Uninstall is the full Python contract (all-artifacts and testResidue modes, verified on ConfRoomROG). 119 tests. The native zip was installed through ab itself on ConfRoomROG (pinned cache, spawn kind exe) and the verb runner drove it over the relay: every ported, runner-visible verb passes (35 of 35, the rest skip by design), the 47 window and routing verbs fail as expected until their phases. One contract fix from that run: ab forwards bare verb names, and the binary now accepts both forms. Phase 2 (routing on the Rust IPC client) in progress. | ## The goal in one sentence