3.8 KiB
Bound native activation fixture — source handoff
Generator: .local/nested-call-bound-fixture-20260912.rs. Source-only; no compiler, Cargo, native UI, Git or Gitea calls. Root owns compilation/execution and acceptance. Rustfmt only checks/formats Rust syntax; it does not establish type correctness or fixture admission.
Root's first version compiled with -D warnings but generation failed before writing output (exit 101). The exact failed source is preserved as .local/native-qa/nested-bound-b250-core/probe-source.rs, SHA256 c5a5ce13c1910ecde13ff3e4ae9f551db521e2818ae28f4b5bded9da69c37102, verified against build.json before editing. The first failed constructor was Kind::Actor in SA: the actual public kind is Kind::SystemActor. Generic make_element(Kind::Port, ...) would also fail intentionally; revised source now uses ports::make_port with explicit owner and Standard component contract. Validation, operation proof, values and whole-Project equality checks remain unchanged. Revised source awaits root's new compile/run receipts; this correction is not yet a runtime pass.
The fresh Project contains three compact scenarios, each two lifelines/four messages in exact order C1,C2,R2,R1:
| Scenario | Binding |
|---|---|
| OA Nested pressure checks | Two Activity lifelines; actual Interaction carrying an Information/Operation item; In requested_pressure and Return measured_pressure, both Real kPa. |
| SA Nested pressure checks | Actor/System lifelines; concrete Standard component ports; required/provided interface; synchronous InterfaceItemAllocation; BoundaryExchange carrying that operation; both Calls explicitly select that exact allocation, Replies derive it from their correlated Calls. |
| OA Reentrant pressure review | C1 L1→L2; C2 L2→L1 through an explicit reverse Interaction; R2 L1→L2; R1 L2→L1. All four remain bound to the correct channel/item and carry values. |
C1 requests 420.0 and R1 returns 418.0; C2 requests 380.0 and R2 returns 378.0. Every message carries one nonempty expression. IDs use the deterministic 21b00d00-0000-4000-8000-... namespace; Call UUID order is deliberately opposite to semantic sequence order. Scenario numeric ID suffixes are 1000, 2000, and 3000; the generated TSV records actual UUID strings. Unicode Δ pressure · 戻り値 is retained in the project description and whole-Project round trip.
Contract evidence read: crates/oa-core/tests/source7_contract.rs operation fixture/resolution and operation_edit; crates/oa-core/src/operations.rs exact allocation, channel, provider/caller port and reply derivation checks; crates/oa-core/tests/r6_data.rs OA Interaction carrying an Operation item with directional parameters/values; current model.rs constructors and field shapes. The OA case deliberately stores no OperationUse, which core limits to SA BoundaryInterface. It still has a real bound operation-item data contract.
Execution takes exactly one nonexistent output directory argument and refuses existing evidence. It validates zero Errors, resolves all four SA messages to their exact Call/allocation/ports, checks values and ordered IDs, then formats/parses through actual core and asserts complete Project equality plus canonical stability before writing. Expected completeness warnings remain recorded rather than suppressed. Outputs: bound-nested-calls.arcadia, scenario-identities.tsv, diagnostics.txt, and README.md.
Open the .arcadia entry and inspect the three named Behavior scenarios. Native acceptance still needs unselected/selected bar paint, exact reply ends, labels, selection, values/correlation Properties, Undo/Redo and save/reopen. Fixture admission is not activation-renderer or minimum-scale raster acceptance. No second include file is introduced: this fixture targets compact native activation behavior; comments/include preservation already has separate evaluators.