Files
ARCADIA-Studio/harness/experiments/arrange-reset-20260925/results.md
T

11 KiB
Raw Blame History

Explicit Arrange route reset — branch evidence

Bounded reset candidate verified on Windows; local-only pending publication. Branch codex/arrange-reset-ytr83r-20260925 is based on released 715036e132677dd2bc2fb37ed316d93dc9987aec. Final native/build/Clippy source is d6f45a13a7b8ab8dc9b84ee432a832609f5af6ed. This result covers the reset capability within issue #32, not a replacement node-layout algorithm or completion of intersection/label-aware automatic arrangement. No routing algorithm change is included.

Publication remains blocked by the recorded remote disk-space failure. This branch/evidence is local-only; no successful push, PR, merge or release is claimed. Existing published prereleases are unaffected.

Behavior

Explicit Command::Layout freezes reset eligibility from the staged pre-operation filtered projection. It clears existing pins and the complete label override only for projected edges whose displayed endpoint owners equal both actual placed owners and whose projected owner nodes exist. It retains route entries/order, edge identities, both endpoint attachments, semantic ports and manual port anchors. Ordinary placement movement and the routing engine are unchanged.

Filtered, promoted, missing-owner and outside-projection routes are not reset. Retained pins follow the existing actual-owner equal-delta translation rule, including the State boundary exception; a retained record is not a promise of fixed world coordinates. Projection-excluded owners receive no movement when outside the existing Layout placement scope. Other views remain exact. Whole Reset routing remains a distinct operation that removes all overrides. Documentation now describes this deliberate behavior amendment instead of promising that Auto-layout always preserves pins.

Standalone changes form one history entry, including a route-only reset when nodes are already arranged. Nested Layout participates in its enclosing Batch's final validation and history. No-op Layout preserves Redo. A valid pending property draft remains a separate Apply before Layout; an invalid draft blocks Layout without losing its input.

Recorded checks

All successful receipts below record exit code 0, unchanged pinned source, and no runner failure. Environment: local Windows x86_64-pc-windows-gnullvm, frozen offline toolchain, one Cargo build job.

Source Check Actual result
6c44a2d6a16d8c80320d35a9c8d2eee3b77e8047 Core library + release_routing, state_diagrams, routing_geometry, routing_labels, route_source, group_movement 195 passed, 0 failed/ignored across seven harnesses
6c44a2d6a16d8c80320d35a9c8d2eee3b77e8047 cargo clippy --locked --offline -p oa-core -p oa-desktop --all-targets -- -D warnings Passed
9eb4642e50564165aa0db38d8e91f4c14b818bdc cargo test --locked --offline -p oa-desktop arrange_reset_ 3 passed, 1535 filtered out; not a full desktop-suite run
d6f45a13a7b8ab8dc9b84ee432a832609f5af6ed cargo build --locked --offline -p oa-core --example arrange_reset_native_probe Passed
d6f45a13a7b8ab8dc9b84ee432a832609f5af6ed cargo build --locked --offline -p oa-desktop --bin arcadia-studio Passed
d6f45a13a7b8ab8dc9b84ee432a832609f5af6ed Strict core/desktop all-target Clippy command above Passed
d6f45a13a7b8ab8dc9b84ee432a832609f5af6ed Native expanded/folded Arrange, Undo, Redo, source-save and fresh-process reopen Eight complete-Project comparisons passed; two normal closes, exit 0, empty stdout/stderr

The three desktop tests cover exact multi-file comment/source preservation through Undo/Redo/reopen, an invalid property draft blocking Layout, and separate valid-property Apply/Layout history. Core cases include explicit reset-only change history, preserved attachments/anchors and empty entries, filtered equal/different-owner deltas, folded actual-owner versus displayed-owner movement, missing owners, excluded projections, State boundary retention, temporary invalid Batch prefix repaired before final validation, and no-op Redo.

The difference from the core-test source 6c44a2d6 to d6f45a13 is the added native oracle example and desktop history tests. The production reset implementation, production routing and node arrangement did not change in that interval. Each gate is reported at its actual source pin; the 195-test run was not repeated against d6f45a13.

Receipts, raw logs and before/after source inventories for all eight gates, including both failures, are preserved in the accompanying evidence archive under gates/. Commands run from the identified commit's repository root. Environment was Rust 1.98.1, Windows gnullvm, LLVM-MinGW 20260908 UCRT, dev builds and one Cargo job. --offline requires dependencies already cached. The core command is:

cargo test --locked --offline -p oa-core --lib --test release_routing --test state_diagrams --test routing_geometry --test routing_labels --test route_source --test group_movement

Preserved failures: 01-core-contracts at f0d64b531addcea584083e35296d1e5a4cb1fa8d failed compilation with E0507 because a test moved Option<EdgeLabel> through a shared reference; the assertion now clones it. 02-core-contracts-fixed at 3dfbe1959d8b5717bf8b8c1a76f31afc5ca7072a compiled, then stopped with 19/20 routing tests passing: the new fixture incorrectly assumed Decomposition excludes FunctionalExchanges. It now uses Capabilities, includes one genuinely visible capability and retains inactive Function placements, with full independently cloned expected Project equality. No production behavior was weakened to accommodate that fixture. The corrected complete selected run is the 195-pass result above.

Native acceptance

The native fixture supplies expanded/folded originals, two authored visible pins and a label override, fixed semantic anchors, dormant attachments, a filtered-route sentinel and an independent second view. Its expected after-Projects are produced by the candidate Command::Layout: they verify UI wiring/save/history against the candidate, not independently prove geometric quality. Independent contract tests and source review supply separate checks. Generate a fresh fixture directory with arrange_reset_native_probe NEW_DIRECTORY; compare saved JSON using arrange_reset_native_probe --compare ACTUAL EXPECTED. Build commands are above. Run the desktop executable with its matching LLVM-MinGW libunwind.dll, open the generated original JSON, and use fresh destinations for every JSON export.

Executed for expanded and folded cases: Open → Arrange → export/compare expected → Undo/export/compare original → Redo/export/compare expected → save source project. After normal process closure, a fresh process reopened each saved source project, inspected its main and sentinel views, and exported another exact comparison. All eight typed-Project comparisons passed; an independent reviewer also confirmed byte equality for these particular JSON artifact pairs. Original imports remained intact. Saved source projects are multi-file bundles, not byte-identical to the generator's single canonical source file; their fresh-process model comparisons establish semantic persistence. Desktop tests separately cover authored multi-file comments and exact source history.

Protocol correction: the initial plan assumed JSON Save overwrites the opened file. The app instead imports JSON without adopting its path; JSON Save As exports to a new destination and refuses an existing destination. The first overwrite attempt was visibly refused and preserved. Subsequent checkpoints used new JSON exports, then actual source Save for clean closure and reopen. The original staged checkpoint helper was not used. A reviewed supplemental checker, explicitly recorded as not stage-admitted, snapshots exports and invokes exact production decoding/equality without mutation. Its SHA256 is 5bcd8a568d5318dd62217c1e0b35538b22e34403c9727eee8814a5d0ec5a899f.

The launcher admission review found and corrected a package-inventory gap before staging. Captured GUI SHA256 is 133375d57bdecf3f3effe5ecc13ec121e1257b90838f2cdb64fb91aa9a530d1b; oracle SHA256 is 0792aff4cf8460c58fa2bf2f5ddbfa478523b7c9fe9b45e19ec93090191c37c1. Both came from reviewed same-pin builds under exclusive local compiler/target ownership and immediate stage capture. Ordinary Cargo receipts do not hash executables at compiler exit; the capture attribution depends on that ownership observation. The evidence archive excludes executables/private profiles but retains their manifests and inventories.

All 18 full-window native screenshots and eight comparisons received independent review. Both GUI processes closed normally, with exit 0 and empty logs. At maximized 1605×872 capture size, selected pins disappeared/reappeared with Arrange/Undo, folded metadata survived, and the guide correctly explained the narrower reset versus whole Reset routing. An icon-sized screenshot was initially selected by the automation helper; its rejected click was corrected using the full-window screenshot. Short filename/set-value helper failures were resolved by absolute-path typing. These observations do not establish application input defects or resolution of the separate restored-window issue.

Material existing usability limits: Arrange requires Fit to bring the wider arrangement into view; Undo retains the viewport and can clip earlier placements until refit. Guide search filters a topic but required six scroll actions to reach the routing card. Automatic shared contacts/crossings remain. These are follow-up work, not evidence of complete issue #32 acceptance.

No full-workspace regression, performance, Linux, general layout-quality, arbitrary State-boundary native or Process/Scenario acceptance is claimed. No source reset rule promises fewer automatic elbows, universal nonintersection or readable placement by itself. Linux remains excluded by the user. Live ownership and delivery status remain in Gitea; this document records branch-specific evidence, not an integrated-state checkpoint.

Evidence navigation

Source review, native acceptance review, staging review, supplemental checker review. Historical plans and rejected attempts are retained as historical inputs in the archive; the normative implemented contract is in docs/language.rst at the tested pin.

Archive and member manifest: 221 members, 6529778 bytes, SHA256 219c6dde234f1f30c4af191a538c21eacf874f234af0b8506bb66251db412650. Every member was reread and verified by length, SHA256 and CRC. Raw evidence retains original machine paths for provenance; peers should use the commit, repository-relative paths and commands above. Native binaries/private profiles are excluded.