54 lines
3.2 KiB
Markdown
54 lines
3.2 KiB
Markdown
# Web CommandFeat remaining implementation boundaries
|
|
|
|
Batch: `d937ec7eef2892d2286973f5`
|
|
|
|
Implementation remains incomplete for all three selected records. No executable
|
|
registration was added. No builds, tests, browser validation, acceptance runs,
|
|
benchmarks, or historical reconciliation were performed.
|
|
|
|
## Retained desktop source decisions
|
|
|
|
- `Web:desktop:Std_Recompute`: the complete activation body at
|
|
`freecad-source/src/Gui/CommandFeat.cpp:62` only calls `Q_UNUSED(iMsg)`.
|
|
Preserve that exact desktop behavior; do not substitute document recomputation.
|
|
Its constructor and activation prerequisites still need a bounded source anchor.
|
|
- `Web:desktop:Std_RandomColor`: at `CommandFeat.cpp:84`, each selected object's
|
|
view provider receives an independently sampled color from `CET::R1`.
|
|
Links enable `OverrideMaterial` and update `ShapeMaterial` diffuse color.
|
|
Other providers update a material or material-list `ShapeAppearance` property
|
|
when present. Selected parts and document object groups also color their
|
|
immediate group children. The operation opens and commits a command transaction.
|
|
Activation requires a nonempty selection. Preserve these material, group,
|
|
palette, and transaction semantics in the document/view owner.
|
|
- `Web:desktop:Std_SendToPythonConsole`: at `CommandFeat.cpp:224`, selection uses
|
|
all documents and old-style element resolution. Empty selection or a missing
|
|
first object returns without action. The command executes the desktop cleanup
|
|
statement for `doc,lnk,obj,shp,sub,subs`, binds the first object's document,
|
|
resolves links through `lnk.getLinkedObject()`, and binds `obj`. For a geometric
|
|
object with a geometry property, it binds that actual property as `shp`, the
|
|
first selected subobject as `sub`, and multiple subobjects as `subs`.
|
|
It then activates and focuses the Python console. These must be live native
|
|
bindings in the console interpreter, not serialized object names or markers.
|
|
|
|
## Remaining patch anchors
|
|
|
|
The four permitted supplemental windows were consumed by the bounded packet
|
|
summary, `CommandFeat.cpp:62` (100 lines), `CommandFeat.cpp:224` (100 lines), and
|
|
`WebRuntimeProbe.cpp:45` (100 lines). This is a source-window limit, not evidence
|
|
that the business implementation is absent.
|
|
|
|
The inspected Web dispatcher parses record names, delegates document commands to
|
|
`executeDocumentCommand`, and ends with that same delegation. Adding names to its
|
|
desktop list alone would instead direct them to `executeWebMacroCommand` and
|
|
does not establish the required selected-command behavior.
|
|
|
|
Next packet should supply exact anchors for the existing document command owner,
|
|
native view-material storage and display propagation, console interpreter and
|
|
mounted focus handling, and selected-command entries in the actual JSON catalogs
|
|
used by `tools/generate_feature_capability_registry.py`. Include the generator's
|
|
invocation contract. Reuse the desktop decisions above without rereading their
|
|
unchanged windows. Implement in those owners, connect the Web adapter and mounted
|
|
console where needed, and register only the resulting executable behavior.
|
|
The outer pipeline retains ownership of incremental build, sync, and route
|
|
receipts; those receipts do not constitute business acceptance.
|