☰
0.9.351: Rust port plan phase 0: seeds KiCad's six do_not_show_again nags, api.enable_server, update-check and eeschema…
0.9.350: kicad_model_check and model diagnostics on the 3D show verbs (#88)
0.9.349: kicad_status carries operation state for timeout recovery (#87)
0.9.348: Focus guardian identity survives hwnd reuse; editors spawn without activation (pre-promotion run findings)
0.9.347: kicad_close honours unsaved work (#84); verified footprint rescan (#51)
0.9.343: Footprint loads with two pcbnew processes; list_footprints reads the fp-lib-table (#81)
0.9.342: First-run wizard deadlock: time-boxed dialog clicks and bounded sweeps (#83)
0.9.341: Release-day fixes: stock library path resolution (#80), screenshot_all sizeKB (#81), readiness re-detect (#82)…
0.9.340: land the shipped runtime source for BRIDGE_VERSION (tour fixes 0.9.318-0.9.339 never reached master, issue #79)
0.9.317: Tour remote: dashboard presses recorded, acked with a caption, and honoured at the next gesture like panel pre…
0.9.316: Tour remote: FIFO press queue (no press lost), poll-drained presses recorded, presses on progress
0.9.315: Tour remote: prev/next/pause cut the beat in flight at the next gesture; back goes to the beat before the one…
0.9.314: Tour layout: restore a window's bounds before the tour closes it so KiCad's sticky geometry is never corrupted
0.9.313: Tour layout: read the unwrapped desktop_list_monitors payload so windows are placed in their 80 percent slots
0.9.312: kicad_demo layoutProbe diagnostic; layout uses the monitor work area
0.9.311: Fix: demo.py lacked the json import used by the new window-bounds save/restore (0.9.310 would have silently sk…
0.9.310: Tour layout for the recording (John): each beat's window is placed at 80% of the primary screen in its slot (s…
0.9.309: Tour 3D beats no longer end with Zoom to Fit: in KiCad's 3D viewer that command also resets the orientation, s…
0.9.308: Motion gate: GetForegroundWindow can lag AD's z-order right after a raise, which aborted the symbol beat's mot…
0.9.307: Tour verification (John: 'tool your bridge code to definitively know that the correct thing is showing'): ever…
0.9.306: Tour 3D motion is now deterministic: KiCad's own View menu commands (Rotate X/Z by 10 degrees, Zoom In/Out, Zo…
0.9.305: Tour window targeting (John's laptop: fourteen KiCad windows from days of demos; the 2D beat showed an empty u…
0.9.304: Tour identity fix (John's dashboard run, 2026-09-03): ab refused the demo panel, every caption, every raise an…
0.9.303: Tour sync: the verb-side control channel (kicad_demo {control}) is cleared at tour start too, so a pause/next/…
0.9.302: Tour sync fixes (John's run on 0.9.301): stale panel presses from the previous show are drained before a tour…
0.9.301: Taskbar hygiene (John: frozen progress bars on every KiCad window, no Adom badge): the boot sweep that clears…
0.9.300: Tour 3D motion recalibrated: the orbit drags totalled about a third of the viewer width and turned the board n…
0.9.299: Tour board-in-3D fix: KiCad's 3D viewers are unowned top-level windows, so picking 'the viewer owned by the PC…
0.9.298: Fix: the 0.9.297 tour job died on a NameError (_EXIT undefined) before its first progress update, so Play the…
0.9.297: Tour: motion on every beat for the recording (fit, wheel zoom in/out, middle-drag pans in the 2D editors; Home…
0.9.296: Tour foreground fix (John: 'why do I not see you foregrounding any kicad window'): the beat raise called SetFo…
0.9.295: The tour now walks a real Adom board, adom/esc-g431 (149 footprints, 227 symbols): its STM32G431 symbol and LQ…
0.9.294: Demo panel callback URL fix: the bridge read its bound port from a second copy of the server module and sent n…
0.9.293: kicad_demo progress now reports panel (last show reply, stage, callback URL), muted, muteSource, lastPress and…
0.9.292: Demo panel: reason is sent on every show (ab marks it required on show; a stage-advance show without it was re…
0.9.291: kicad_demo adopts the ab 2.1.17 demo-panel contract: the first show passes eventCallbackUrl (loopback POST /de…
0.9.290: kicad_demo drives ab's desktop_demo_panel (Adom Bridge 2.1.0+, wiki adom/adom-bridge#116): the floaty play/pau…
0.9.289: John, 2026-09-03: no caption on a Symbol Editor launch or rescan reopen (the 0.9.285 one was large, shown too…
0.9.288: Captions before a KiCad window appears now name the calling AI thread (John saw one on his laptop and could no…
0.9.287: Wiki #71 (Ray, 0.9.286 run): (1) the posted Enter now goes FIRST to the window holding keyboard focus in KiCad…
0.9.286: Z-order guard fix: the 0.9.285 guard read AD's window list with the wrong envelope shape and always saw nothin…
0.9.285: Foreground etiquette on the Symbol Editor launch (wiki #71 field test): before opening or auto-rescan-relaunch…
0.9.284: kicad_set_design_rules: response separates fabRuleViolations (DRC items citing one of the fab's rules by name)…
0.9.283: Wiki #73: kicad_list_design_rules and kicad_set_design_rules consume adom/pcb-design-rules at call time (fab,…
0.9.282: Wiki #71 (Ray's remaining case): on a fresh Symbol Editor the filtered tree lists the symbol but nothing is se…
0.9.281: Wiki #71: kicad_show_library failure responses now carry a per-step navigation trace (search Edit found, paren…
0.9.280: kicad_install_symbol now passes errorCode (kicad_refuses_symbol), kicadParser and _hint through to the caller;…
0.9.279: Wiki #71 second cause, measured on ConfRoomROG with KiCad's own parser: one malformed symbol makes KiCad refus…
0.9.278: Wiki #72: kicad_install_library handed a single-part .kicad_sym now returns singlePartFile:true plus a hint na…
0.9.277: kicad_adom_library_status: orphanedLibrary now means the orphan holds symbols the registered file lacks (uniqu…