← Commit history

Publish 1.9.183

John Lauer ·ab8cc494d6 ·1mo ago ·parent 4282274
2 files changed +39−10
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]"+  }+}\ No newline at end of file
tools/release.sh+32
@@ -59,6 +59,38 @@ python3 -c "import server" >/dev/null 2>&1 || die "server.py fails to IMPORT (wo python3 -c "import fusion_detect" >/dev/null 2>&1 || die "fusion_detect.py fails to import" echo "  gates OK" +# ⚠ LIVE-WORK GUARD (John, 2026-08-23: "that was really rude"): bridge_install makes AD REAP+# the running bridge process. That kills any in-flight create_library chain, and on bridges+# older than 1.9.183 it kills FUSION ITSELF (Fusion was a child of the bridge process -+# seven releases shipped during a build matrix = seven dead Fusions). Refuse unless the box+# is idle. RELEASE_FORCE=1 overrides, and you had better know why.+step "Live-work guard on $BRIDGE_TARGET"+_probe() { adom-bridge --ai-thread "$AITHREAD" --target "$BRIDGE_TARGET" "$1" '{}' 2>/dev/null \+  | python3 -c "import sys,json+d=json.load(sys.stdin); x=d.get('data') or d+if isinstance(x.get('output'),str):+    try: x=json.loads(x['output'])+    except Exception: pass+print(json.dumps(x))" 2>/dev/null || echo '{}'; }+STAGE=$(_probe fusion_prove_result | python3 -c "import sys,json; print(json.load(sys.stdin).get('stage') or '')")+RD=$(_probe fusion_readiness)+RUNNING=$(echo "$RD" | python3 -c "import sys,json; print('yes' if json.load(sys.stdin).get('running') else 'no')")+REMOTE_VER=$(echo "$RD" | python3 -c "import sys,json; print(json.load(sys.stdin).get('bridgeVersion') or '0.0.0')")+if [ "${RELEASE_FORCE:-0}" != "1" ]; then+  case "$STAGE" in+    ""|done|failed|error) : ;;+    *) die "a create_library chain is IN FLIGHT on $BRIDGE_TARGET (stage: $STAGE). bridge_install would reap the bridge mid-chain. Wait for it to finish, or RELEASE_FORCE=1." ;;+  esac+  if [ "$RUNNING" = "yes" ]; then+    OLD_TREE=$(python3 -c "+import sys+v=tuple(int(p) for p in '$REMOTE_VER'.split('.')[:3]) if '$REMOTE_VER'.replace('.','').isdigit() else (0,0,0)+print('yes' if v < (1,9,183) else 'no')")+    [ "$OLD_TREE" = "yes" ] && die "Fusion is RUNNING on $BRIDGE_TARGET under bridge $REMOTE_VER, which launched it as a CHILD process - installing now KILLS Fusion. Wait until Fusion is closed/idle (or RELEASE_FORCE=1 if you have confirmed nobody is using it)."+  fi+fi+echo "  guard OK (stage='${STAGE:-none}', fusion running=$RUNNING, remote bridge $REMOTE_VER)"+ # --- 2. set ALL version files to $VERSION (this is the lockstep) -------------------------- step "Setting every version file to $VERSION" printf '%s' "$VERSION" > BRIDGE_VERSION