← Commit history

v1.6.29: readiness always live-detects (fix stale installed:true after Fusion removed)

John Lauer ·3fd6729e4f ·3mo ago ·parent 9cce692
5 files changed +22−11
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.6.28\ No newline at end of file+1.6.29\ No newline at end of file
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()