Files
ARCADIA-Studio/harness/fixtures/scenario-lifecycle-native

Independent native lifecycle fixture — 2026-09-11

Owner: Codex-ytr83r /root/integration_audit. Core/source admission passed; native execution remains pending. Root compiled the checker, passed its self-check and generated/checked all three immutable expectations before opening Studio. No native or Scene acceptance is claimed here. The renderer implementation is independently owned by /root/server_audit; this oracle does not import any desktop module.

Build and source admission

Compile harness/lifecycle-native-contract.rs with the matching oa_core rlib and dependency search directory, Rust2024 and warnings denied. No separate serde_json dependency is needed. Root owns the writer/toolchain lease. Example shape:

rustc --edition=2024 -D warnings harness/lifecycle-native-contract.rs --extern oa_core=ABSOLUTE_MATCHING_RLIB -L dependency=ABSOLUTE_DEPS -o ABSOLUTE_ISOLATED_EXE
lifecycle-native-contract.exe self-check
lifecycle-native-contract.exe inventory
lifecycle-native-contract.exe generate baseline FRESH_BASE_DIR
lifecycle-native-contract.exe check baseline FRESH_BASE_DIR/project.arcadia
lifecycle-native-contract.exe generate oa-rename FRESH_EXPECTED_OA_DIR
lifecycle-native-contract.exe generate sa-rename FRESH_EXPECTED_SA_DIR

Keep logs, screenshot files, hashes and model exports outside each checkpoint directory. A checkpoint contains only its complete saved project files; the checker compares every physical file, not just files with .arcadia extension. Generated base is two sources: canonical project plus an intentionally CRLF Unicode note. The two expected rename directories must be generated before native output is read. All element/relation IDs are fixed; SA port UUIDv5 values derive from the fixed functional-exchange ID through the authoritative port planner. No observed identity, geometry, order, reference or name is borrowed into predictions.

The unchecked fixture builder is only preparation: final execute_batch, source compile and load/recompile equality are mandatory. Self-Delete and unassigned lifeline cases intentionally use explicit local sender/receiver with exchange=None. If current core refuses either, record the exact refusal and revise or separate that case under root review; do not bypass admission or silently remove validation. Self-Create is deliberately absent because its admission was not established. Expected unfinished-model warnings (unbound exchange/representation, unanswered Call) are diagnostic evidence, not permission to bypass errors. Capture the actual warning set after source admission.

Fixed identities and navigation

All numeric offsets below are decimal added to UUID integer 5ceab400-0000-4000-8000-000000000000. Project is offset1. Add side base1000 for OA or2000 for SA, then the listed local offset. Names begin OA/SA for explorer search. Each scenario has at most two lanes and explicit OperationalActivity/Functional viewpoint; no hidden legacy scenario mode is used.

Scenario local offset/name Lanes Occurrences and declared order
100 01 Root create action delete 101 controller,102 receiver 110 Create receiver →111 Receiver action →112 Delete receiver
200 02 Preexisting empty 201 controller,202 receiver Empty root
300 03 Create only 301 controller,302 receiver 310 Create only receiver
400 04 Conditional delete 401 controller,402 receiver 410 Open call →411 ALT;412 left operand contains414 Conditional delete;413 right operand empty
500 05 Unassigned receiver 501 controller,502 represented=None 510 Create unassigned receiver →511 Delete unassigned receiver; both exchanges unresolved
600 06 Self delete 601 controller only 610 Self delete controller; sender=receiver601, exchange unresolved

Controller/receiver work are local10/11; ordinary service relation is12. Root Delete rename target is side+112. The exact new name is OA Delete receiver · reviewed or SA Delete receiver · reviewed. Aliases, IDs and every other field stay unchanged. For direct selection, OA root scenario is 5ceab400-0000-4000-8000-00000000044c and OA Delete is 5ceab400-0000-4000-8000-000000000458; SA root scenario is 5ceab400-0000-4000-8000-000000000834 and SA Delete is 5ceab400-0000-4000-8000-000000000840. inventory emits the complete admitted scenario/lifeline/occurrence ID/name/parent table and actual validation diagnostics.

Native procedure and independent observations

Use a copied working directory and isolated profile with an immutable matching GUI. Record source commit, executable SHA256, actual client dimensions, input sequence, screenshots and saved checkpoints outside the project directories. Open the actual project.arcadia through Studio. Select Behavior & scenarios, the matching layer, and the exact prefixed scenario. First run the OA matrix; repeat SA independently from the same baseline. Neither a passing source checker nor pure Scene tests imply the following visual/interaction results.

Step Native observation/evidence required Semantic oracle
Root lifecycle Controller remains usable; receiver lifetime begins at Create and ends at Delete; Action lies between. Inspect birth/death hit targets and corresponding Properties identity. Clicking an intended lifecycle target must not select a different occurrence. Save copied baseline; check baseline
Preexisting empty Both lane headers/guides visible through the actual empty canvas; no invented birth/death. Neutral insertion guide remains usable even when no occurrence exists. Save/navigation must remain baseline
Create-only Receiver lifetime continues beyond the last occurrence to visible root extent; do not confuse insertion endpoint with lifetime endpoint. check baseline
Conditional Delete Left receiver activation/lifetime ends at its Delete. Right empty branch retains independent receiver state; Delete must not terminate sibling activation. Inspect unresolved-call indication without inventing Reply or silently rewriting the model. check baseline
Unassigned receiver Incomplete lane remains visible, with explicit receiver lifecycle targets/hit geometry. It must not disappear or crash because placement eligibility excludes unresolved representation. Record whatever completeness diagnostic is actually shown. check baseline; only after admitted
Self Delete Single lane's self-message end and death marker align and remain selectable. Inspect Properties and hit targets at ordinary100% then Fit; do not infer self-Create behavior. check baseline; only after admitted
Narrow/overview At actual1100×700 and a wide client, exercise Fit,100%, scroll, selection and Tools. Guides/markers remain correctly aligned and hit-testable; record font wrapping/overlap and clipped regions. Save unchanged complete baseline
Real rename Select root Delete occurrence by actual marker/message, verify identity, edit Name to exact side-specific reviewed name and Apply, or make precisely that source name edit and Apply. Save once; preserve complete checkpoint before Undo. check oa-rename or check sa-rename; exact previously generated expectation via same
Undo One Undo restores old name, exact IDs and complete source. Save and freeze checkpoint. check baseline UNDO_ENTRY RENAMED_ENTRY, then same BASE_ENTRY UNDO_ENTRY RENAMED_ENTRY
Redo/reopen One Redo and Save restores exact first rename checkpoint. Reopen through actual file picker and Save again. Observe lifecycle geometry/selection afresh. check SIDE-rename, same FIRST_RENAME REDO, same FIRST_RENAME REOPEN

Each rename mode starts from baseline and changes only its own layer. Undo OA before starting SA or use a fresh baseline copy; sa-rename does not include an earlier OA rename. Direct additional scenario insertion is outside these fixed rename modes: define a separate prediction before using it as acceptance evidence.

Exact physical-file and Undo policy

check MODE ENTRY independently constructs complete expected Project and reachable SourceBundle, then requires the physical file map to equal those expected sources. check MODE ENTRY PRE_UNDO_ENTRY additionally permits only the exact original files present in the explicitly supplied pre-Undo checkpoint. Expected reachable bytes overlay those origin files; missing, unknown or changed retained files fail. No automatic disk-equals-reachable assertion is imposed on a valid Undo with retained files. The explicit origin must be a separately frozen, previously verified accepted checkpoint; do not supply a directory manufactured after seeing an unexpected file.

same EXPECTED ACTUAL pins all identities/model/source and the complete saved physical map of a previously verified checkpoint. Its optional pre-Undo origin uses the same exact retention rule. It never accepts source drift just because decoded models agree. These rename cases normally create no detached files, but the checker explicitly self-tests missing-origin, unknown/missing/changed retained-file discrimination.

Status

Root execution completed on 2026-09-11 at12:41:29 UTC: direct Rust2024 compile with warnings denied (23.439s), self-check, inventory, and generate/check of baseline, OA rename and SA rename all passed. Total62.428s. The exact core tree is a9c71e2c3fc9260d06f191c0d65b1e63e41edbec; its compiled rlib SHA256 is D282FEE7FF3B4FDD159EA85B12430262C8DA00E064BD290CCED380B6BA2335B5. The oracle executable is 798D7A1907B894C13549BAD35511B21D6BC7F3D67D63674042B7DF71184C7524. Exact logs, execution metadata and all six pre-native fixture hashes are retained under lifecycle-native-ytr83r-20260911.

An independent read-only check confirmed64 elements/2 relations per Project, including12 scenarios/22 lifelines/24 occurrences. Both incomplete receiver and self-Delete cases were admitted. There are19 warnings and no errors: missing_system1, unallocated_leaf4, empty_sequence2, call_without_operation2, incomplete_reference2, missing_exchange6 and empty_port_contract2. These describe the intentionally partial engineering fixture; no validation was bypassed.

Each rename changes exactly one quoted name and adds12 UTF-8 bytes; every other source byte and identity is unchanged. All three rationale files remain identical 86-byte Unicode text with exactly two CRLF lines and no bare LF. None of these predictions used native outputs. Pending: matching GUI, visual/interaction checks and every native Save/Undo/Redo/reopen step above.