fix(silo): pull assembly dependencies on all open paths (#337) #371
Reference in New Issue
Block a user
Delete Branch "fix/silo-assembly-deps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Fixes #337 — opening a Silo assembly via paths other than
Silo_Pulldid not download linked part files, causing broken PropertyXLink references and invisible parts.Root Cause
SiloSync.open_item()already calls_pull_dependencies()for assemblies, but two code paths bypassed it:SiloOrigin.openDocument()— when a local file existed, it calledFreeCAD.openDocument()directly instead of routing throughopen_item()Silo_Pull.Activated()— when no revisions had files but a local file existed, it opened directly without pulling dependenciesChanges
silo_origin.py—SiloOrigin.openDocument()Removed the local-file shortcut. All opens now route through
open_item(), which handles both local file detection and assembly dependency pulling.silo_commands.py—Silo_Pull.Activated()Added
_pull_dependencies()call before opening existing local assembly files in the no-revisions-have-files path.What's NOT changed
Silo_Opendialog's local-path-only case (FreeCAD.openDocument(data["path"])) — these are local-only files without part numbers, not Silo-tracked assemblies_pull_dependencies()itself — already handles recursion, skips existing files, and degrades gracefully offline