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.6.29: readiness always live-detects (fix stale installed:true after Fusion removed)
5 files changed
+22−11
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.6.28+1.6.29
CHANGELOG.md+9@@ -3,6 +3,15 @@ All notable changes to the Adom Desktop Fusion 360 bridge, newest first. Canonical: https://wiki.adom.inc/adom/adom-desktop-fusion-bridge ยท GitHub backup: `adom-inc/adom-desktop-fusion-bridge` +## 1.6.29 - 2026-07-05++- **Fixed `fusion_readiness` trusting a stale install cache.** It read the bridge-START+ `fusion_info.installed` snapshot and only re-detected when that was False - so after Fusion was+ UNINSTALLED (or a VM reset wiped it) while the bridge kept running, readiness still reported+ `installed/running/ready:true` on a machine with `NO_WEBDEPLOY` on disk (found live during a+ fresh-VM validation on ADOMBASELINE). It now ALWAYS live-detects via `detect_fusion()` (a fast+ filesystem scan), so readiness reflects reality whether Fusion was just installed OR just removed.+ ## 1.6.28 - 2026-07-05 - **New `fusion_set_preference` + `fusion_get_preferences` verbs** - drive Fusion's appearance and
adom-bridge-fusion-manifest.json+5−5@@ -1,13 +1,13 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.6.28",- "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.28/adom-bridge-fusion-v1.6.28.zip",- "sha256": "099cd9e3c87ae9f0b638eab24cfd3807f173c485c3c46578baa669eec3fecb86",- "size": 327488,+ "version": "1.6.29",+ "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.29/adom-bridge-fusion-v1.6.29.zip",+ "sha256": "24d0f185b6e79e84b184a03cbdaf3d1ab9eb803162c47ff605ccded702bd54aa",+ "size": 327829, "verbPrefixes": [ "fusion_" ], "healthEndpoint": "/status",- "released_at": "2026-07-05T12:39:42Z"+ "released_at": "2026-07-05T20:41:01Z" }
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.6.28",+ "version": "1.6.29", "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/adom-desktop-fusion-bridge", "author": "Adom Inc.",
server.py+6−4@@ -760,10 +760,12 @@ def _handle_fusion_readiness(fusion_info: dict, args: dict) -> dict: Does NOT launch Fusion (fast-fails when it's not running). AD DETECTS Fusion (never installs it) via bridge.json 'detect', and auto-installs Python if missing (AD >=1.9.47) - this verb just reports state. Pairs with AD's bridge_readiness."""- installed = bool(fusion_info.get("installed"))- if not installed:- # re-detect live: an install may have JUST finished (fusion_info is from bridge start)- installed = bool(detect_fusion().get("installed"))+ # ALWAYS live-detect. fusion_info is a bridge-START snapshot; Fusion may have been+ # installed OR UNINSTALLED since. Trusting a cached installed:True made readiness+ # report installed/running/ready:true on a machine where Fusion had been removed+ # (found live on a fresh VM 2026-07-05: NO_WEBDEPLOY on disk, yet readiness said+ # ready). detect_fusion() is a fast filesystem scan, so pay it every call.+ installed = bool(detect_fusion().get("installed")) running = _is_fusion_running() if installed else False installing = (not installed) and _installer_running()