← Commit history

v1.9.39 hotfix: readiness scope bug

John Lauer ·271786443f · ·parent af37abe
4 files changed +20−21
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.9.38\ No newline at end of file+1.9.39\ No newline at end of file
adom-bridge-fusion-manifest.json+4−4
@@ -1,10 +1,10 @@ {     "manifest_version": 1,     "name": "fusion360",-    "version": "1.9.38",-    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.38/adom-bridge-fusion-v1.9.38.zip",-    "sha256": "128cd2992aab0db5274f67acc9fd452f5d757777bcea8c15dd0c18d14308f869",-    "size": 384995,+    "version": "1.9.39",+    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.39/adom-bridge-fusion-v1.9.39.zip",+    "sha256": "a2084e488ebdab251241eb0ee633571634251e0c846356c2ab66d968eead0840",+    "size": 385038,     "verbPrefixes": [         "fusion_"     ],
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "fusion360",   "displayName": "Autodesk Fusion 360",-  "version": "1.9.38",+  "version": "1.9.39",   "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/fusion-bridge",   "author": "Adom Inc.",
server.py+14−15
@@ -1445,21 +1445,6 @@ def _handle_fusion_readiness(fusion_info: dict, args: dict) -> dict:         # always want the latest fusion... make this generally invisible to me"). Fusion nags         # constantly; we click it in the BACKGROUND so the user never sees it. Sticky opt-out.         _upd = _apply_fusion_update_silently()-        if _LAST_UPDATE_OFFER.get("offered"):-            out["fusionUpdateOffered"] = True-            out["fusionUpdateHandled"] = bool(_upd.get("applied"))-            if _upd.get("applied"):-                out.setdefault("_hints", []).append(-                    "Fusion offered an update and I already clicked %r in the background - "-                    "tell the user it is handled, they never need to touch the nag."-                    % _upd.get("button"))-            else:-                out.setdefault("_hints", []).append(-                    "Fusion is OFFERING AN UPDATE and auto-update is %s. OFFER to run it for "-                    "the user ('want me to update Fusion in the background?') - "-                    "fusion_set_auto_update {enabled:true} makes it permanent, or a one-off "-                    "background click happens on the next sweep after they say yes."-                    % ("opted out" if not _auto_update_enabled() else "on but the click failed"))         # APS is checked on EVERY launch now (John, 2026-07-22: "why aren't those just driven from         # 1 login?"). Fusion sign-in and APS are both Autodesk logins; the user should authenticate         # ONCE. They cannot share a token (Autodesk DPAPI-encrypts Fusion's store), but they CAN@@ -1542,6 +1527,20 @@ def _handle_fusion_readiness(fusion_info: dict, args: dict) -> dict:     if seat_resolved:         # We acted on it this call (whether or not it fully cleared yet).         result["seatDialogAutoResolved"] = True+    # Update-offer visibility (John, 2026-08-16): a detected nag is ALWAYS reported, so the+    # AI either says "handled it" or OFFERS to run it - nothing detected goes unmentioned.+    if _LAST_UPDATE_OFFER.get("offered"):+        result["fusionUpdateOffered"] = True+        _handled = bool(locals().get("_upd", {}).get("applied")) if isinstance(locals().get("_upd"), dict) else False+        result["fusionUpdateHandled"] = _handled+        if _handled:+            result["fusionUpdateHint"] = ("Fusion offered an update and it was clicked in the "+                                          "background - tell the user it is handled.")+        else:+            result["fusionUpdateHint"] = ("Fusion is OFFERING AN UPDATE (auto-update %s). OFFER "+                                          "to run it: fusion_set_auto_update {enabled:true} or a "+                                          "one-off background click on the next sweep."+                                          % ("opted out" if not _auto_update_enabled() else "pending"))     return result