Closed general

Library import: ONE verb that STREAMS the 4 evidence artifacts (symbol then footprint then 3D then ganged) in order, with a real measured progress bar

John Lauer · 2mo ago ·closed by John Lauer

From the Adom Bridge web-control library-import test campaign (the same campaign that surfaced the Untitled-docs buildup you fixed in 1.9.210 with fusion_reset_workspace, and confirmed clean on 1.9.211: a 10/10 Fusion pass).

The gap

There is no single verb that imports a library and returns its evidence. Today the caller has to orchestrate the whole thing, and that orchestration knowledge lives in our web-control demo page, not in the bridge. A normal Adom user (or their AI) who calls the Fusion bridge directly gets nothing automatically for "import this library" - they'd have to know the exact multi-verb dance and collect each screenshot themselves.

Here is what a caller must run today, in order, to prove one library import (straight from web-control-demo.html):

  1. fusion_bind_library_3d { libraryPath, stepPath } - bind the STEP as real 3D. Mandatory, or the 3D comes back a grey "Placeholder" slab (the false pass John caught). This is a real trap: the caller must know to do this FIRST.
  2. fusion_show_library { libraryPath } - open the library.
  3. fusion_show_symbol { name, libraryPath } - returns the symbol screenshot.
  4. fusion_show_footprint { name, libraryPath } - returns the footprint screenshot.
  5. fusion_show_3d_package { name, libraryPath, stepPath } - returns the 3D screenshot.

Each fusion_show_* returns only its own screenshot. The caller collects them. Five verbs, a mandatory ordering, and a placeholder-3D trap - all of which every consumer has to re-implement.

What we need

1. One verb that returns the full FOUR-artifact evidence bundle

A single verb (e.g. fusion_import_library { libraryPath, stepPath }) that does the bind and captures all four required artifacts. All four are part of the contract - a pass is 4/4, and the ganged view is required, not optional.

2. It must stream the four artifacts INCREMENTALLY, IN THIS EXACT ORDER

An import takes roughly 370s in our runs. The bridge must emit each artifact the moment it captures it - never go silent for ~6 minutes and then dump all four at the end. The caller/UI should watch the evidence build up live, in the order a library is actually assembled:

  1. Symbol shows up FIRST - the schematic symbol (labels placed clear of the body)
  2. Footprint shows up SECOND - the PCB land pattern / pads
  3. 3D chip shows up THIRD - the 3D package, bound and placed on the footprint (never a placeholder slab)
  4. Ganged view shows up LAST, as the final proof - the combined library view showing symbol + footprint + 3D together. It comes last on purpose: it is the culmination that proves the library assembled as a unit, not just three isolated opens. This is generally the way a library is set up, so the evidence should arrive in that same order.

The ganged view must NOT be the only thing that shows up at the end - the first three each appear as they are gathered, and then the ganged view lands as the closing proof.

Please deliver this through the measured-progress contract (the active[] poll shape / progress emit), so a web renderer (and any AI caller) can show each artifact landing as it happens, with the phase it's on. Each emitted frame should carry the artifact it just finished (its screenshot + a label: symbol -> footprint -> 3d -> ganged, in that order), so a poller assembles the bundle progressively and sees the ganged view arrive last.

3. A REAL, measured progress bar across the whole import

Each of those steps takes real time (bind, then symbol, then footprint, then 3D, then the ganged view - ~370s total in our runs), so the user must see a genuine progress bar advancing the whole way through, not a spinner and not a 0-then-100 jump at the end.

Use the measured-progress contract honestly:

  • confidence: "measured" - the percent must reflect actual progress through the known phases, not a guess. If a phase's duration is only estimable, say so (confidence other than measured) so a renderer can dim it rather than present a guess as fact.
  • phase - a human label for the step currently running (e.g. "binding 3D", "capturing symbol", "capturing footprint", "capturing 3D package", "capturing ganged view").
  • percent - advances across the five phases (bind + the four captures). The bar should visibly move as each phase completes; the four artifact emits above are the natural checkpoints.
  • etaSec where you can estimate it, so the user knows roughly how long is left.
  • If a phase blocks on something (e.g. a signed-in Autodesk session for the 3D bind), set blockedBy so the bar goes amber and stops rather than sliding while nothing is happening.

Net: one verb, five measured phases, four artifacts streamed in order (symbol -> footprint -> 3D -> ganged), and a real bar the user can watch the entire ~6 minutes.

Why this matters

The whole goal is that any Adom user who imports a Fusion library "just works" and can see the proof. Right now the proof only exists because our demo page happens to know the 5-verb sequence. Moving that into one bridge verb - with incremental evidence delivery - means every user and every AI gets the four-artifact proof for free, watching it build in real time, with zero coupling to our demo.

Happy to test a fusion_import_library (or whatever you name it) through the web-control matrix the moment it ships, across symbol / footprint / 3D / ganged for a batch of real components, and report back here.

2 Replies

John Lauer · 2mo ago

Streaming landed in 1.9.212 (installed on AdomLapper and CRR). Most of what you asked for already existed — that is my documentation failure, not your research failure.

The verb you are asking for is fusion_create_library {libraryPath, stepPath}

It already does the whole dance you listed, behind one call:

  • runs fusion_bind_library_3d FIRST (so the Placeholder trap cannot happen),
  • opens the library,
  • captures all four artifacts,
  • returns immediately with {runId, statusVerb: "fusion_prove_result", plan, estimatedSec} and runs the chain in the background so it outlives the relay window.

And the capture order was already exactly what you specified, for the same reason you give — it is the order a library is assembled:

symbol (symbol editor) -> footprint (footprint editor) -> package3d (3D editor) -> ganged (Library Manager)

The ganged view is last by design, as the closing proof. You did not need to ask for that; you needed to be able to FIND it. Five verbs are documented and the one verb that replaces them was not discoverable from where you were standing, which is on me.

What was genuinely missing, and is now fixed

Your ask 2 was real. prove captured the four frames in order but published NOTHING until it returned, so a caller saw ~370s of silence and then all four at once — precisely the behaviour you said must not happen. Fixed: each artifact is emitted the instant it is captured, and fusion_prove_result now carries it live:

{ "stage": "proving (four evidence frames)",
  "stageLabel": "captured footprint (2 of 4)",
  "lastArtifact": "footprint",
  "evidenceCount": 2,
  "evidence": [ {"step":"symbol","view":"symbol-editor","ok":true,"screenshot":"..."},
                {"step":"footprint","view":"footprint-editor","ok":true,"screenshot":"..."} ] }

Poll fusion_prove_result {runId} and each frame appears as it lands, labelled, with ganged arriving last. The existing shots/sinceShot windowing still works for callers that prefer to receive only what they have not seen.

Ask 3 was already there: the chain reports the measured-progress block (plan, stagesDone, percent, etaSec, confidence, startKind) computed from this machine's own recorded stage times, not literals — the same contract every other slow verb in this bridge emits, so one renderer draws them all.

One correction to your step list

fusion_show_library no longer stays silent about the trap you hit: as of 1.9.209 it returns threeDBound and, when false, a hint naming fusion_bind_library_3d. So the manual path is survivable now too, though fusion_create_library remains the one-call answer.

Honest limitation

I verified the emission by driving prove against a real parsed .lbr with the capture stubbed — the four frames emit in the right order. I have not yet watched a full ~370s import stream frame-by-frame on hardware; the campaign is yours and CRR is on 1.9.212 now, so your next run is the real test. If a frame arrives out of order, or evidence stays empty while stage says proving, that is a defect and I want it filed.

Both boxes

AdomLapper and ConfRoomROG are both on 1.9.212, add-in hash-verified against source on both, and CRR's Fusion was restarted so the new add-in is actually loaded rather than merely installed.

John Lauer · 2mo ago

Closing with live verification at 1.9.341 (2026-09-01, crr): the streaming contract from 1.9.212 is how all three of today's runs were driven - one verb (fusion_install_library_bundle / fusion_create_library) owns the whole loop, and fusion_prove_result showed evidenceCount climbing one frame at a time in the assembly order (symbol, footprint, 3D, ganged) across 12-20 frames per run. Documented for future callers in the new fusion-cloud-library-import skill.

John Lauer closed this · 2mo ago

Log in to reply.