Files

Native behavior creation contract

Independent checker: harness/behavior-creation-contract.rs. The contract was prepared before reading any created output on 2026-09-11. Its direct-rustc build, self-check and unchanged-baseline comparison pass; native creation acceptance is not implied. Use the corrected v2 checker: the initial version published in 4bb4aaf incorrectly rejected files safely retained on disk after Undo.

Use a whole-directory copy of the preserved input: .local/native-qa/palette-20260910-v3/checkpoint-transition-reopen/project.arcadia. It contains 10 elements, two relations, four diagrams, one trace and six source files. Do not edit or overwrite that baseline or an earlier checkpoint.

Perform these cumulative operations through Behavior → New, saving a separate whole-directory checkpoint after each Create and open:

Stage Intended fields and exact result
process OA Operational process, name Coordinate rescue. Root ownership, empty steps and description; no diagram or implicit work.
scenario OA Scenario, name Rescue coordination conversation. Explicit Participants · interactions (ParticipantInteraction) viewpoint; optional context Rescue capability, UUID b451c000-0000-4000-8000-00000000001f. Root ownership is separate from context. Empty precondition, postcondition, steps and description; no lifelines/messages or diagram.
machine SA State machine, name Rescue team operating modes. Existing Rescue team SystemActor owner, UUID c0629449-1209-4b50-afac-f558a9a0fc7f. Opt into Create the first state view. No regions or states.

Before observing output, the first-view contract is fixed as Rescue team operating modes · states, SA StateMachine { machine: NEW_MACHINE } projection, empty description/routes, default view options, exactly one placement of the new machine. Its initial position is 60,60 and size 336×104; the independent shared-core Layout prediction retains those values. The machine's semantic parent remains the SystemActor, not its diagram. Every previous object and source byte is retained except the explicitly predicted additions/includes.

Build only within a coordinated direct-rustc writer window. This imports oa_core and no desktop creation producer:

. .local/toolchain/env.ps1
rustc --edition 2024 -D warnings --crate-name behavior_creation_contract harness/behavior-creation-contract.rs --extern oa_core=.local/target-gnullvm/debug/deps/liboa_core-3e81c616fea1d901.rlib -L dependency=.local/target-gnullvm/debug/deps -C linker=clang.exe -o .local/behavior-creation-oracle-20260911/behavior-creation-contract-v2.exe
$oracle = '.local/behavior-creation-oracle-20260911/behavior-creation-contract-v2.exe'
$base = '.local/native-qa/palette-20260910-v3/checkpoint-transition-reopen/project.arcadia'
& $oracle self-check $base
& $oracle check baseline $base $base $base
& $oracle check process $base PATH_TO_PROCESS_ENTRY PATH_TO_PROCESS_ENTRY
& $oracle check scenario $base PATH_TO_SCENARIO_ENTRY PATH_TO_SCENARIO_ENTRY
& $oracle check machine $base PATH_TO_MACHINE_ENTRY PATH_TO_MACHINE_ENTRY

After each creation, Undo once and Save into a fresh checkpoint; same compares it with the preceding accepted stage (the initial baseline for Process). Supply the first committed creation checkpoint as the explicit UNDO_FROM argument: the safe saver preserves newly detached files instead of deleting them. Redo once and Save into another fresh checkpoint. For Redo and reopen, pass the first committed checkpoint as the final role argument:

& $oracle same PREVIOUS_ACCEPTED_ENTRY UNDO_ENTRY FIRST_COMMITTED_ENTRY
& $oracle check machine $base REDO_ENTRY FIRST_MACHINE_ENTRY
& $oracle same FIRST_MACHINE_ENTRY REOPEN_ENTRY

Use the corresponding stage for Process/Scenario history. This pins original UUIDs across history; using a redo file as its own role carrier would not prove identity retention. A cancellation has no predicted addition: compare its checkpoint with the accepted pre-cancellation checkpoint using same.

For Undo, the complete reachable Project and SourceBundle must still equal the previous accepted stage. The complete disk .arcadia file map must equal the exact UNDO_FROM file map with those expected reachable files overlaid. Thus only known retained paths with exact previously committed bytes are accepted; unknown files, changed or missing retained files, or changed reachable bytes fail. The supplied first-commit checkpoint must itself contain exactly its reachable files. Ordinary creation, cancellation and reopen checks retain that strict file-set rule; there is no arbitrary detached-file exemption.

The checker borrows only unique fresh UUIDv4 values with exact literal kind/layer/name, view projection/name, or diagram/element placement roles. Descriptions, aliases, parents, viewpoint/context, body defaults and geometry are independently constructed. It compares complete Project and SourceBundle, checks the exact disk-file policy above, and uses pinned six-file byte lengths and FNV-1a fingerprints to refuse a substituted baseline. SHA-256 provenance is recorded in harness/release-behavior-creation-oracle-20260911.md.

Self-checks use deliberately false metadata/geometry in the role carrier, then reject changed scenario semantics, unrelated edits, extra objects/files and source-only comment drift. V2 additionally accepts an independently constructed valid Undo retention case and rejects unknown, changed or missing detached files. The existing immutable transition Undo also passes with four reachable sources and six exact disk files; real isolated copies with an unknown or modified detached file fail. Native focus, readable labels, minimum/wide layout, selection of the new owner/view, and one-step Undo/Redo are separate observations; saved equality alone cannot establish them.