app
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.
← Commit history
v0.2.38 (insiders): 0.2.38: review fixes - cleanup_libs keeps a non-empty Component_1, set_params/add_body refuse an ambiguous empty name, extract_intlib scopes sources to the IntLib's folder, schematic_data honours params, licence gates on symbol_prims/import_kicad, setup_trial stops claiming a launch it does not do
4 files changed
+14−3
CHANGELOG.md+11@@ -1,5 +1,16 @@ # Changelog +## 0.2.38 (2026-09-21)+Correctness pass over the findings from the code review, each one verified in the source before it was touched.++- **`cleanup_libs` no longer deletes a symbol someone drew.** It removed a SchLib component named `Component_1` unconditionally, pins and all; the PcbLib side had always checked the footprint was empty first. Now both sides only remove the empty factory stray, and the reply reports `keptNotEmpty`.+- **`set_params` and `add_body` refuse an ambiguous empty name** (`errorCode: name_required`, with the count). With no name they took whichever component the iterator yielded first, so against a multi-symbol library they silently wrote a footprint, a comment or a 3D body onto an arbitrary part. An omitted name now only means "the one component in here".+- **`extract_intlib` reports the libraries it actually extracted.** `sources[]` listed every `.SchLib`/`.PcbLib` open anywhere in the workspace; it is now scoped to the IntLib's own folder, and says so in `searchedUnder`.+- **`schematic_data {params:true}`** now reaches the agent. The agent has always honoured it, but the dispatch never sent the flag, so `params[]` came back empty and the docs had to apologise for it.+- `symbol_prims` and `import_kicad` gate on the licence like every other authoring verb, instead of failing later and less clearly.+- `setup_trial` no longer says "Launching it next" at a stage where it launches nothing — it names the next action, which is its whole contract.+- Reviewed and found correct, no change: `run_outjob` opens the .OutJob with `ObjectKind=Document` (the object kind for the RUN step is separate, and is passed), and `run_drc` promises nothing it does not return.+ ## 0.2.37 (2026-09-21) - **`altium_launch` hands the user's window back.** Altium foregrounds itself at startup and offers no switch for it, so the bridge now remembers the window the user was working in and restores it once Altium has settled (`foregroundReturnedTo`, `windowEtiquette: background`). `background:false` opts out when the user asked to watch Altium come up. John, twice in two days: "dude u keep forcing altium in front of me while i'm typing". - Full battery GREEN ON BOTH BUILDS: 122 verbs, **113 pass, 0 fail**, 9 skipped for safety, on Altium Designer 26.10.1 (arav-rog) and Altium Designer Develop (ConfRoomROG) — `close` included, for the first time. Both machines were left with no Altium running and no dialog on screen.
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "altium-bridge",- "version": "0.2.37",+ "version": "0.2.38", "type": "app", "description": "Skills for your container so your AI knows how to drive the Altium Designer bridge (altium_* verbs). The bridge runtime itself is the release zip; Adom Bridge loads that.", "tags": [
src/BRIDGE_VERSION+1−1@@ -1 +1 @@-0.2.37+0.2.38
src/bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "altium", "displayName": "Altium Designer",- "version": "0.2.37",+ "version": "0.2.38", "description": "Drive Altium Designer from Adom: a resident DelphiScript agent (eval + the 1,100-command process launcher), the X2 -R command line, UIA over the VCL shell, dialogs by PID, screenshots of every Altium window, and Altium 365.", "homepage": "https://wiki.adom.inc/adom/altium-bridge", "docs": "https://wiki.adom.inc/adom/altium-bridge",