Files
ARCADIA-Studio/harness/release-scenario-native-20260911.md
T

214 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.