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
#signin capture reliability: copy History -wal/-shm so a just-opened authorize URL is visible (Chrome buffers writes), widen window to 45min (URL stays valid while Fusion waits on the request_id)
5 files changed
+18−11
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.6.92+1.6.93
adom-bridge-fusion-manifest.json+5−5@@ -1,13 +1,13 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.6.92",- "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.92/adom-bridge-fusion-v1.6.92.zip",- "sha256": "8b5b1a628b0bbf7b5931732c02ae00a236e07c8d9ffde827b0a7bd0c777e68e8",- "size": 479701,+ "version": "1.6.93",+ "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.93/adom-bridge-fusion-v1.6.93.zip",+ "sha256": "767d61e543c394e1b9c04478a5c268b7f0568b16dfe6ede8b29775df546c2650",+ "size": 479846, "verbPrefixes": [ "fusion_" ], "healthEndpoint": "/status",- "released_at": "2026-07-21T01:59:11Z"+ "released_at": "2026-07-21T02:04:54Z" }
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.6.92",+ "version": "1.6.93", "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+2−3@@ -1,6 +1,6 @@ { "slug": "adom-desktop-fusion-bridge",- "version": "1.6.92",+ "version": "1.6.93", "type": "app", "description": "Installs this bridge's skills into your container so your AI knows how to drive the bridge. The bridge runtime itself is loaded by Adom Desktop from the release zip.", "dependencies": {@@ -74,6 +74,5 @@ "set up the fusion bridge" ], "discovery_pitch": "Use the Adom Desktop Fusion 360 bridge when the user wants to DRIVE Autodesk Fusion 360 from the cloud: open/search their team's Fusion cloud designs, lay out a PCB or do electronics, export STEP/IGES/STL/Gerbers/BOM, or build a component library with real rendering 3D. It runs Fusion on the user's own machine via Adom Desktop. NOT for web/browser/login/form-filling (that's the native-browser extension) and NOT for KiCad (that's the kicad bridge).",- "brief": "Drive Autodesk Fusion 360 from the cloud via Adom Desktop: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.",- "visibility": "public"+ "brief": "Drive Autodesk Fusion 360 from the cloud via Adom Desktop: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling." }
server.py+9−1@@ -3672,7 +3672,7 @@ def _remember_signin_profile(profile: str): pass -def _chrome_authorize_urls(max_age_min: int = 12):+def _chrome_authorize_urls(max_age_min: int = 45): """Scan Chrome + Edge profile History DBs for RECENT Autodesk-desktop OAuth authorize URLs (the Fusion Identity SDK ones - marked by `idsdk` / redirect to idmgr/callback). @@ -3702,7 +3702,15 @@ def _chrome_authorize_urls(max_age_min: int = 12): tmp = os.path.join(tempfile.gettempdir(), "adom_hist_%s_%s.db" % (browser, prof_dir)) try: shutil.copy2(hist, tmp) # copy first - Chrome keeps History locked+ # Chrome buffers recent rows in the -wal; copy it too or a fresh authorize URL+ # is invisible (this was the bug: a just-opened sign-in did not appear).+ for ext in ("-wal", "-shm"):+ if os.path.exists(hist + ext):+ try: shutil.copy2(hist + ext, tmp + ext)+ except Exception: pass con = sqlite3.connect(tmp)+ try: con.execute("PRAGMA journal_mode=WAL")+ except Exception: pass rows = con.execute( "SELECT url, last_visit_time FROM urls " "WHERE url LIKE '%developer.api.autodesk.com/authentication/v2/authorize%' "