Files
ARCADIA-Studio/harness/scenario-text-union-20260923.md
T

87 lines
5.2 KiB
Markdown

# Saved Scenario and Text composition
Branch-specific source composition from root `5960563b23b3f28f83343c283b7c156bf248994a`
and Scenario/inspector `14e7e6aa46f59346c7a9a478fc9498fd0b496aaf`.
This is an unverified integration candidate, not a release or completed native gate.
Live integration/release ownership remains with the parent session and Gitea #27.
## Source decisions
The functional Scenario delta is `208268c..14e7e6a` under `crates/`: typed
activations, saved layout and source lifecycle, complete geometry, scoped
navigation and spacing, Details/Properties, arrangement picker and fixed
inspector actions. Applying that delta with three-way content reconciliation
avoids replaying historical work independently integrated by root. Root's
instructions, user specification, records, dependencies, vendor patch and
documentation are retained; old live ledgers are not imported. Attachments,
State bends, latest transition work, private source8 and resize are separate.
The lossless writer retains root's CompleteForEdit comparison authority and
Compact/CompactValues insertion templates. Scenario EditContext is threaded
through the same record/list writer and keys only Diagram.layout.Scenario rows
by their qualified identity. Authored layout none survives unrelated changes;
clearing a real payload removes it and retains comments. No global null default
was added to the comparison representation.
App admission preserves current TextWorkspace/source/allocation/navigation and
rename-scroll envelopes before shared boundary effects. Scenario spacing and
representation/visit checks also run before those effects. Scope input-owner
equality now includes Scenario representation and visit. Current source Tab and
selection behavior are retained, as are passive WorkDrag reveal exceptions.
Independent review found a same-visit, newer-epoch stale action could retire a
newer deferred reveal before its late rejection. Active Scenario actions now
require the exact context before shared boundaries. FormShown, Viewport,
Restored and Scrolled retain their existing passive admission, while Camera
retains its separate lifetime rule. A regression captures arrangement/outline/
selection/zoom actions, starts a same-view reveal, verifies all stale actions
preserve its full receipt/focus/source/history, and completes the live viewport.
Root intentionally removed the obsolete panel-focus mode and Canvas button.
This integration retains that always-active canvas policy. Saved Scenario
Details opens the current inspector and dismisses its outline without replacing
the view or camera. Peer tests formerly hiding/restoring panels now exercise
the visible inspector and retained selection/view/camera. F6/Tab logical
keyboard ownership and root's same-batch suppression remain unchanged.
Typed hit roles retain the root activation-priority rules and boundary paint.
The derived sequence helper remains available to root's production deletion
eligibility guard; peer's test-only gate is inappropriate with that caller.
Properties uses the corrected two-child outer column with its Scrollable at
child 1, preserving the Properties/Connections reconciliation fix.
## Verification to perform after compiler lease
Rustfmt parsing and Git whitespace/conflict-marker checks preceded the initial
source commit. The first frozen `0b61771` core listing compiled and listed 129
tests. Its `scenario_layout` run passed 20 and failed seven source lifecycle
cases: the ordinary parser's field inventory did not admit `layout`. The repair
adds the optional field to Diagram's parser inventory only, preserving the
CompleteForEdit omission/clear distinction above. These first receipts bind 742
unchanged inputs and the actual executable; they are failed-run evidence, not
acceptance of the repaired source. A fresh listing and affected runs are required.
No desktop runtime or GUI gate has run at this checkpoint.
New discriminating tests combine ordinary omitted/authored defaults with
Scenario row reorder, alias rename and layout clear, and retain a live saved
spacing gesture across stale Text commands and prior Scenario visit messages.
First compile/list core and desktop tests on the frozen candidate, inspect the
actual inventory, and resolve union-only API/literal failures. Run core
`scenario_layout`, `references::scenario_layout_tests`, default-omission and
source lifecycle checks; desktop Scenario/spacing/Details/navigation,
source_indentation, rename-scroll, source-input and canvas-focus tests; HTTP
Scenario layout transaction/export/restart checks. Then full workspace tests,
strict workspace/all-target lint and matching GUI build. Existing peer totals
are not additive acceptance targets.
Native combined acceptance must include saved view/picker/Details, lower-field
Apply/Revert and Properties/Connections return, spacing plus cancellation,
Text Tab/undo/edit/Apply and return, exact view/visit restoration, save/reopen,
and preserved active keyboard focus. No native or cross-platform claim follows
from source composition. Existing smaller-window and accessibility limits stay
in force until separately exercised.
Later attachment integration must adapt new EdgeRoute literals, notably core
scenario_layout tests. Later transition integration must retain Scenario's
architecture-destination exclusion while adding counterpart search/footer.