Files
FreeCADWasmDev/docs/current/web-parameter-editor-20260914.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

56 lines
2.8 KiB
Markdown

# Web Parameter Editor Repair
Implemented and published: Std_DlgParameter. Formal receipt:
`web-parameter-editor-pipeline.json`, one ready and zero missing. No automated
tests, browser validation, acceptance or benchmarks ran. This does not claim
all Standard dialogs or full project completion.
## Repaired Business Path
The supplied `CommandStd.cpp` opens the native parameter dialog. Existing
WebViewCommands already contained the real `ParamGet` implementation with
read, set, remove, group creation/removal and FCParam import/export. The Web
surface was disconnected: it called the old `Web.standardCommand` endpoint,
while the native implementation is owned by PartBox/DocumentProbe's
`part.viewCommand`/`part.documentViewCommand`.
- `document-view-routes.json` now declares `Std_DlgParameter` in the shared
standard command catalog.
- `web-owner-standard-adapter.ts` sends the command to the selected native
owner, validates the owner/document/result and returns the batch envelope
consumed by the mounted task. The existing dispatcher calls this adapter
before generic branches.
- Workbench reuses the existing parameter table and OPFS import/export panel.
It now edits an existing row, uses type-specific controls and separates
saved FCParam files by native owner. Writable OPFS aborts on failure so a
partial file is not reported as saved.
- Native `GetContents()` returning `None` for an empty group is normalized to
an empty array. FreeCAD display names Integer/Boolean/Unsigned Long are
mapped to the corresponding Set/Rem method names. Signed and unsigned
integer bounds and import size are checked before mutation.
No alternate parameter store, fixed result, GUI fixture or new Worker was added.
## Efficiency and Build
The two existing native document targets were rebuilt once after the parameter
semantics change. They exited 0 in 58.181 seconds. The formal pipeline then
reused the fresh artifact: total 12.712 seconds, capability generation 8.600,
preflight 0.042, metadata artifact sync 2.763, business metadata 1.006; its
native build step was 0.200 seconds and generated only Version.h. The final
frontend build exited 0 in 3.633 seconds, with 2.153 seconds spent on its
incremental public asset sync.
The next batch can reuse the current PartBox/DocumentProbe artifact and the
parameter endpoint. It must not repeat the old `web.standardCommand` route or
rebuild unchanged parameter code.
## Current Scope
Capability inventory after generation: 1345/1451 routed, 106 requiring
implementation. This change fixes an already counted route and adds no fake
completion. Std_DlgPreferences and Std_DlgCustomize still require separate
scope; Std_CommandLine interactive input/interrupt remains incomplete. The
background scheduler and watchdog continue unattended; automatic validation
remains disabled by policy.