Files
ARCADIA-Studio/harness/experiments/canvas-native-dd39e1f-20260913/lifecycle-baseline

Native lifecycle union fixtures — strong core preflight passed; GUI pending

Strong actual-core preflight — 2026-09-13 00:14 UTC

The unchanged prepared preflight.rs compiled with Rust edition 2024, -D warnings and the documented LLVM-MinGW linker, then passed on the unchanged fixture. Build and run both exited 0. See build/provenance receipt, run receipt, full assertion result and diagnostics, and exact verified core/config/lock inputs. Compiler and runtime stderr were empty. The executable SHA-256 is d5d1d6c547c0e0a8a4fe1e64b2fd1023017596eefe6ca499c7159051f95395b7.

The existing liboa_core-145180297aa692e4.rlib SHA-256 d395dbe1f761d41bce3cb850f44cdc0343b0db172bd03abf89e455c44f4b7e86 matches its identified prior425 build receipt. All 110 scoped core/configuration/lock inputs match both the prior425 and closed d61 full gate manifests, and the current committed aadc6396d39ff336d05381d58d545093d3f37a73 core/configuration has no tracked or untracked changes. The closed d61 gate source is d61f1f38779ab70a77efcde523ae31c432aefcfd. No core rebuild or newest-artifact substitution occurred. The exact driver, probe, fixture snapshot, earlier build receipt, commands and tool hashes are preserved in the new result directory.

Executed assertions establish: six scenarios, 61 elements, five relations, zero Errors and 18 completeness warnings; ordinary candidate admission; exact original SourceBundle preservation including comments/Unicode/IDs; complete Project equality through canonical format/parse and formatting stability; all six root step orders; all eight carried pressure values; four SA invocation/allocation/caller/provider proofs; and the intentional incomplete Reply sender/receiver/correlation tuple. Native geometry, pixels, selection, save/reopen interaction, focus and monitor appearance remain pending. The compiler lease was explicitly closed after this run; this helper does not establish desktop-renderer or release acceptance.

Preliminary admission receipt — 2026-09-13 00:04 UTC

The existing identified core oracle passed same lifecycle-native.arcadia lifecycle-native.arcadia, exit 0. See exact command, identities and exit, stdout, and all diagnostics. Each of its two independent loads reported 18 warnings: 15 missing_exchange, one missing_lifeline, and two unallocated_leaf; no Errors. The fixture SHA-256 remained 998a2fd3e2474e72fc013f4da422e49bad61e118de62eccfbd71bf06b863ce7f.

The executable SHA-256 9796aa73544c6414003e6230a668a6cf1435978a310187ef2560af67e35f3466 and compiled oracle source SHA-256 fbc001a3c14d075fa9d5fce90188cc06055c12b02d4c5929818ac4325fb82c5e were verified against its original build receipt before execution. Core identity is 42511f0f8ae46f29e11ae18c1030face654c2994. Preserved inputs and original build receipt accompany byte-for-byte fixture and oracle source snapshots in that directory. The first launch exited -1073741515 (0xC0000135) with empty output before admission; the successful second launch prepended the repository's documented LLVM-MinGW runtime directory to this process's PATH. Runtime DLL hashes and the exact PATH prefix are in r2. No executable was replaced or rebuilt.

Source review confirms same calls full source-project discovery/load, rejects discovery Errors and detached buffers, calls compile_bundle without allowing migration/normalization, and calls validate_candidate on the entire decoded Project. It then compares the complete Project and exact SourceBundle. The self-comparison establishes parse/source/model admission with that identified core; its identity comparison is tautological and does not establish canonical roundtrip, execute preflight.rs assertions, validate the updated desktop renderer, or establish GUI acceptance. At that preliminary checkpoint, the stronger checks were pending; the subsequent stronger core run is recorded above. The source-preparation notes below describe the earlier preparation stage.

The unchanged lifecycle-native.arcadia is now ready for the parent's native acceptance workflow after the successful core preflight. This is one project containing six small scenarios, 61 elements and five relations. identities.tsv gives every scenario, lifeline and occurrence alias/UUID. IDs use the new deterministic namespace 21c0fe00-0000-4000-8000-...; the last 12 hex digits encode the alias's decimal suffix. Source comments include Ω, 戻り値, a combining-accent é, and 👩‍🔧 for exact save/reopen retention.

Target renderer source: reviewed union f6595ebf66e88ec42c37b5c1a3c014f5e52cb32d, before any later root corrections. The fixture was newly authored source; validation of the earlier bound-call artifact was not reused as proof for this edited project. No compiler, fixture execution, native interaction, Gitea mutation or root tracked edit was performed during preparation. Standalone rustfmt only parsed/formatted preflight.rs.

Contents and expected geometry

The coordinates below are source-derived world-coordinate expectations, not measured screen pixels. At the current Scene layout, L1 is x=160 and L2 is x=400. Pan, Fit and zoom transform these coordinates. Marker capsules are 140×28, centered on L2. Activation bars use the reviewed 12-unit width/6-unit nesting offset; these are current implementation checks, not new permanent specification dimensions.

Scenario / owner alias Ordered events Expected result
OA 1 Nested lifetime — Latin / bound_1000 Create1005, C1=1040, C2=1030, R2=1060, R1=1050, Delete1070 Rows148,240,332,424,516,608. L2 alive148–608. Outer C1 rectangle x394,y240,w12,h276; inner C2 x400,y332,w12,h92. Calls end and replies start on their corresponding left activation edges. Create ends x330,y148 at capsule edge; Delete ends x400,y608 at cross. No unanswered cue.
SA 2 Nested lifetime — Unicode / bound_2000 Create2005, C1=2040, C2=2030, R2=2060, R1=2050, Delete2070 Same rows and activation geometry as OA. Four Call/Reply messages retain the exact synchronous interface-operation allocation bound_220, caller port202, provider port203 and carried values.
OA 3 Self lifecycle and call / bound_3000 Action3010, self-Create3020, self-Call3040, self-Reply3050, self-Delete3070 Action row148, box bottom193. Self-Create marker row259, send235, label207; it clears the action. Self-Call send351, receive375; bar begins375. Self-Reply send443, receive467; bar ends443. Self-Delete send527, marker receive551. Execution x394,y375,w12,h68. Self-Call points (400,351),(466,351),(466,375),(406,375); self-Reply (406,443),(466,443),(466,467),(400,467). Create elbow is x512 and ends on capsule right edge470; Delete elbow512 returns to lane400.
OA 4 Death in one ALT operand / bound_4000 Call4040; ALT4080: left4081 contains Delete4070, right4082 is empty Preserve parent pre-frame activation, a left piece ending at Delete with Terminated metadata, and a separate 26-unit open right piece. No definite post-frame activation. The death path, empty open sibling and uncertain parent retain distinct cues. Source-derived rows: Call148, frame240, Delete385; left scope starts343, right525; right open piece525–551.
SA 5 Death and incomplete reply / bound_5000 Call5040, Delete5070, incomplete Reply5050 Call row148 to death240. One terminated execution and unanswered cue. Reply row332 is a repair card: sender is intentionally absent, receiver5001 and reply_to5040 remain. It must not become a detached Reply arrow or fabricate an answered execution.
SA 6 Unresolved lifetime, visible cue / bound_6000 ALT6080: left6081 Create6005, right6082 Call6040 Exclusive operands share conservative entry state. Create marker is visible in left; right lifetime is unresolved. The right Call remains visible and lane-anchored, with an unanswered cue even though there is no activation rectangle. Source-derived Create row293, Call475; cue around y494.

The first two cases intentionally retain C2's numerically lower UUID despite C1 appearing first in semantic steps, exercising order independence. C1 input is420.0 kPa, R1 return418.0; C2 input380.0, R2 return378.0. OA calls use the actual Interaction/Operation-item contract; SA calls use the concrete BoundaryExchange, required/provided interfaces and synchronous operation allocation copied from the earlier bound fixture. Lifecycle Create/Delete messages and the self/incomplete cases intentionally have no exchange/operation binding; they are draft-capable, explicitly identified lifeline events with expected completeness warnings.

Long-name witnesses are in both the actual lifeline/capsule name and represented activity/system detail. OA uses wide Latin W glyphs; SA uses long CJK text and an emoji ZWJ sequence; the self case includes combining accents. Full names should remain in Properties/source while painted text stays inside its padded header/capsule clip.

Admission and round-trip expectations

At source preparation, the fixture was checked against the actual constructors/tests and core rules. The stronger executed checks are recorded above:

  • Bound contracts and original Call/Reply values derive from .local/native-qa/bound-nested-fixture-r1-20260912/bound-nested-calls.arcadia; that earlier artifact's validation does not validate this edited project.
  • Model shape and admitted lifetime cases follow scenario_lifecycle/render_tests.rs and union_tests.rs at f659. The source notation uses the same Exchange, Action, Fragment and Branch variants as their actual core constructors.
  • Core validation.rs:1766–1791 rejects explicit receiver use before Create or after Delete. These fixtures contain no such same-path use. The self scenario's preceding Action uses L1, not the created L2. In SA5, the later Reply's dead sender endpoint is absent. In SA6, Create and Call occupy distinct exclusive ALT operands; possibly_before treats them as mutually exclusive.
  • Each reply names its guaranteed earlier call and reverses the known endpoints; missing endpoints remain missing. No recreated-after-death or fully bound late-reply invalid model is included.
  • Expect zero Errors, with completeness warnings from deliberately unbound messages, unfinished calls and draft endpoint/analysis fields. Do not hide warnings or report this as a complete system design.
  • Require actual source-project admission, exact original bundle equality (comments/Unicode/explicit IDs), complete Project equality through canonical format/parse, and canonical formatting stability. Compare all fields, not just scenario steps.

preflight.rs is the standalone actual-core check now compiled and executed successfully as recorded above. It reads only the source, performs those checks, verifies all six root step orders and the eight preserved pressure values, and resolves all four SA messages to the exact Call/allocation/ports. It prints diagnostics and a PASS line only after every assertion succeeds; it writes no files. A future rerun must preserve a new receipt label and retain exact dependency provenance.

Native acceptance checklist

Use the named scenarios in Behavior. Check normal-scale and Fit appearance; compare selected and unselected bars and each exposed shoulder, including the three label-backplate bands above nested C2/R2/R1. Exact message/arrow points must still select their own occurrence. Birth capsules and death crosses must select their Create/Delete IDs at pan/zoom. Confirm the long header/capsule labels are clipped without text leaking outside or disappearing after pan, and self-event captions clear the preceding Action. In Properties, inspect pressure values/correlations and the intentionally missing SA5 sender.

For ALT cases, do not interpret vertically stacked operands as consecutive execution. Check each operand and the uncertain continuation independently. Save/reopen a writable acceptance copy and compare the complete Project and original comments/Unicode. This fixture does not establish free positioning, min-scale shoulder usability, global palette improvement, platform completion, or release acceptance; those retain their separate gates.

Source identity before root execution:

  • lifecycle-native.arcadia: SHA-256 998A2FD3E2474E72FC013F4DA422E49BAD61E118DE62ECCFBD71BF06B863CE7F.
  • preflight.rs: SHA-256 BF2EB9B908AE36198D15D47AE79D56E4BB181F506598CC4E76A76175041F633E.