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
page.json+7−10@@ -11,10 +11,6 @@ "uninstall": "./uninstall.sh" }, "tags": [- "ab",- "bridge",- "fusion",- "desktop-app", "fusion360", "autodesk", "cad",@@ -79,10 +75,7 @@ "build a basic parts library", "add a 3d model to a component", "make a fusion 360 library with 3d",- "set up the fusion bridge",- "fusion dashboard",- "fusion status page",- "open the fusion launch page"+ "set up the fusion bridge" ], "discovery_pitch": "Use the Adom Bridge 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 Bridge. 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 Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.",@@ -111,5 +104,9 @@ "label": "Part volume", "prompt": "How much material does each printed part in this assembly use?" }- ]-}+ ],+ "author": {+ "name": "John Lauer",+ "email": "[email protected]"+ }+}
tools/release.sh+32−1@@ -51,6 +51,12 @@ fi [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || die "version must be X.Y.Z, got '$VERSION'" echo "== LOCKSTEP RELEASE $VERSION ==" +# RALPH WIDTHS (fleet lesson, 2026-08-25): John's dock pane measures ~744px and the pane+# band is ~744-853px. A breakpoint bug is INVISIBLE to anyone whose test widths straddle it+# (pup tested 1280 and 390, either side of 744, and never saw a two-column panel fail to+# render for months). Any dashboard layout work must be ralph-tested AT 744px, measuring+# window.innerWidth inside the ah webview rather than assuming the pane width.+ # --- 1. preflight gates (the outage lesson: never publish code that won't import) --------- step "Preflight gates (syntax / shadow / import)" python3 -c "import ast; ast.parse(open('server.py').read())" || die "server.py syntax error"@@ -220,6 +226,21 @@ echo "$PUB" | ok_check || die "pkg publish FAILED (status != ok) — output: ${P echo " published $REPO @ package $VERSION" # --- 9. install onto the box, CHECKED ----------------------------------------------------+# ⚠ PUBLISHING IS FREE, INSTALLING IS NOT (fleet rule, adom-ui-design 1.25.1, 2026-08-25).+# Publishing to the wiki touches nobody. bridge_install RESTARTS the bridge on John's+# desktop, and doing that under another thread's live ah session looks exactly like that+# thread's own flake. So the install is OPT-IN: run the release freely to publish, and pass+# RELEASE_INSTALL=1 only when the dock-bar thread has handed you the machine.+if [ "${RELEASE_INSTALL:-0}" != "1" ]; then+ echo+ echo "▶ Skipping bridge_install on $BRIDGE_TARGET (publish-only)"+ echo " Published $VERSION. To install onto the box, get an ah/machine slot first, then:"+ echo " RELEASE_INSTALL=1 tools/release.sh $VERSION"+ echo+ echo "✅ PUBLISH $VERSION complete (wiki artifacts + package). Nothing on $BRIDGE_TARGET was touched."+ exit 0+fi+ step "bridge_install on $BRIDGE_TARGET" adom-bridge --ai-thread "$AITHREAD" --target "$BRIDGE_TARGET" bridge_install \ "{\"manifestUrl\":\"$API_MANIFEST\",\"force\":true}" 2>/dev/null \@@ -234,8 +255,18 @@ TMP=$(mktemp -d) INSTALLED_DASH=$(find "$TMP" "$HOME/project/adom_modules" -name install.sh -path "*fusion-bridge*" 2>/dev/null \ | head -1 | xargs -r sed -n 's/DASH_VERSION="\([0-9.]*\)".*/\1/p') [ "$INSTALLED_DASH" = "$VERSION" ] || die "clean install resolves DASH_VERSION=$INSTALLED_DASH, expected $VERSION"+# ⚠ DASH_VERSION IS A STRING IN install.sh, NOT THE BINARY (gap found 2026-08-25 while+# verifying the Send-to-AI un-park from a clean install): the check above proves the+# INSTALLER points at this version, not that the artifact behind the URL actually IS this+# version. Fetch what install.sh would fetch and make the binary say its own name.+DL_BIN="$TMP/published-fusion-dashboard"+curl -fsSL -o "$DL_BIN" "${DL_BASE}/${VERSION}/fusion-dashboard" \+ || die "the published dashboard binary is NOT downloadable at ${DL_BASE}/${VERSION}/fusion-dashboard"+chmod +x "$DL_BIN"+PUB_VER=$("$DL_BIN" --version 2>&1 | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -1 | tr -d v)+[ "$PUB_VER" = "$VERSION" ] || die "the PUBLISHED binary reports $PUB_VER, expected $VERSION (installer would deliver the wrong build)" rm -rf "$TMP"-echo " clean install DASH_VERSION = $VERSION ✓"+echo " clean install DASH_VERSION = $VERSION ✓ (and the published binary reports $PUB_VER ✓)" echo echo "✅ LOCKSTEP RELEASE $VERSION complete: bridge + dashboard + package all at $VERSION, verified."