← Commit history

v1.9.13: harness-contract tour payload

John Lauer ·06163c20fe ·1mo ago ·parent 287cb98
4 files changed +16−8
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.9.12\ No newline at end of file+1.9.13\ No newline at end of file
adom-bridge-fusion-manifest.json+4−4
@@ -1,10 +1,10 @@ {     "manifest_version": 1,     "name": "fusion360",-    "version": "1.9.12",-    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.12/adom-bridge-fusion-v1.9.12.zip",-    "sha256": "0980efdacd06ebc1ebf6ceec5cfbfa06eae7ac8498d49dec7588c7fcb34e7cd4",-    "size": 358995,+    "version": "1.9.13",+    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.13/adom-bridge-fusion-v1.9.13.zip",+    "sha256": "1e24a64848d11e5735d58dc048656a9653cd38147dc307fac65ea85474d68031",+    "size": 359243,     "verbPrefixes": [         "fusion_"     ],
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "fusion360",   "displayName": "Autodesk Fusion 360",-  "version": "1.9.12",+  "version": "1.9.13",   "description": "Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.",   "homepage": "https://wiki.adom.inc/adom/fusion-bridge",   "author": "Adom Inc.",
server.py+10−2
@@ -5625,10 +5625,12 @@ def _orchestrate_demo_tour(args: dict) -> dict:         _DEMO_TOURS[demo_id] = state      def _snap(label):+        # {title, image} is the ab web-control harness's gallery item contract (issue #29+        # reply, harness live in ab 2.0.39) - label kept as an alias.         try:             r = _handle_screenshot_fusion({}, {})             if r.get("success") and r.get("localSafePath"):-                state["shots"].append({"label": label, "path": r.get("localSafePath")})+                state["shots"].append({"title": label, "label": label, "path": r.get("localSafePath")})         except Exception:             pass @@ -5657,7 +5659,7 @@ def _orchestrate_demo_tour(args: dict) -> dict:                     if not r.get("success"):                         raise RuntimeError(str(r.get("error")))                     if r.get("screenshot"):-                        state["shots"].append({"label": label, "path": r["screenshot"]})+                        state["shots"].append({"title": label, "label": label, "path": r["screenshot"]})                 elif key == "3d-package":                     cp = _proxy_to_addin("execute_text_command",                                          {"command": "Electron.Create3DPackage %s" % state["sampleLbr"]}, timeout=60)@@ -5674,6 +5676,7 @@ def _orchestrate_demo_tour(args: dict) -> dict:                             pass                     else:                         state.setdefault("warnings", []).append("3d-package step skipped: " + str(cp.get("error")))+                        state.setdefault("failedSteps", []).append(key)                 elif key == "open-design":                     r = dispatch_command("open_cloud_file", {"query": query, "wait": False})                     deadline = time.time() + 170@@ -5690,10 +5693,15 @@ def _orchestrate_demo_tour(args: dict) -> dict:                 done_est += dur                 state.update(percent=int(100 * done_est / est),                              elapsedSec=int(time.time() - state["started"]))+            n_shots = len(state.get("shots") or [])             state.update(done=True, percent=100, step="done", stepLabel="Tour complete",+                         narrate="Fusion tour complete: %d views captured across the electronics library%s." % (+                             n_shots, " and the board design" if include_design and query else ""),                          elapsedSec=int(time.time() - state["started"]))         except Exception as e:+            state.setdefault("failedSteps", []).append(state.get("step"))             state.update(failed=True, done=True, error=str(e)[:300],+                         narrate="Fusion tour stopped at '%s': %s" % (state.get("stepLabel"), str(e)[:120]),                          elapsedSec=int(time.time() - state["started"]))      threading.Thread(target=_run, daemon=True, name="fusion-demo-tour").start()