app
Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
← Commit history
v1.9.33: drive-existing-window fallback
4 files changed
+31−6
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.9.32+1.9.33
adom-bridge-fusion-manifest.json+4−4@@ -1,10 +1,10 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.9.32",- "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.32/adom-bridge-fusion-v1.9.32.zip",- "sha256": "d0c532dafa7ae77bad1048c70bf375a7ae8bf5c4379211ebb4ca0f2eb99df076",- "size": 383092,+ "version": "1.9.33",+ "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.33/adom-bridge-fusion-v1.9.33.zip",+ "sha256": "80f27cfa690abe3b8320a7e233a5aa52bf93e75e84010e8bb0a69c30ff2123be",+ "size": 383539, "verbPrefixes": [ "fusion_" ],
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.9.32",+ "version": "1.9.33", "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+25@@ -5420,6 +5420,31 @@ def _orchestrate_signin(args: dict) -> dict: notified = bool(_notify_signin_wall(wall_kind).get("delivered")) steps.append("hit %s wall; toasted the user (delivered=%s)" % (wall_kind, notified)) + if not opened:+ # ABE-less box fallback (John, 2026-08-16: "push through as far as you can go from+ # your code"): the OAuth page is ALREADY OPEN in the browser Fusion fired (that is+ # where we captured the URL). No reopen is possible without the extension - so+ # DRIVE THE EXISTING WINDOW instead: detect the wall, type the email, advance to+ # the password step, toast the human there.+ wall_live = _detect_signin_wall()+ if wall_live.get("wall"):+ _email_fb = args.get("email")+ wall_live = _resolve_and_advance_wall(wall_live, _email_fb)+ wk = wall_live.get("wall")+ notified_fb = bool(_notify_signin_wall(wk).get("delivered")) if wk else False+ steps.append("no extension on this box - drove the EXISTING browser window instead: %s"+ % str(wall_live.get("advance") or "wall %r" % wk))+ return {"success": True, "stage": "driving_existing_window", "done": False,+ "steps": steps, "signinWall": wk, "signinWallHwnd": wall_live.get("hwnd"),+ "advanced": wall_live.get("advanced"), "notifyDelivered": notified_fb,+ "signinWallHint": _wall_hint(wk, notified_fb),+ "signinAuthUrl": auth["url"],+ "narrate": ("This machine has no Adom browser extension, so I drove the sign-in "+ "window Fusion already opened: %s." % str(wall_live.get("advance") or wk)),+ "_hint": ("No ABE here, so the EXISTING browser window was driven directly "+ "(email typed via background UIA where possible). " ++ _wall_hint(wk, notified_fb)),+ "statusVerb": "fusion_readiness"} return {"success": True, "stage": "opened" if opened else "open_failed", "done": False, "steps": steps, "signinWhere": tdesc, "signinProfile": target, "signinOpenedVia": open_via,