Auto-sync junctions on wire/symbol mutations

Replaces the manual add_schematic_junction tool with automatic junction
management. WireManager.sync_junctions inserts/removes junction dots
based on wire endpoints plus component pin positions and is invoked
after add_wire, add_polyline_wire, delete_wire, move, and rotate.

- Pin-aware: parses lib_symbols and applies KiCad's mirror/rotate/
  translate transform to compute world pin coordinates
- Multi-unit safe: filters lib_symbols sub-units by the placed
  symbol's (unit N) field plus the unit-0 common body
- Removes the now-unused WireManager.add_junction static method
- Updates CHANGELOG [Unreleased] with the tool removal notice
- Adds .mcp.json to .gitignore (machine-local paths)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Eugene Mikhantyev
2026-04-26 14:59:47 +01:00
parent c62a859e0b
commit 7a6558b9fa
8 changed files with 891 additions and 285 deletions

View File

@@ -1,5 +1,10 @@
# Changelog
> **⚠️ Research Project — No Stability Guarantees**
> This is an unstable, experimental research project. APIs, tool names, parameters,
> and file formats may change at any time without notice. Back-compatibility is
> explicitly **not** preserved between versions.
All notable changes to the KiCAD MCP Server project are documented here.
## [Unreleased]
@@ -71,6 +76,14 @@ All notable changes to the KiCAD MCP Server project are documented here.
no-op removal, special-character escaping, UUID preservation, and the two
new convenience tools.
### Removed
- `add_schematic_junction` MCP tool has been removed. Junctions are now
inserted and removed automatically via `WireManager.sync_junctions` whenever
wires are added, deleted, or moved.
- Junction placement is pin-aware: `sync_junctions` consults component pin
positions so that T-junctions at component pins are correctly recognised.
---
## [2.2.3] - 2026-03-11