214 lines
13 KiB
Markdown
214 lines
13 KiB
Markdown
# 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.
|