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.5: host-app detect block (AD 1.9.47) + fusion_readiness verb + onboarding/CLAUDE updates
8 files changed
+75−12
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.6.4+1.6.5
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.5 - 2026-06-30++- **Host-app DETECTION declared (AD >=1.9.47).** bridge.json gains a `detect` block+ (`hostApp: "Fusion 360"`, Windows `%LOCALAPPDATA%\Autodesk\webdeploy\production\*\FusionLauncher.exe`+ mirroring `fusion_detect.py`, macOS `/Applications/Autodesk Fusion[ 360].app`) so AD DETECTS Fusion+ (the user's host app) instead of trying to install it. The status path fast-fails cleanly when+ Fusion isn't running.+- **NEW `fusion_readiness` verb** - a fast `{installed, running, ready, hostApp, bridgeVersion}` check+ that never launches Fusion; the `fusion-onboarding` skill now opens with it (and AD's+ `bridge_readiness`). CLAUDE.md notes AD now auto-installs Python in the background, so the deploy+ trap's spawn case is handled by AD.+ ## 1.6.4 - 2026-06-29 - **Folder hygiene, part 2: `make_3d_package` no longer saveAs-es to the project ROOT either.** v1.6.3
CLAUDE.md+3−1@@ -55,7 +55,9 @@ there. The exact, watched-it-happen release sequence (AFTER publishing to the wi - **⚠️ TRAP (hit 2026-06-29): `python`/`py` are NOT on the box's shell PATH.** AD spawns the bridge with its OWN python, so `python install_addin.py` via `shell_execute` returns "Python was not found" / errors with empty output (same Windows-Store-alias stub that makes a bridge fail to- respawn). `cmd /c copy` and `robocopy` also fight you on the spaces in `Adom Desktop` / `Autodesk+ respawn). (AD >=1.9.47 now AUTO-INSTALLS Python in the background when Fusion is present but Python+ is missing - so the bridge-SPAWN case is handled by AD; but a `python` you invoke yourself via+ `shell_execute` still won't resolve, so the file-copy deploy below remains the way.) `cmd /c copy` and `robocopy` also fight you on the spaces in `Adom Desktop` / `Autodesk Fusion 360` (robocopy exit 16). **The reliable deploy that needs NO shell + NO python:** copy the changed add-in file(s) with the BRIDGE's own file verbs - `read_file {path:<cache>/addin/AdomBridge/ commands/<f>.py}` then `write_file {path:<Roaming>/.../AddIns/AdomBridge/commands/<f>.py, content}`
adom-bridge-fusion-manifest.json+5−5@@ -1,13 +1,13 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.6.4",- "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.4/adom-bridge-fusion-v1.6.4.zip",- "sha256": "7d12ea97123991de94de6a76983391cba3589cdcfe4be025597cb54e6db4335a",- "size": 290714,+ "version": "1.6.5",+ "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.5/adom-bridge-fusion-v1.6.5.zip",+ "sha256": "e8e4ba61c714a2615cd68b249a3298a6c6e09b1febc738795df1824cb35f3928",+ "size": 292304, "verbPrefixes": [ "fusion_" ], "healthEndpoint": "/status",- "released_at": "2026-06-29T21:30:00Z"+ "released_at": "2026-06-30T12:30:00Z" }
bridge.json+15−2@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.6.4",+ "version": "1.6.5", "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://github.com/adom-inc/adom-desktop-fusion-bridge", "author": "Adom Inc.",@@ -20,6 +20,7 @@ ], "verbs": [ "fusion_describe",+ "fusion_readiness", "fusion_start", "fusion_kill", "fusion_stop",@@ -92,5 +93,17 @@ "releasedAt": "2026-06-26T06:00:00Z", "statusVerb": "fusion_get_app_state", "updateManifestUrl": "https://wiki.adom.inc/api/v1/pages/adom-desktop-fusion-bridge/files/adom-bridge-fusion-manifest.json",- "healthEndpoint": "/status"+ "healthEndpoint": "/status",+ "detect": {+ "hostApp": "Fusion 360",+ "paths": {+ "windows": [+ "%LOCALAPPDATA%\\Autodesk\\webdeploy\\production\\*\\FusionLauncher.exe"+ ],+ "macos": [+ "/Applications/Autodesk Fusion.app",+ "/Applications/Autodesk Fusion 360.app"+ ]+ }+ } }
describe.py+2@@ -24,6 +24,8 @@ _T = [ {"name": "optional str (default: active)"}, {"success": "bool"}, 30, None, False, {}), ("fusion_get_app_state", "Current app state: running, active document, workspace, isElectronics. The poll/status verb for long-running calls.", {}, {"activeDocument": "str", "activeWorkspace": "str", "isElectronics": "bool"}, 20, None, False, {}),+ ("fusion_readiness", "FAST readiness check (does NOT launch Fusion): is the Fusion host app installed + running + the bridge ready to drive? AD DETECTS Fusion (never installs it) via bridge.json 'detect', and auto-installs Python if missing (AD >=1.9.47). Call this before driving Fusion; if installed-but-not-running, fusion_start. Pairs with AD's bridge_readiness.",+ {}, {"installed": "bool", "running": "bool", "ready": "bool", "hostApp": "str", "bridgeVersion": "str"}, 15, None, False, {}), # ── Cloud search & files (APS) ───────────────────────────────────────── ("fusion_aps_status", "APS state: configured, signed in, token live, never-charge meter.",
server.py+26@@ -560,8 +560,34 @@ def _handle_relocate_recovery(fusion_info: dict, args: dict) -> dict: } +def _handle_fusion_readiness(fusion_info: dict, args: dict) -> dict:+ """FAST readiness check for the AI: is the Fusion host app present + running + the bridge ready?+ 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"))+ running = _is_fusion_running() if installed else False+ ready = installed and running+ return {+ "success": True,+ "hostApp": "Fusion 360",+ "installed": installed,+ "running": running,+ "ready": ready,+ "bridgeVersion": BRIDGE_VERSION,+ "_hint": (+ "READY - drive Fusion (fusion_open_lbr / build_library_3d / etc.)." if ready else+ ("Fusion is INSTALLED but not running - call fusion_start (blocks until the add-in is ready), then retry."+ if installed else+ "Fusion 360 is NOT installed. AD detects (never installs) the host app via bridge.json 'detect'; "+ "ask the user to install Fusion from autodesk.com. (Python is auto-installed by AD if missing.)")+ ),+ }++ COMMAND_HANDLERS = { "describe": lambda fi, args: describe.handle_describe(args),+ "readiness": _handle_fusion_readiness, "open_design": handle_open_design, "close": handle_close_fusion, # deprecated alias - use stop (graceful) / kill (force) "stop": handle_fusion_stop, # graceful: close docs + WM_CLOSE, NO force-kill
skills/fusion-onboarding/SKILL.md+11−3@@ -13,9 +13,17 @@ work — nobody has to pay to get value. All laptop steps run via `adom-desktop --target <laptop> shell_execute` / `run_script` / `send_files`. Drive the user's own machine; don't ask them to do steps you can do. -## Step 0 — Detect that Fusion is missing-`fusion_start` (or `fusion_addin_status`) returns `errorCode: fusion_not_installed`, or-`fusion_detect` shows `installed:false`. That's the trigger to onboard.+## Step 0 — Check readiness (fast, never launches Fusion)+Call **`fusion_readiness`** (or AD's **`bridge_readiness`**) FIRST - it reports `installed` / `running`+/ `ready` without launching anything:+- `installed:false` → onboard (the steps below).+- `installed:true, running:false` → **no onboarding needed**, just `fusion_start`, then drive.+- `ready:true` → drive Fusion directly.++NOTE (AD >=1.9.47): AD **DETECTS** the Fusion host app (via the bridge.json `detect` block - the+`%LOCALAPPDATA%\Autodesk\webdeploy\production\*\FusionLauncher.exe` path) but **NEVER installs it** -+Fusion is the user's host app. AD also **auto-installs Python** in the background if it's missing. So+onboarding is only about Fusion itself + the Autodesk login + deploying the add-in. ## Step 1 — Download the Fusion installer The installer is the small "Fusion Client Downloader" (it streams the full app during install).