Files
ARCADIA-Studio/harness/fixtures/child-work-native

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.

  1. Run check CASE 0 ENTRY, then snapshot ENTRY BASELINE_DIR. Open ENTRY in Studio and select its Allocation view.
  2. Right-click Parent work → Create child work; Save. Run check CASE 1 ENTRY, then snapshot 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.
  3. Undo once, Save, then check CASE 0 ENTRY and compare ENTRY BASELINE_DIR. Redo once, Save, then check CASE 1 ENTRY and compare ENTRY STAGE1_DIR.
  4. Right-click Parent work → Create child work again; Save. Run check CASE 2 ENTRY STAGE1_DIR, then snapshot 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.
  5. Right-click the upper FIRST child → Create child work; Save. Run check CASE 3 ENTRY STAGE1_DIR STAGE2_DIR, then snapshot 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.
  6. 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