← Commit history

v0.2.26 (insiders): 0.2.26: silent script halts caught (window flips to the agent script), 47 raw number conversions made non-raising (bad_number), import_part refuses nothing_to_import, verb battery added

John Lauer ·2a0b89cedd ·1mo ago ·parent 3fac261
4 files changed +10−3
CHANGELOG.md+7
@@ -1,5 +1,12 @@ # Changelog +## 0.2.26 (2026-09-20)+Found by the new verb battery (`dev-skills/altium-bridge-test`), first full pass on Altium Designer Develop:+- **Silent script halts are caught.** Altium Develop can stop the agent in its script debugger WITHOUT raising an error box (it did on `board_shape`): the box watcher from 0.2.21 saw nothing, the agent stayed dead, and ~30 verbs in a row queued behind it and timed out. Altium does give one tell: it pulls the agent's script document to the front. `agent::call` now treats "the main window flipped to `AdomAgent_*` while my command is in flight" as a halt after a 1.5 s grace for the box watcher: it photographs the editor, sends `EditScript:Stop` and returns `agent_script_error` with `silentHalt:true`.+- **Malformed numbers can no longer raise inside Altium.** The agent called raw `StrToFloat` / `StrToInt` on caller values in 47 places; anything malformed (`create_footprint` with pads in the wrong shape) raised `EConvertError`, i.e. an Error box on the user's screen. All of them now go through `AdomFloat` / `AdomInt`, which never raise, and the dispatcher answers `errorCode: bad_number` naming the offending value. `scripts/release.py` refuses a build with a raw conversion outside those two helpers.+- `altium_import_part` with nothing to import answered `success:true`; it now refuses with `nothing_to_import`.+- New dev skill + runner: `dev-skills/altium-bridge-test/run_verb_tests.py`, every verb in the live catalog, coverage-enforced, a dialog check after every verb, scratch documents only, closes Altium when done (Author seats), and REFUSES to start unless the target machine has been idle (it raises Altium, and it did so over the user's typing on its first run).+ ## 0.2.25 (2026-09-20) - **A document that did not open is now a failure, with the reason.** `altium_open_document` (and the open every library/board verb does first) answered `ok:true` with `shown:false` buried in `data` when Altium silently refused the file; the verb then failed with a misleading "open the SchLib first" / "current document is not a schematic library". Now: `errorCode: file_not_found`, `view_only_no_author_seat` or `document_not_opened`, and 14 verbs that need the document stop there instead of running against the wrong one (`run_drc`'s refocus and `import_part`'s opens stay best-effort). Projects are exempt (they have no document view). - `view_only_no_author_seat`: measured on Altium Designer Develop. A second running Altium (another machine) held the workspace's only Author seat; Develop raised "Workspace Unavailable" at launch (acknowledged by the reaper), showed "There are no Author seats available ... view-only mode" behind the warning triangle, kept already-open documents working and refused every new one. The hint says so and gives the fix: close the other Altium cleanly, relaunch this one. No sign-in is involved.
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "altium-bridge",-  "version": "0.2.25",+  "version": "0.2.26",   "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.25+0.2.26
src/bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "altium",   "displayName": "Altium Designer",-  "version": "0.2.25",+  "version": "0.2.26",   "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",