← Commit history

Publish 1.9.250

John Lauer ·3b7f363d4d ·1mo ago ·parent 7cdf298
3 files changed +9−12
.release-page-head+1−1
@@ -1 +1 @@-e65a1f36d5b2b0f68cf57ec11c28ca7df4b52160\ No newline at end of file+7cdf298b8b3049bfe3da0a4c9a7fc374aa79fc7c\ No newline at end of file
dashboard/ui/quick-actions.html+1−1
@@ -218,7 +218,7 @@ function stage(path,buf,note){var u=new Uint8Array(buf),CH=1024*1024,n=Math.max( // ---- import: one call, then poll -------------------------------------------------------- function setProg(p,cls){var el=$('prog');el.className='prog '+(cls||'');el.firstElementChild.style.width=Math.max(0,Math.min(100,p||0))+'%'} function setStage(html){$('stage').innerHTML=html}-function renderLint(pm){if(!pm){$('lint').innerHTML='';return}var ok=pm.ok!==false;var h='<div class="lint '+(ok?'ok':'warn')+'"><b>Part numbers</b> '+esc(pm.summary||(ok?'every component carries a manufacturer part number and a distributor number.':''))+'';if(pm.warnings&&pm.warnings.length){h+='<ul>'+pm.warnings.slice(0,6).map(function(w){return '<li>'+esc(typeof w==='string'?w:(w.message||JSON.stringify(w)))+'</li>'}).join('')+'</ul>'}if(pm.userAction)h+='<div class="mini" style="margin-top:6px">'+esc(pm.userAction)+'</div>';h+='</div>';$('lint').innerHTML=h}+function renderLint(pm){if(!pm){$('lint').innerHTML='';return}var ok=pm.ok!==false;var h='<div class="lint '+(ok?'ok':'warn')+'"><b>Part numbers</b> '+esc(pm.summary||(ok?'every component carries a manufacturer part number and a distributor number.':''))+'';if(pm.warnings&&pm.warnings.length){h+='<ul>'+pm.warnings.slice(0,6).map(function(w){return '<li>'+esc(typeof w==='string'?w:(w.detail||w.message||((w.deviceset||'')+': missing '+(Array.isArray(w.missing)?w.missing.join(', '):''))))+'</li>'}).join('')+'</ul>'}if(pm.userAction)h+='<div class="mini" style="margin-top:6px">'+esc(pm.userAction)+'</div>';h+='</div>';$('lint').innerHTML=h} function renderReceipt(d){var unb=(d.unbound||[]).map(function(u){return u.package+' ('+u.why+')'}).join('; ');kv($('receipt'),{installed:d.installed?'yes, '+d.libraryPath:'no',library:d.libraryName||'',parts:(d.partsToBind||0)+' of '+(d.partsTotal||0)+' paired with a STEP','named skips':unb||'none','fusion':(d.fusion&&d.fusion.message)||'',runId:d.runId||'','estimated':d.estimatedSec?Math.round(d.estimatedSec)+'s':''});renderLint(d.partMetadata)} function renderFrames(ev){var g=$('gallery');g.innerHTML='';(ev||[]).forEach(function(f){var src=f.thumbnailDataUrl||f.dataUrl;var h='<div class="shot">'+(src?'<img src="'+src+'" alt="'+esc(f.step||f.view||'frame')+'">':'<div class="cap" style="padding:18px 8px">frame on the box: '+esc((f.screenshot||'').split('/').pop())+'</div>')+'<div class="cap"><span><span class="tag '+(f.kind==='proof'?'proof':'feed')+'">'+esc(f.kind||'frame')+'</span> '+esc(f.step||f.view||'')+'</span><span>'+esc(f.part||'')+'</span></div></div>';g.insertAdjacentHTML('beforeend',h)})} function poll(id){runId=id;clearTimeout(pollTimer);var tick=0;(function loop(){tick++;cmd('fusion_prove_result',{runId:id}).then(function(d){var r=d.result||d;var pct=typeof r.percent==='number'?r.percent:null;if(r.stage==='failed'){setProg(100,'fail');setStage('<b>failed</b> '+esc(r.error||(r.bind&&r.bind.error)||r.errorCode||''));status($('importStatus'),'failed','bad');renderFrames(r.evidence);toast('Import failed: '+(r.error||(r.bind&&r.bind.error)||'see the log'),'err');return}if(r.stage==='done'){setProg(100,'done');var pv=r.prove||{};setStage('<b>done</b> verdict: '+esc(r.verdict||(pv.proven?'proven':'not proven'))+' · '+(pv.partsProven||0)+'/'+(pv.partsTotal||r.partsTotal||0)+' parts proven · '+(r.evidenceCount||0)+' frames');status($('importStatus'),r.verdict==='proven'||pv.proven?'proven':'finished, not proven',r.verdict==='proven'||pv.proven?'ok':'warn');if(r.partMetadata)renderLint(r.partMetadata);toast('Library created in Fusion: '+(pv.partsProven||0)+'/'+(pv.partsTotal||0)+' parts proven','ok');return cmd('fusion_prove_result',{runId:id,inlineFrames:true},{timeoutMs:120000}).then(function(d2){var r2=d2.result||d2;renderFrames(r2.evidence||r.evidence)}).catch(function(){renderFrames(r.evidence)})}if(pct!==null)setProg(pct);setStage('<b>'+esc(r.stage||'working')+'</b>'+(r.stageLabel?' · '+esc(r.stageLabel):'')+(pct!==null?' · '+Math.round(pct)+'%':'')+(typeof r.etaSec==='number'?' · ~'+Math.round(r.etaSec)+'s left':''));if(r.evidence&&r.evidence.length)renderFrames(r.evidence);if(r.errorCode==='addin_restart_required')showAsk(r);pollTimer=setTimeout(loop,tick<3?5000:10000)}).catch(function(e){if(e.code==='run_not_found'&&tick<6){setStage('starting...');pollTimer=setTimeout(loop,6000);return}setStage('<b>poll failed</b> '+esc(e.message));status($('importStatus'),'poll failed','bad')})})()}
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