Skip to content

v2.7.0

Latest

Choose a tag to compare

@mixelpixx mixelpixx released this 20 Aug 19:19

The bridge no longer crosses its wires

The Node-Python protocol had no request IDs. After any timeout, the next command was silently resolved with the previous command's late result, off by one for every response until another timeout resynchronized (#373 — reporter's diagnosis was exact; implementation adapted from #371 by @kerby2000). Tool calls now carry correlated IDs end to end, and stale responses are discarded with a log line. The MCP transport also connects before Python spawns, so clients no longer time out against a silent server during the up-to-two-minute pcbnew warm-up (#377).

Two file-corruption classes fixed

  • add_symbol_property dropped a closing paren on every call and could promote a unit symbol to a top-level sibling — silent structural corruption a paren count cannot see (#362, @karu2003). The new validate_schematic/validate_symbol_library tools detect exactly this damage class.
  • S-expression escaping is now symmetric: reads (#336) and writes (#324, diagnosed by @PaulHubiss) share one escape-aware implementation. 419 of KiCad's own stock symbol files carry values that the old code truncated or split.

8 new tools (169 total, 15 categories)

validate_schematic, validate_symbol_library, list_library_table, remove_library_table_entry, set_library_table_uri, set_symbol_pin_type, find_duplicate_symbols, backannotate_footprints — all by @karu2003. #359 (@AmirF194) additionally registered 15 existing symbol tools into search_tools.

Also in this release

  • autoroute stages work files in a temp directory and cleans up on every exit; a killed run reports "terminated externally" instead of exit code 4294967295; stale .ses files can no longer be imported as fresh output (#249, scoped by @Dewieinns' traces)
  • add_layer actually adds inner copper layers — it previously wrote to non-copper layer IDs and renamed F.SilkS (#222)
  • add_gnd_stitching_vias treats arcs as arcs, not chords (#192, diagnosed by @NiNjA-CodE)
  • Placed symbols inherit the library's default Footprint (#300, implementation by @stefangordon)
  • sync_schematic_to_board matches by symbol UUID, not just refdes (#250)
  • JLCPCB: new upstream source-db-v2 schema decoded (#352, @stefanobaldo); unavailable parts DB degrades gracefully (#264, @fage2022)
  • Schematic renders always have a working rasterizer via pymupdf (from #274/#277 by @stefangordon)
  • IPC sessions no longer silently pinned to SWIG (#369, @Vikrammel)
  • setup-macos.sh --verify fails when requirements are missing instead of passing on a server that cannot start (#350, @francisrath) — note: --verify now exits 1 in that case
  • Per-process log files end the Windows rotation collision between concurrent servers (#373)

Behavior changes

  • autoroute no longer leaves .dsn/.ses files in the project directory; pass keepArtifacts: true to keep them
  • add_symbol_property inherits position/visibility when omitted on update, instead of resetting them
  • setup-macos.sh --verify exits nonzero on missing requirements

Full details in CHANGELOG.md.