← Commit history

Record resolved sidecar contract (answers to adom-lbr v1.1.1): sidecar=model.path+package+placement; adom-lbr writes wip_urn back; .lbr uses fs.file:vf?version only, never dm.lineage

John Lauer ·a199981ab3 ·4mo ago ·parent b10e851
1 file changed +19
FUSION_3D_FINDINGS.md+19
@@ -181,3 +181,22 @@ So the manifest's `adsk.eagle:package` assumption is only for managed-library pa self-uploaded model the binding is a `wip_urn` (fs.file:vf) with empty `urn`. With this exact shape, adom-lbr (or the bridge) CAN write the binding directly given the model's versioned file URN - no generator UI needed. (The generator FINISH path also works and is what produced this reference.)++## 13. Resolved sidecar contract (answers to adom-lbr v1.1.1)++**Q: what does the sidecar ship for the FINISH path?** Just `model.path` + `package` + `placement`.+That is sufficient - the bridge does Create3DPackage -> import -> orient -> FINISH -> Save. `placement`+stays useful as an orientation hint/override (the bridge's auto-orient is "rotate smallest bbox dim to Z";+a known pin-1 rotation/offset in `placement` lets adom-lbr override it when a part needs it).++**Q: write the minted wip_urn back to the sidecar (status -> bound)?** YES, record it - for idempotency+(re-runs detect "already bound"), provenance (which model version), and to enable the offline `bind-3d`+fast-path later. BUT the **in-Fusion library is the runtime source of truth**; the sidecar record is+bookkeeping that **adom-lbr owns + writes**. The bridge's part is to REPORT the minted URN: after the+Save, `fusion_aps_file_info {query:"<package>"}` returns the saved 3D-package design's tip+**`fs.file:vf.<id>?version=N`** URN - adom-lbr writes that into the sidecar (`urn`, `urn_status:"bound"`).++**Q: dm.lineage vs fs.file in the .lbr?** ONLY the versioned **`fs.file:vf.<id>?version=N`** goes in the+`.lbr` - in both `wip_urn=` and the device `package3d_urn=`. NEVER `dm.lineage` in the `.lbr` (Fusion pins+a specific version, consistent with `locally_modified="yes"`). `dm.lineage` is the stable cross-version ID;+keep it (optionally) only as SIDECAR provenance for re-resolving the latest version, never in the binding.