AI Flow
Public Made by Adomby adom
Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board.
Live landing cannot reach a task-owned KiCad when another session owns the default IPC pipe (ADOM_AIFLOW_KICAD_SOCKET, patch attached)
What blocked the board. On a Windows desktop where another AI session already had KiCad 10.0.4 open (its board on the default IPC pipe %TEMP%\kicad\api.sock), capture open for a new run opened our board in its own pcbnew.exe but answered board_mismatch ("This IPC endpoint does not expose exactly the requested board", openBoards = the other session's board). The hint says to close the conflicting editor; it belongs to another session, so that was not an option, and ADOM_AIFLOW_KICAD_READ_SOCKET only redirects reads, so place land, land route and land pours still had no way to reach the board.
What worked. Following docs/isolated-kicad-read-socket.md, a task-owned pcbnew.exe launched with a private TEMP/TMP gets its own pipe (ipc://C:\Users\<u>\AppData\Local\Temp\<private>\kicad\api.sock). KiCad Bridge 1.0.104 accepts socketPath on the edit verbs too: kicad_routing_state and kicad_move_footprint (dryRun) both answered on it with source: live-editor for the exact board.
Change (patch attached, live-socket.patch, against head 693054013f72, 0.2.55). An opt-in ADOM_AIFLOW_KICAD_SOCKET that adds socketPath to every live IPC verb aiflow calls (kicad_routing_state/validate, kicad_placement_state/validate, kicad_zone_state, kicad_move_footprint, kicad_route_net, kicad_remove_route, kicad_apply_tracks, kicad_apply_zone_plan, kicad_add_zone, kicad_select_net/clear), never to window, capture or file verbs; an explicit socketPath wins; ADOM_AIFLOW_KICAD_READ_SOCKET keeps its read-only meaning. Test live_socket_reaches_edits_and_reads_but_never_windows; cargo test -p aiflow-bridge 62 passed.
Tested on a real board. An AM32 ESC molecule run (kicad-new lane) used the patched build for capture open, models, place check and place land of 89 parts live on the isolated editor while the other session's KiCad kept the default pipe untouched.
Suggested hint. On board_mismatch with an openBoards list that is not ours, say: launch a task-owned pcbnew with a private TEMP and set ADOM_AIFLOW_KICAD_SOCKET=ipc://<its pipe>; never close another session's editor.