# Scenario authoring: native Windows evidence, 2026-09-11 Codex-956atf `/root`. This is a partial capability checkpoint, not first-release acceptance. Actual Studio was operated through the Computer Use `sky` API against copies of the independently generated [fixture](fixtures/scenario-authoring/README.md). No fixture fields or expected transactions were changed to match the observed UI. ## Build and execution identity - Rust implementation: `80cf197be6f1d400bf0b9c84bf8557f88c895aa6`. - `cargo build --locked -p oa-desktop --bin arcadia-studio`: exit0, 3m28s, warning-free dev build. Log `.local/logs/desktop-gui-integrated-20260911.log`. - Executable SHA256: `A5ED6DF334B1BFB620425AFDF3E863F0B522990E6FB47C6C401A71CF4443954A`. - Immutable native staging directory: `.local/native-qa/studio-80cf197/`. - Bundled `libunwind.dll` SHA256: `AA282FA47BB2C4E210CEA5E470CDBDCA58568F0BE0BC73E404D86AB9CD95EF6A`. - Process4416 opened the real Iced workspace. The launch helper initially reported no targetable window; a fresh window listing found the completed workspace. No second instance was launched. The debug console window was not automated. - Full desktop tests passed642/642 before this native run. Their executable/hash differ from the GUI; see [STATE](STATE.md). Formatting passed. Subsequent strict Clippy found two collapsible-if statements, corrected after this immutable build; the current lint gate is not yet claimed passing. The native checker requires the task-local runtime on PATH; an initial invocation without the toolchain environment exited `-1073741515`. Sourcing `.local/toolchain/env.ps1` resolved that launch dependency. Both new OA/SA working copies then passed the baseline checker. This was a checker-launch error, not a semantic fixture failure. The GUI stage includes its runtime beside the executable. ## Observed navigation and layout Opened `.local/native-qa/scenario-20260911/oa/project.arcadia` through Studio's normal Open dialog. The initial window captured1442×932 pixels, corresponding to the1440×900 client. The project contains62 elements, zero relations and11 fixture engineering warnings; that matches the independently constructed baseline. At normal size, selected OA A caller and Behavior & scenarios. The new workspace keeps the scenario selector and compact controls above the remaining-height canvas. Fit displayed the whole nested caller at42%; opening Selection reduced available height and recomputed35%. These overview scales are for navigation, not readable detailed editing of every nested label. 1. Selected **OA Second use of B**, verified its name and alias `scenario_oa_61`, then Selection → Open definition. The canvas changed to **OA B verification** with Back to caller available. 2. Selected **OA B use of C** (`scenario_oa_64`), opened C, then Back twice. First return restored B's exact use; second restored A's **Second use of B**, its Selection panel and35% overview. The initiating use was not replaced by the similarly targeted first use. 3. Repeated A→B→A through **OA First use of B** (`scenario_oa_60`). Return selected that first occurrence and preserved its presentation. 4. Switched A to100%, scrolled the actual canvas until the two reuse blocks were visible, opened B and returned. The first-use block returned to the same visible y-position (top646, label666 in the captured window) and remained selected. A subsequent upward scroll moved naturally; Save did not snap it back. 5. Save all completed. Independent `check baseline` passed the whole Project and both reachable source files, including the retained note. Navigation introduced no accepted source/model difference in this checkpoint. Resized through the Windows system-menu Size command, using Right/Down then a pointer placement. The resulting capture was1102×732 pixels:1100×700 client, the application's configured minimum. The initial corner drag did not resize; it is not counted as a sizing result. At minimum size, Fit recomputed21% with Selection open and28% after closing Selection. Focus canvas hid the side panels and Restore panels remained accessible. Normal-scale editing retained a real scrollable canvas. ## OA action: creation and exact history pass Performed the fixture's prescribed `oa-action` task at the minimum1100×700 client, with focused canvas and100% scale. Tools → Add action exposed an explicit root insertion line labeled before **OA Root entry**. Clicked that line at the **OA A inspector** lifeline, not the Tools append action. The pending marker retained the chosen owner/before-slot/lifeline. The bottom form kept **Create** and **Cancel** pinned while its fields scrolled independently. Entered literal name **OA native action**, selected work **OA Inspect ticket**, and confirmed the preselected observed lifeline **OA A inspector**. Create added one action before Root entry; the canvas showed63 objects and selected the new action. Save all completed. | Native stage | Independent result | Preserved whole-directory snapshot | | --- | --- | --- | | Before Create | Previously checked baseline | `.local/native-qa/scenario-20260911/oa-baseline-verified/` | | Create, Save | `check oa-action` PASS | `oa-action-verified/` under the same run directory | | Ctrl+Z, Save | `check baseline` PASS; `same baseline-verified working` PASS | `oa-action-undo/` | | Ctrl+Y, Save | `check oa-action` PASS; `same action-verified working` PASS | `oa-action-redo/` | Every `same` comparison covers all Project identities/fields and every SourceBundle byte. The semantic checker borrows only the unique fresh role UUID and independently predicts the remaining graph. The verified snapshots were preserved before Undo; restored snapshots did not replace them. All checker commands exited0. Tool outputs record both semantic and exact equality passes. ## OA nested state: creation and exact history pass On the same immutable80cf197 GUI and minimum1100×700 client, armed Observe state and scrolled through Outer ALT / Outer chosen operand into Inner ALT / Inner chosen operand. Clicked the inspector lifeline at the explicit slot before **OA Inner anchor**. The marker and form both retained that nested operand and before-slot, with **OA A inspector** preselected. Entered **OA native state** and selected **OA Ready**. Create inserted the state before the unchanged anchor. Save passed `check oa-state`, then a whole-directory copy was preserved as `oa-state-verified/`. Ctrl+Z/Save passed `check oa-action` and exact `same` against `oa-action-verified/`; its copy is `oa-state-undo/`. Ctrl+Y/Save passed `check oa-state` and exact `same` against the original state checkpoint; its copy is `oa-state-redo/`. Every checker command exited0 and compares the complete Project and both reachable source files. State UUID is `b2464322-8178-4587-a76e-711a99f378c8`; the verified entry SHA256 is `D729602EFEB33B343A4B6275A6A077A06CBE70BD163E993604D8ECECFDA4362B`. Two separate native usability findings remain open. The new state form retained the preceding form's downward scroll, initially clipping the name field; an explicit upward form scroll restored access while Create/Cancel stayed pinned. The next Reuse form repeated this retained offset. Its clicked slot near the bottom of the canvas also moved below the visible canvas when the form reduced the canvas height. The retained semantic destination stayed correct. These are not closed by the successful model/source checks. Root owns the workspace fix. The first name typing attempt after an observed focused field did not appear, including a fresh capture. Re-clicking and typing succeeded. This is recorded as an input/focus observation with unknown cause, not a proven application typing defect or uninterrupted first-attempt success. Only the visibly correct text was used for Create. Reuse name entry succeeded on its first observed attempt. ## OA nested reuse: creation and exact history pass Continued at the same minimum size, with the selected Reuse scenario tool. Clicked the same inner chosen operand before **OA Inner anchor**, after the new state. Named the occurrence **OA native reuse**, chose **OA B verification**, and explicitly selected **OA B recorder → OA A recorder** and **OA B inspector → OA A inspector**. The eligible lists each exposed the compatible local lifeline; Create became available only after both bindings were supplied. The form's destination remained the inner chosen operand and original before-anchor slot. Create/Save passed `check oa-reuse` and was preserved as `oa-reuse-verified/`. One Undo/Save passed `check oa-state` plus exact `same` against the original `oa-state-verified/`; `oa-reuse-undo/` preserves it. One Redo/Save passed `check oa-reuse` plus exact `same` against the original reuse snapshot; `oa-reuse-redo/` preserves it. Every check exited0 with full Project and two exact reachable sources. The new occurrence UUID is `c46abb1c-2c23-4c40-bfdd-ef1b1147498b`; the verified entry SHA256 is `FFF7A28855033717DF8060EA9D459B8106FA54E1ACC79E14AAE661161C3B26F9`. The reusable definition and all existing lifelines retain their original IDs. ## OA root fragment and final reopen: exact history pass At the same minimum size, armed Add fragment, scrolled to the original root exit and clicked its preceding root slot. The form explicitly displayed **OA A caller → before OA Root exit**. Entered **OA native alternative**, retained **ALT · alternatives**, and supplied guards `ticket.priority > 2` and `ticket.priority <= 2`. Create added the fragment and its two empty operands in one transaction; the saved model has68 objects. The retained form-offset/hidden-marker findings above repeated and remain separate open usability work. Create/Save passed `check oa-fragment`, preserved as `oa-fragment-verified/`. Ctrl+Z/Save passed `check oa-reuse` and exact `same` against the original reuse snapshot; Ctrl+Y/Save passed `check oa-fragment` and exact `same` against the original fragment snapshot. Separate `oa-fragment-undo/` and `oa-fragment-redo/` snapshots retain both results. Fragment UUID is `22f33339-fe1e-41c8-960f-a1ef9a9eb8c8`; operand UUIDs are `68e9fb77-2f68-4cde-b0dd-16a7fb325c39` and `30f9cf01-252b-44ab-90ac-1ca8aca99d8d`. Verified entry SHA256 is `5DD1EFC998D11FE12325312267F0B9BFDBB974F4400CE5ADC3A99516B2B153CE`. Opened the same `oa/project.arcadia` through the actual native file picker, then saved. The architecture page opened with68 objects. `check oa-fragment` and exact `same` against the pre-reopen verified snapshot both passed. All three physical fixture files (two reachable sources plus expected-baseline.json) also matched byte-for-byte; `oa-reopened/` preserves the result. Every oracle command exited0. Thus all four OA creation/history checkpoints and final reopen pass their complete model/source/identity contract on this GUI. ## SA root action: complete saved history pass Opened the separate untouched `sa/project.arcadia` through the native file picker; the independently checked62-object/two-source baseline was preserved as `sa-baseline-verified/`. Selected System Analysis, SA A caller and Behavior at the same1100x700 minimum size. Armed Add action and clicked the visible inspector lane at the explicit **before SA Root entry** marker. The pending form displayed that root destination and retained **SA A inspector**. Entered **SA native action** on the first observed name attempt, then selected **SA Inspect ticket**. Create produced the new first root step in one transaction; the saved model has63 objects. Create/Save passed `check sa-action`, preserved as `sa-action-verified/`. One Ctrl+Z/Save passed `check baseline` and `same` against the original `sa-baseline-verified/`; `sa-action-undo/` retains it. One Ctrl+Y/Save passed `check sa-action` and `same` against the original verified action; `sa-action-redo/` retains it. All commands exited0 and compare the complete Project and both reachable sources. The action UUID is `bf113d5d-3ea3-44f3-9d9f-b1e11bfdc9a6`; verified entry SHA256 is `3715C2511C79E2EED9609DE851105A5501439FF8A402B008FA282BAE260C1EA9`. The app remains on the saved SA action checkpoint. Remaining SA forms should also exercise the next staged GUI's new form-session/focus/marker behavior after its build gates; this80cf197 pass does not accept those uncompiled fixes. ## Open native gates SA State/Reuse/Fragment checkpoints and SA final reopen, blocked navigation/cancellation/recovery, detailed-list definition entry, minimum-size nested caller return, and B4 lifecycle rendering remain open. This report does not infer them from the passing root action. B4 is still a pure cfg(test) projection; independent Scene review identified lifetime bounds, branch-local activation clipping, incomplete-lane geometry and self-arrow endpoint work before production integration. The saved OA result is complete for the four-step contract; the SA action result is saved after exact Redo. Continue the remaining SA steps from that verified checkpoint, following the exact fixture procedure. Root retains native input; concurrent source builds use the separate target tree and must not overwrite the running staged executable.