☰
v0.9.126: find_menu_command returns (id,label) - 0.9.125 passed the tuple into PostMessageW (ctypes ArgumentError kille…
v0.9.125: PM menu command ids resolved by menu walk, not hardcoded (10.0.5 renumbered 20011/20013 - beats 1-3 fired WM_…
v0.9.124: symbol-editor appearance wait 6s -> 30s with WM_COMMAND repost at 10s (cold 10.0.5 PM races the demo job's ba…
v0.9.123: failed demo beats now report failReason (handler success/error/output) in the result and log raw to stderr -…
v0.9.122: background demo beats sweep modal dialogs before retrying (staged calls get the dispatcher's sweep, the job t…
v0.9.121: stepShot capture keys off the beat's window field (title is the display label, not a window title - 0.9.120's…
v0.9.120: per-step screenshot evidence streamed to the demo caller (#25 web-control contract) - stepShot{step,title,ima…
v0.9.119: point-release version blindness fixed in ALL THREE places - detection ranks installs by probed kicad-cli X.Y.…
v0.9.118: nudge hint copy edit
v0.9.117: update-nudge attachment moved to the HTTP funnel (readiness/bridge_status return via early dispatch paths and…
v0.9.116: proactive KiCad update nudge - throttled (24h) async check, surfaced as kicadUpdate{installed,latest,_hint} o…
v0.9.115: sentinel bless test fixed - 'recent input' wrongly blessed self-raises while the user typed in ANOTHER app (c…
v0.9.114: sentinel exemption for sanctioned foregrounds (bring_to_user / announce_foreground set expect_foreground so t…
v0.9.113: always-on focus sentinel (John saw late self-raises land in the foreground after per-verb guards expired) - b…
v0.9.112: single-component demo projects (John: extra components on a one-part demo board just confuse the user) - the…
v0.9.111: faulthandler at boot (issue #27) - native crash now dumps all thread stacks to stderr, which ab 2.0.44+ captu…
v0.9.110: pure-stdlib PNG encoder for screenshots - ab's managed runtime ships no PIL, so fresh boxes captured only .bm…
v0.9.109: kicad_export_part (one-off single-part library exports: symbol-only .kicad_sym, footprint-only .pretty, bare…
v0.9.108: kicad_make_part_project (generate pro/sch/pcb around an installed part, for the Web Control per-part surfaces…
v0.9.107: kicad_install_footprint gains model (3D .step/.wrl, base64) -> installs to 3dmodels/Adom + wires the footprin…
v0.9.106: chords resolve via the menu-bar accelerator table -> WM_COMMAND (background); Alt+3 keystroke fallbacks delet…
v0.9.105: every forced foreground announces itself first — ab notify_user caption (attributed to the calling thread) fi…
v0.9.104 FINAL background design (John): guardian touches ONLY KiCad windows — minimize-bounce the offender (OS returns…
v0.9.103: end-of-verb restore is KiCad-conditional — never re-raise the start-of-verb snapshot over a window the user h…
v0.9.102: guardian pre-suppresses ALL visible KiCad windows (0.5s sweep) — closes the free-first-steal hole the 0.9.101…
v0.9.101: PREVENTION guardian — WS_EX_NOACTIVATE on misbehaving KiCad windows (no more fg flashes/churn), cleared on gu…
v0.9.100: background audit fixes — demo worker thread arms its own full-duration focus guardian (dispatcher's 45s expir…
v0.9.99 (#26): plugin-free Win32 menu-bar tier for open_3d_viewer (GetMenu->resolve 3D Viewer->PostMessage WM_COMMAND,…
v0.9.98: show_* verbs added to the dispatcher focus-guardian + foreground-opt-in sets (they were bypassing both because…
v0.9.97: background-first hard rule — keystroke fallbacks gated behind allowFocusSteal (were leaking keys to the user's…
v0.9.96: kicad_show_project — the 8th surface (electronics project / project manager). All 8 surfaces John listed now h…
v0.9.95 (#26): FP path gets plugin-free UIA 3D-viewer tier; 3D window poll 3s->9s for slow renders
v0.9.94: show_3d_board/show_3d_chip wait for the async editor window before the 3D viewer (no more 'not open' race)
v0.9.93: kicad_show_* family (Fusion fusion_show_* parity) — one clean verb per surface: symbol/footprint/3d_chip/schem…
v0.9.92: library-only browse mode (open a LIBRARY without demanding a part load) in both editors
v0.9.91: fp editor cold-spawn wait 8s->34s (new pcbnew + 100+ fp libs post-self-heal)
v0.9.90: fp editor cold-start — retry the PM plugin menu tier AFTER launching the PM (tier order bug)
v0.9.89: footprint editor gets the plugin-free win32 background load tier + honest failures (#21 remainder); suite fp t…
v0.9.88: background kicad_demo with structured progress (#24) — percent/ETA/stepLabel polling + kicad_state final paylo…
v0.9.87: kicad_state verb (#22, all windows as base64 + logical state) + process-verified window matching (#23, no more…
v0.9.86: activate the selected tree row (Enter to tree hwnd + PostMessage dblclick)
v0.9.85: win32 tier uses Down+Enter (KiCad filter forwards nav keys to tree)
v0.9.84: lib-table self-heal (merge missing stock libraries at boot) — root cause of Device:R failing: early bootstrap…
v0.9.83: plugin-free background symbol load (WM_SETTEXT filter + Enter) — #20 works even while eeschema python is cold…
v0.9.82: rm_tree chmod-and-retry onerror (read-only git objects in demo .history blocked cleanup)
v0.9.81: kicad_uninstall testResidue mode — the verb suite cleans up ALL its residue after every run (phase 7)
v0.9.80: NEVER dismiss progress dialogs (their button is Cancel — sweeper was aborting loads mid-verb; suite finding);…
v0.9.79: KiCad-aware focus guardian (never fights the user, demotes thief below, 45s guard for async self-raises), laun…
v0.9.78: CLI-name sweep adom-bridge-cli -> adom-bridge (ab 2.0.35); kicad_uninstall echoes cascade flag
v0.9.77: open_symbol_editor honors symbolName/libraryName (#20) — waits for cold-start plugin, library-qualified filter…