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

5.2 KiB

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.