← Commit history

Publish 1.9.191

John Lauer ·5c01b7e40e ·1mo ago ·parent 73c65ce
2 files changed +23−20
handlers/close_fusion.py+16−10
@@ -175,16 +175,22 @@ def _close_all_documents_via_addin() -> dict:         with urllib.request.urlopen(req, timeout=5) as resp:             resp_data = json.loads(resp.read())     except Exception:-        # ONE retry with a longer budget before giving up: a transiently-busy main thread-        # here silently skipped the clean close, so WM_CLOSE later hit the unsaved-doc-        # Save modal and the whole graceful stop failed (live, 2026-08-17).-        try:-            import time as _t-            _t.sleep(3)-            with urllib.request.urlopen(req, timeout=10) as resp:-                resp_data = json.loads(resp.read())-        except Exception:-            return result  # Add-in truly unreachable, skip clean close+        # RETRY HARD before giving up (2026-08-24: one short retry was not enough - a+        # busy add-in skipped the clean close, the exit raised an Unsaved-changes modal+        # per dirty doc, and a graceful stop wedged 10 minutes on the user's screen).+        # The add-in is nearly always BUSY here, not dead: keep knocking ~40s.+        resp_data = None+        import time as _t+        for _w in (3, 6, 10, 10, 10):+            _t.sleep(_w)+            try:+                with urllib.request.urlopen(req, timeout=10) as resp:+                    resp_data = json.loads(resp.read())+                break+            except Exception:+                continue+        if resp_data is None:+            return result  # Add-in truly unreachable after ~40s, skip clean close      if not resp_data.get("success"):         return result
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