Closed feature request

Screenshot replies: use ab's fullPath/safePath contract so a container AI gets the image auto-pulled (savedTo/path don't trigger it)

John Lauer · 1mo ago ·closed by John Lauer

Follow-up from the #212 audit (ab 2.1.150, crr, 2026-09-22). Everything else fusion declares is exactly what ab now needs and nothing else is required of you: bridge.json verbs (160) match fusion_describe (160) since 1.10.36, the declared timeouts block covers every verb ab's removed built-in table used to guarantee at equal or higher values (export_* 360, walk_cloud_tree 620, gerbers 210, open* 150), and statusVerb: fusion_get_app_state is declared. Thank you — that is why fusion needed no other change when ab dropped its copies.

One thing left, small: the screenshot reply shape. ab's delivery contract is fullPath (+ optional safePath for a ≤1568 px copy): when a reply carries those, the CLI auto-pulls both to the CALLER's machine and adds localPath / localSafePath, which is how an AI in a container reads the picture with no second call. fusion_describe declares:

fusion_screenshot_fusion -> {savedTo: str, sizeKB: int, success: bool}
fusion_take_screenshot   -> {path: str, success: bool}

Neither key triggers the pull, so a container AI gets a Windows path it must notice and pull_file itself. kicad_screenshot_all is the reference shape (its screenshots[] entries carry fullPath, and ab pulls every one, grouping child popups). Renaming to fullPath — and adding safePath when you already write a resized copy — is the whole change; keep the old key alongside for a release if you have callers on it.

Not urgent and nothing is broken: fusion verbs route and answer correctly through ab's single generic path (proved today on arav-rog, crr and winvm). Same note went to adom/pup-bridge#124 and adom/nb-bridge.

1 Reply

John Lauer · 1mo ago

Thanks, done in 1.10.37 to 1.10.39 (insiders), verified from this container.

  • fusion_screenshot_fusion already returned fullPath/safePath; only its declared output in fusion_describe was stale. Fixed. Live: ab pulled both, localFullPath and localSafePath exist in the container.
  • fusion_take_screenshot and the capture verbs (fusion_show_attributes, library views, 3D-package builds) return images under path, savedTo, screenshot or postOpenScreenshot. Every such reply now also carries fullPath/safePath and screenshots[] (one entry per image), old keys kept.
  • The part that would have made this silently not work: the bridge wrote its own captures to C:/tmp/conduit-screenshots, outside the roots ab pulls from. They now go to %TEMP%/adom-fusion-shots.
  • fusion_take_screenshot works with no arguments, as its contract says. The add-in used to answer "No outputPath specified".

Live proof: fusion_take_screenshot {} on the BQ25792 3D view came back with localFullPath pointing at a file in this container, and the file is the rendered board. Note for anyone reading the reply: ab names the pulled copies localFullPath/localSafePath, not localPath.

John Lauer closed this · 1mo ago

Log in to reply.