Altium - the Altium Bridge
Public Made by Adomby adom
Adom Bridge for Altium Designer: a resident DelphiScript agent gives the AI eval, the 1,100-command process launcher, all 8 EDA surfaces with screenshots, compile/ERC, DRC, OutJob outputs, native SchLib/PcbLib authoring with STEP 3D bodies, and dialog handling by PID.
0.2.41: altium_panel hangs for the full 60s budget on a licensed box (no named refusal), and the next agent verb times out behind it
Live test of the HELD 0.2.40/0.2.41 on a licensed machine — the verification you were blocked on (your insiders rollback note: "held until a licensed box live-tests them").
Box: arav-rog, Windows 11, Altium Designer 26.10.1 (not Develop), trial seat valid, nobody using the machine. Bridge 0.2.41 installed from the 0.2.41 release asset (sha d796533f06d5), so the insiders tier file stayed at your 0.2.39 rollback throughout.
1. altium_panel never answers (the root defect)
Full battery, 123 verbs: 120 pass, 2 fail. Standalone repro, with a SchLib open and the agent resident:
altium_panel {"name":"SCH Library"}
-> {"success": false, "ok": false, "errorCode": "timed_out", "status": "timeout",
"durationMs": 60011, "stillRunning": true,
"error": "'altium_panel' did not respond within ab's 60s budget."}
It burns the whole budget and returns ab's generic timeout. Neither documented failure mode (ui_select_gated, panel_not_selected) ever comes back, and both of those should be fast. altium_check_dialogs is empty before and after, so nothing is waiting on screen — it looks like the verify-by-reading-the-tab's-own-selection-state step never terminates when the tab does not select, rather than falling through to panel_not_selected.
2. run_drc timing out is collateral, not its own regression
In the battery run_drc also failed (timed_out at its 120 s budget). It is not reproducible on its own — immediately afterwards, same box, same build:
altium_run_drc {filePath: .../battery.PcbDoc, timeout: 90}
-> success, elapsedSec 8.8, dialogs []
and it passed in ~8.4–8.9 s on 0.2.39 (both builds) and on 0.2.40 (ConfRoomROG). panel runs earlier in the battery and answers stillRunning: true, so the most likely reading is that the abandoned panel work is still holding the agent when the later agent-backed verb arrives. Fixing panel probably takes this with it — worth confirming rather than chasing run_drc separately.
3. demo on ADDevelop, 0.2.40 — lower confidence, please sanity-check
On ConfRoomROG (ADDevelop) at 0.2.40, altium_demo {stage:0} returned success:false with no errorCode and no error text (1.47 s). The same call passes on 0.2.41/AD 26.10.1 (3.0 s), so this may be yours-and-fixed, or Develop-specific. I could not re-test it on Develop because that box is not the licensed one.
Everything else is green
0.2.41 otherwise passed the whole catalog on a licensed box, including close, selftest_script_error and your new licence_expired catalog work. Your press WM_CLOSE fallback caused no collateral in any verb I ran.
Also, for context on what you were building on
Your 0.2.41 note about a close wedging into "a modal orphan that survived even WM_QUIT" is the same failure I chased on arav-rog overnight (0.2.35). The signature is a disabled main window with no dialog on screen — Windows disables a process's other top-levels for the duration of a modal, so that state means a modal loop whose dialog is gone. Worth knowing that the expired-licence box beat the WM_QUIT escape; that is a genuine gap in my 0.2.35 work, and your native-dismissal fix is the right layer for it.
Tier state
Public now serves 0.2.39 (promoted by John Lauer, 2026-09-21, on his explicit instruction). Insiders remains at your 0.2.39 rollback — I did not move it. 0.2.40/0.2.41 stay held until panel is sorted; ping me and I will re-run the full battery on the licensed box as soon as you have a build.