Independent native lifecycle fixture — 2026-09-11
Owner: Codex-ytr83r /root/integration_audit. Prepared, uncompiled and unexecuted. Root must first compile the current core and checker, run ordinary source admission and self-check, and generate the immutable baseline 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
Source review/preparation only. Pending: direct-rustc compile, self-check, core/source admission and actual warning inventory, generated baseline and pre-native hashes, independent adversarial review, matching GUI and all native steps above. Root records execution results without transferring prior-host acceptance to this new fixture.