2.4 KiB
CAM toolbit workflow boundaries
Batch: a35565a75faa4d6352a57519
The first error was false success: the generic CAM_ branch created and closed
a temporary Path::FeaturePython document for all five commands. The subsequent
toolbit branch was unreachable and only echoed arguments. The selected commands
now return explicit restricted results before document creation. Their empty
implementation registrations and unreachable argument-echo branch were removed.
The existing CAM desktop adapter forwards these failures through the dispatcher
to the workbench shell. Save commands also reject missing, multiple, or
cross-document selections before dispatch. Native proxy validation remains pending.
All five records remain implementation-required:
CAM_ToolBitDock: mount a library selector backed by the CAM asset manager; resolve library tool numbers and attach actual toolbits and tool controllers to the selected existing Job. Desktop anchor:src/Mod/CAM/Path/Tool/library/ui/dock.py:145.CAM_ToolBitLibraryOpen: mount the library editor and connect library and toolbit import/export, creation, rename, removal and membership operations to the asset manager. Desktop anchor:src/Mod/CAM/Path/Tool/library/ui/editor.py:74.CAM_ToolBitLoad: deserialize selected files using the desktop toolbit serializers, attach each ToolBit to the current persistent document and recompute it. Desktop anchor:src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py:140.CAM_ToolBitSave: resolve exactly one existing ToolBit proxy, enforce the desktop File activation requirement, and use asset serialization with an actual browser file output. Desktop anchor:src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py:82.CAM_ToolBitSaveAs: resolve the selected existing ToolBit, allow a tool without File, and connect destination and format selection to asset serialization. Desktop anchor:src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py:102.
Cancellation must leave the active document and assets unchanged. Document objects must survive command completion. Library UI must consume actual native asset results; neither command receipts nor synthetic objects establish success. New native implementations belong in CAMDesktopCommands.cpp/.h, linked into the existing CAM target, as required by the supplied packet's oversized-source rule.
Build, resource sync and business acceptance are deferred to the outer pipeline. This repair is not acceptance of any of the five workflows.