Child-work native fixture and oracle
Issue4: create children of work displayed inside its performer. Contract is a standalone Rust2024 helper, adapted from basic-editing-contract.rs; it is not a production crate target. OA contains a directly allocated activity with two matching role assignments and evidence links. SA contains a directly allocated function with evidence. Parent work starts folded inside Performer. Included rationale files retain Unicode and CRLF bytes.
Build and admit
Choose the exact tested oa_core rlib and matching dependency directory from the source build being evaluated. Do not select an arbitrary newest cached rlib. From repository root, in PowerShell:
& $Rustc --edition=2024 -D warnings --crate-name child_work_native_contract harness/child-work-native-contract.rs --extern "oa_core=$CoreRlib" -L "dependency=$Deps" -o $ContractExe
& $ContractExe self-check
& $ContractExe generate $NewRunDirectory
The variables are explicit caller-selected toolchain, dependency, executable and fresh run-directory paths. Generation refuses an existing destination and creates deterministic oa/project.arcadia and sa/project.arcadia with included notes. Alternatively copy these checked-in case directories to a fresh writable run directory. Never perform native editing in the checked-in fixtures.
Native procedure
Repeat for oa and sa. ENTRY is the working case's absolute project.arcadia path. Save in place after each action. Keep default names New activity / New function; do not run Layout, move cards, rename objects or manually change fold state during this strict workflow.
- Run
check CASE 0 ENTRY, thensnapshot ENTRY BASELINE_DIR. Open ENTRY in Studio and select its Allocation view. - Right-click Parent work → Create child work; Save. Run
check CASE 1 ENTRY, thensnapshot ENTRY STAGE1_DIR. Parent work unfolds; original allocation and OA role assignments target the new first child with their IDs, metadata and evidence references preserved. - Undo once, Save, then
check CASE 0 ENTRYandcompare ENTRY BASELINE_DIR. Redo once, Save, thencheck CASE 1 ENTRYandcompare ENTRY STAGE1_DIR. - Right-click Parent work → Create child work again; Save. Run
check CASE 2 ENTRY STAGE1_DIR, thensnapshot ENTRY STAGE2_DIR. The sibling receives a new direct allocation to the same performer; roles remain on the first child. Undo/Save must compare exactly with STAGE1_DIR; Redo/Save with STAGE2_DIR. - Right-click the upper FIRST child → Create child work; Save. Run
check CASE 3 ENTRY STAGE1_DIR STAGE2_DIR, thensnapshot ENTRY STAGE3_DIR. Original responsibilities transfer to the grandchild. The sibling retains its identity/allocation and moves below the expanded subtree. Undo/Save must compare with STAGE2_DIR; Redo/Save with STAGE3_DIR. - Close/reopen the saved project in Studio, inspect nesting and responsibility properties, Save, then repeat stage3 check and
compare ENTRY STAGE3_DIR. Record screenshots and terminal results with the tested native executable/source hashes.
Each command above is an argument list to the compiled helper. Snapshot directories must be new. Stage2 requires the ORIGINAL accepted stage1 snapshot; stage3 requires the ORIGINAL accepted stage1 and stage2 snapshots. The oracle revalidates earlier snapshots and pins prior child, placement, sibling and allocation IDs. Do not replace those snapshots with newly captured Undo/Redo results. Redo/reopen comparisons also use original first-commit snapshots.
Validation scope and admitted evidence
The oracle compares the complete Project, including placements, routes, metadata and references, and exact reachable SourceBundle bytes. It admits only fresh UUIDv4 identities from predicted typed structural roles. Fixed fixture coordinates are independently predicted without desktop creation/reflow helpers: first child108,188; sibling108,298; grandchild132,252; displaced sibling108,394. It shares the core parser, validator, alias convention and source patcher; it is not an independent parser. It does not inventory unrelated/unreachable physical files. Preserve a separate complete directory inventory when making physical-disk claims.
On 2026-09-11 root compiled exact contract bytes below using direct rustc with -D warnings (exit0). Oracle self-check, fresh fixture generation, and OA/SA stage0 checks all completed exit0. Root executable SHA256: C772BF4A6477BB540A838B20E60CF59C60DDA51B6D2FD2CB3AFEE57F151A9C96; linked core rlib SHA256: D282FEE7FF3B4FDD159EA85B12430262C8DA00E064BD290CCED380B6BA2335B5. Local original logs: .local/child-work-native/compile-01/. Independent source review found no material blocker. These are oracle/fixture admission results; native creation, Undo/Redo and reopen acceptance remain pending at promotion. Self-check fixed points are not native proof or a general layout evaluator.
Exact promoted bytes
All five promoted files were copied byte-for-byte from the admitted private contract and generated run-01 fixtures, then SHA256-compared to their originals. The rationale files intentionally retain CRLF.
| File | SHA256 |
|---|---|
| ../../child-work-native-contract.rs | E5522CDF3591C07DE509B69E90B442F7C2F188B8C43C35A7C666C9ABF3387BE0 |
| oa/project.arcadia | 68762402F53529AA54A2E906670DA118CD8F0EF1ADB5CB3962FDD92E84A819D0 |
| oa/rationale.arcadia | F7B894B4045246C4A87F1F08AC813D45BBAEA3CD740FCC7E86532174FDB8A74E |
| sa/project.arcadia | 3A50F2FA68A08C107D905C57D598071B9BB1F20F473157E1DD82DEE3DDA20F82 |
| sa/rationale.arcadia | F7B894B4045246C4A87F1F08AC813D45BBAEA3CD740FCC7E86532174FDB8A74E |