4.4 KiB
Direct Compound and Join Checkpoint
Batch: cf5ac949ddca3a37f225bb64, 2026-09-17.
Selected requirements: Part:desktop:Part_ExplodeCompound,
Part:desktop:Part_JoinConnect, Part:desktop:Part_JoinCutout,
Part:desktop:Part_JoinEmbed.
Implementation
- Reused the existing DocumentProbe WASM, document facade, compound/join task panels, native linked features, and native/browser business cases.
- Added
Part_JoinEmbedto the direct mode mapping inweb/src/part-desktop-adapter.ts. It invokes the existingcreateJoindocument action withjoinMode: embed, preserving validation and transaction ownership. - Mounted the existing Join task for Embed in
web/src/workbench-shell.tsx, with its operation fixed to Embed. Extended the task'sfixedModetype inweb/src/part-join-task.tsxaccordingly. - Extended
directCompoundJoinModesintools/part-business-cases.mjsso Embed executes the existing native and browser assertions. Its browser fixture must produce one linked valid 1800 mm3 FeaturePython object; Cutout remains 800 mm3. - Desktop source
BOPTools/JoinFeatures.pyconfirms Embed requires two selected objects and retains Base/Tool links through FeatureEmbed andembed_legacy. - No native geometry implementation, WASM artifact, acceptance contract, verifier, proof requirements, or passing status was manually changed. No full build, deployment, push, or IFC validation was performed.
Execution Evidence
All commands used python3 tools/run_business_acceptance.py --module Part --ids <ID> --reuse. Each isolated run returned passed: 1, no remaining IDs,
and no pending issues:
| Command | Seconds | Evidence under docs/current/business-evidence |
|---|---|---|
| Part_JoinConnect | 15.405 | 610ee890ca92a1ee2d52e186-20260917T065813277264.json |
| Part_JoinEmbed | 13.492 | d346ba07173471fc8b0a0065-20260917T065849868416.json |
| Part_ExplodeCompound | 13.653 | 34e5d87706318b2119fb9bce-20260917T065926900214.json |
| Part_JoinCutout | 12.890 | 4cb847385529414fa973687b-20260917T070006735322.json |
Assertions exercise measured geometry, valid topology, actual document links,
source visibility, one transaction, source-edit recomputation, invalid input and
cancellation preservation, undo/redo, FCStd reopen, mounted command controls,
OPFS FCStd bytes, and desktop/mobile canvas pixels. Screenshots are under
docs/current/business-artifacts/<command>/. Embed desktop and Explode mobile
panel screenshots were visually inspected and showed the expected geometry.
web/node_modules/.bin/tsc --noEmit -p web/tsconfig.json passed after extending
the fixedMode type. Scoped git diff --check passed.
Recovery and Remaining Boundaries
- The initial three-ID run hit the unchanged 180-second runner limit after all three native cases and the Explode browser case completed, during Connect's browser stage. No acceptance pass was attributed to that timed-out run. The isolated runs above succeeded without increasing limits or changing assertions.
- Connect and Embed passed before the final TypeScript-only fixedMode union edit;
Explode and Cutout passed after it. A final four-ID
--reuserequest returnedprevious_validation_deferred, exit 78, executedCount 0, for all four IDs. Policy reason: repeat validation is paused and historical proof is not promoted to current acceptance. Preserve this distinction; do not bypass the policy or manually refresh statuses/fingerprints. - The unchanged Part contract's coveredIds and remainingBoundaries still carry older coverage metadata for these commands. This turn did not modify that contract to force the scheduler preflight to pass. Use the runner evidence and its policy result when continuing; do not equate metadata with missing code.
- These fixtures use native solid boxes and compound children. They do not establish every shell/wire join behavior or complete Part parity. All original and supplemental requirements remain in scope, including the unchanged IFC semantic export contract; proxy geometry is not IFC semantic completion.
- Continue with the next permitted missing business behavior. Reuse the above source anchors and evidence; do not replay this unchanged passing batch merely to refresh timestamps. If the scheduler selects it again, retain the explicit previous-validation deferral and metadata boundary.
The existing browser server at http://127.0.0.1:5180 was reused. Embed is mounted
at /workbench.html?module=Part&command=Part_JoinEmbed.