service-kicad
Public Made by Adomby adom
Shared headless KiCad 10: DRC, ERC, SVG/Gerber/STEP export, Altium library conversion, symbol/footprint/3D-model lookup. Every Adom tool shells to this CLI instead of calling the HTTP API directly.
Desktop CLI shim loses directory exports and deletes failed jobs
The desktop fallback in the installed kicad-cli shim loses directory outputs. Native KiCad 10.0.5 successfully exported seven Gerbers plus a job file, but the shim calls pull_file on the directory, reports “output ... did not come back”, and then deletes the remote job folder even after transfer failure. Drill directory export fails the same way. Single-file placement CSV succeeds.
Reproduction: kicad-cli pcb export gerbers --output manufacturing-review/v85/gerbers/ --layers F.Cu,B.Cu,F.Mask,B.Mask,F.SilkS,B.SilkS,Edge.Cuts --subtract-soldermask board.kicad_pcb. The native stdout lists successful plots. The shim's final for o in outs loop pulls $dest/out/$(basename "$o") as one file; pull_file does not recursively transfer directories. Cleanup always runs afterward.
A separate output option is missed too: pcb export drill --generate-report --report-path manufacturing-review/v85/drill/drill-report.txt is not remapped, so native KiCad cannot open the container-relative path. Source argument mapping only recognizes -o/--output.
Expected: enumerate/archive directory output, verify every returned file before deleting the remote folder, preserve failed jobs with a recovery path, and map secondary output paths such as --report-path. Test a single-file export, Gerber folder, separate PTH/NPTH folder and report, and an intentional transfer failure. Preserve existing service fallback and caller target/thread controls.
Workaround verified: send the exact source to a retained named desktop review folder, run native CLI through Adom Bridge with structured args and absolute outputs, enumerate each output folder and pull its individual files. Recovered eight Gerber/job files, two drill files and a drill report. No installed shim modification or runtime replacement. This differs from #8, which concerns service temporary filenames.
0 Replies
Log in to reply.