← Commit history

Update 40 file(s)

John Lauer ·2230f4e69b ·1mo ago ·parent 43e42fd
1 file changed +22
server.py+22
@@ -51,6 +51,12 @@ from handlers.bridge_client import handle_bridge_status, handle_bridge_call, han from handlers.launch import handle_launch from handlers.state import handle_state from handlers.uninstall import handle_uninstall+from handlers.netlist import (+    handle_extract_netlist,+    handle_trace_net,+    handle_find_connections,+    handle_analyze_connections,+) from handlers.kicad_cli_lint import (     handle_run_erc, handle_lint_board, handle_lint_schematic,     handle_lint_library, handle_format_upgrade,@@ -382,6 +388,18 @@ _VERB_CATALOG = {     "run_erc": {"summary": "Run ERC on a schematic via kicad-cli (read-only).", "long": False,         "hint": "Absolute schematic path; runs kicad-cli ERC and returns violations.",         "related": ["kicad_lint_schematic", "kicad_open_schematic", "kicad_run_drc"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},+    "extract_netlist": {"summary": "Extract the full netlist from a schematic: every component and every net with its nodes (read-only, via kicad-cli).", "long": False,+        "hint": "Absolute .kicad_sch path. includeNodes:false returns net names/sizes only — use it first on big schematics.",+        "related": ["kicad_trace_net", "kicad_find_connections", "kicad_analyze_connections"], "pitfalls": ["needs kicad-cli (KiCad >= 7)", "hierarchical designs: pass the ROOT sheet"]},+    "trace_net": {"summary": "Every pin on one named net (read-only).", "long": False,+        "hint": "filePath + netName. A miss returns candidates instead of an empty success; unlabeled nets are auto-named like /Net-(R1-Pad1).",+        "related": ["kicad_extract_netlist", "kicad_find_connections"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},+    "find_connections": {"summary": "Everything one component connects to, pin by pin, with peer pins per net (read-only).", "long": False,+        "hint": "filePath + reference (U1, R5). Pins absent from the answer are in no net.",+        "related": ["kicad_trace_net", "kicad_analyze_connections"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},+    "analyze_connections": {"summary": "Connectivity overview: suspected-unconnected pins, power nets, highest-fanout nets/components (read-only).", "long": False,+        "hint": "Heuristic from the netlist alone; kicad_run_erc is the authoritative check and knows no-connect flags.",+        "related": ["kicad_extract_netlist", "kicad_run_erc"], "pitfalls": ["needs kicad-cli (KiCad >= 7)", "single-node nets can be intentional test points"]},     "lint_board": {"summary": "Lint a .kicad_pcb (DRC pre-check) via kicad-cli.", "long": False,         "hint": "Fast DRC pre-check on a board file; use before opening in the GUI.",         "related": ["kicad_run_drc", "kicad_open_board"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},@@ -826,6 +844,10 @@ COMMAND_HANDLERS = {     "rescan_libraries": _handle_rescan_libraries,     # v1.7.12+: headless lint pre-checks via kicad-cli     "run_erc": handle_run_erc,+    "extract_netlist": handle_extract_netlist,+    "trace_net": handle_trace_net,+    "find_connections": handle_find_connections,+    "analyze_connections": handle_analyze_connections,     "lint_board": handle_lint_board,     "lint_schematic": handle_lint_schematic,     # v1.7.13+: library lint + file-format upgrade