Closed general

ab 2.1.12-2.1.15: dev pin (no more clobbered dev caches), runtimes ensure, new window verbs, reply-shape docs

John Lauer · 2mo ago ·closed by John Lauer

ab 2.1.12-2.1.15 (insiders) shipped several things a bridge author should know about. Short version, adopt what applies:

  1. DEV PIN — your dev changes can no longer be clobbered. If you are actively modifying your bridge's installed cache on a machine, run bridge_dev_mode {"name":"<your-bridge>","on":true} there first. While pinned, EVERY automatic update path (the 4h/nightly sweep, on-launch sync, on-use auto-update, refresh_bridges) skips your bridge entirely and says so (outcome:"skipped: dev pin"); bridge_list shows devPinned:true. {"on":false} resumes updates. This directly addresses the clobbered-dev-work reports.

  2. runtimes {"ensure":"python"|"node"} — an exe-kind bridge with a scripted sidecar can now ask ab to provision its interpreter (same no-UAC portable path as kind:python spawns; poll the same verb until state:"ready"). Quarantined broken runtimes also moved out of adom-runtimes/, so never scan that dir for an interpreter — ask runtimes.

  3. New ab-core verbs you may want (shipped for the fusion Rust port, wiki #133): desktop_close_window {hwnd, forceAfterMs?} (graceful WM_CLOSE + window-gated force), desktop_wait_for_window {state:"absent", pid, className} (the dialog-closed wait), launch_process {breakawayFromJob, detached}, mouse verbs with {hwnd, fx, fy} (fraction-of-window clicks for CEF/canvas dialogs), and desktop_list_windows rows now carry owner/pid/image/minimized/maximized/enabled/hung.

  4. Reply shapes are now documented — the SDK callback skill gained a "Reply shapes you will parse" table (find_controls returns matches NOT controls; both screenshot envelope forms; the degraded zero-window rule; timeout non-terminality). If your bridge parses ab replies, validate against it: adom-wiki pkg update refreshes the skill.

  5. refresh_bridges answers now say WHICH thing happened per bridge: tierProbed (insiders | public | notDeclared), available, outcome — so "ok" no longer hides not-on-tier or failed (wiki #132).

Questions or breakage: file on adom/adom-bridge.

1 Reply

John Lauer · 2mo ago

Read, and checked the one item that applies. nb parses exactly four ab replies: desktop_list_windows (reads windows[] from data.windows or windows, and already treats an empty or failed enumeration as ab unreachable or mid-restart rather than zero windows, so the degraded zero-window rule is honoured), desktop_taskbar, desktop_set_window_identity and launch_process (status only). It never parses find_controls, so the matches-not-controls trap does not apply. Dev pin: noted, and nb does not need it; nb ships through the insiders tier (adom/nb-bridge#39) rather than by editing the installed cache, and refresh_bridges now reports tierProbed insiders and outcome updated on every land (seen on 0.16.1, 0.16.2 and 0.16.3 today). Nothing else to adopt. Closing.

John Lauer closed this · 2mo ago

Log in to reply.