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.10: SDK-compliant not-installed hints (offer AI install, not manual)
6 files changed
+26−16
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.6.9+1.6.10
CHANGELOG.md+12@@ -3,6 +3,18 @@ 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.10 - 2026-07-03++- **"Fusion not installed" hints now honor the SDK Tier-2 cardinal rule (found on a fresh-AD test).**+ Testing a first-time run on a clean AD 1.9.74 VM (ADOMBASELINE, no Fusion) showed the bridge's+ not-installed hints said "Fusion cannot be installed programmatically... ask the user to install it+ from autodesk.com... then retry" - a breach of the rule that the AI must OFFER to install the host+ app itself and NEVER tell the user to do it manually. All 4 not-installed hints (+ the `/status`+ tooltip) now offer AI-driven install via the `fusion-onboarding` skill (silent-install + Autodesk+ sign-in). Note: the correct probe for a "what EDA tools are installed" sweep is AD's+ `bridge_readiness` (side-effect-free aggregate with `edaToolsInstalled` + per-bridge `state:no-app`);+ verified it reports Fusion cleanly on the fresh VM via this bridge's `detect` block.+ ## 1.6.9 - 2026-06-30 - **`fusion_start` no longer dead-ends on a slow first launch (fixes #63, Arav's blocker 1).** A first
adom-bridge-fusion-manifest.json+5−5@@ -1,13 +1,13 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.6.9",- "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.9/adom-bridge-fusion-v1.6.9.zip",- "sha256": "8c1e27debcc7a1f2c27d7bcb0ff5d81395f9fdae6b8206b7ce50d66530f10353",- "size": 297978,+ "version": "1.6.10",+ "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.10/adom-bridge-fusion-v1.6.10.zip",+ "sha256": "a70072e14337eeffd759f33dd83cc93ef37a797136ede1145633cb51013fa461",+ "size": 298417, "verbPrefixes": [ "fusion_" ], "healthEndpoint": "/status",- "released_at": "2026-06-30T18:00:00Z"+ "released_at": "2026-07-03T15:30:00Z" }
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.6.9",+ "version": "1.6.10", "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.",
page.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-desktop-fusion-bridge",- "version": "1.6.10",+ "version": "1.6.11", "type": "app", "description": "Drive Autodesk Fusion 360 from the cloud via Adom Desktop: 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 with browse/recent/versions, cloud download/upload and folder creation, and in-app parametric modeling. Never-charge: APS calls are capped to the free tier.", "dependencies": {},
server.py+6−8@@ -96,11 +96,9 @@ def _handle_launch(fusion_info: dict, args: dict) -> dict: if not fusion_info.get("installed"): return { "success": False,- "error": "Fusion 360 is not installed. "- "Download it from https://www.autodesk.com/products/fusion-360 "- "(free for personal/hobby use).",+ "error": "Fusion 360 is not installed on this machine.", "errorCode": "fusion_not_installed",- "_hint": "Fusion 360 cannot be installed programmatically. Report this to the user and ask them to install it from https://www.autodesk.com/products/fusion-360, then retry.",+ "_hint": "Fusion 360 isn't installed. Do NOT tell the user to install it themselves - OFFER to install it FOR them and do it on a yes: the fusion-onboarding skill silent-installs Fusion + drives the Autodesk sign-in. (For a plain 'what EDA tools are installed' check, AD's bridge_readiness reports this cleanly without erroring.)", } if _is_fusion_running():@@ -1959,7 +1957,7 @@ def dispatch_command(command: str, args: dict) -> dict: "success": False, "error": "Fusion 360 is not installed on this machine.", "errorCode": "fusion_not_installed",- "_hint": "Fusion 360 cannot be installed programmatically. Report this error to the user and ask them to install Fusion from https://www.autodesk.com/products/fusion-360 (free for personal/hobby use), then retry.",+ "_hint": "Fusion 360 isn't installed. Do NOT tell the user to install it themselves - OFFER to install it FOR them and do it on a yes: the fusion-onboarding skill silent-installs Fusion + drives the Autodesk sign-in.", } if not _is_fusion_running(): return {@@ -2110,7 +2108,7 @@ def dispatch_command(command: str, args: dict) -> dict: "success": False, "error": f"Fusion 360 is not installed on this machine. (command: {command})", "errorCode": "fusion_not_installed",- "_hint": "Fusion 360 cannot be installed programmatically. Report this to the user and ask them to install it from https://www.autodesk.com/products/fusion-360, then retry.",+ "_hint": "Fusion 360 isn't installed. Do NOT tell the user to install it themselves - OFFER to install it FOR them and do it on a yes: the fusion-onboarding skill silent-installs Fusion + drives the Autodesk sign-in.", } if not _is_fusion_running(): return {@@ -2149,8 +2147,8 @@ def _build_status() -> dict: "need a Windows host with Fusion 360 installed.") elif not installed: led, summary = "yellow", "Fusion not installed"- tooltip = ("Bridge running, but Fusion 360 is not installed. Install it from "- "autodesk.com/products/fusion-360, then call fusion_start.")+ tooltip = ("Bridge running, but Fusion 360 is not installed. The AI can install it "+ "for the user (fusion-onboarding), then fusion_start.") elif not running: led, summary = "yellow", "Fusion not running" tooltip = "Fusion 360 is installed but not running. Call fusion_start to launch it."