Files
ARCADIA-Studio/harness/experiments/auto-layout-20260925/results-j.md
T

5.6 KiB
Raw Blame History

Target-join scoring experiment

Keep experimental. Accounting for the target turn during route-leg selection confirms the suspected source/target scoring asymmetry, but does not establish uniform readability improvement. The original bipartite scene becomes more overlapped. Do not integrate this branch as a completed Arrange fix.

Production routing/test source is 497c1ad8b39788148c5f03bc8542d6d8e28dbc01. Successor 08656b18bf8934cf264469cf68fc6dea97c15cbb only resolves three strict Clippy findings in the diagnostic observer. Probe runs at both commits emitted the same 371192 bytes, SHA256 f9ac7c1320b1cf026259bfcaf13a39e968ae317463712d8dc793375d9a4a541f. The independent source review and independent results audit retain the scoped claims and limitations. The latter predates the completed contact audit below.

The evidence archive contains original runs 02–06, including the failed Clippy run, source inventories, full Projects and geometry, comparison JSON, independent contact audit/script, runners and 37 offline geometry images. It is 3178939 bytes, SHA256 bd2146237353af05b8667dc7bd728007143a2f1b24ad9f8728fdbc50ffb3368e. Manifest records every member; every archived byte was compared with its original. Paths in original receipts identify the builder's machine, not a dependency on a peer's filesystem.

Checks and comparison

Windows Rust 1.98.1 gnullvm, locked/offline, one job, incremental disabled; Linux excluded. All receipts close with unchanged inputs and no runner failure.

cargo test --locked --offline -p oa-core --lib --test release_routing --test routing_geometry --test routing_labels --test state_diagrams --test group_movement
cargo run --locked --offline -p oa-core --example auto_layout_probe
cargo clippy --locked --offline -p oa-core --all-targets -- -D warnings

Tests: 185 passed, zero failed/ignored (132 library, 7 group movement, 13 release routing, 18 routing geometry, 2 routing labels, 13 State). Three new private tests exercise fast/grid terminal scoring in four orientations, absent continuation, straight/reversal and zero-length legs. Existing authored-pin/attachment/history checks pass. Initial Clippy rejected two manual-range expressions and one nested if in the observer; after that observer-only cleanup, strict core/all-target Clippy passes and the rerun output is byte-identical. No whole-workspace/native acceptance is implied.

Across all 37 before/baseline/reset/layered/manual-witness variants, complete Projects, projected nodes, projected ports and exact route endpoints are unchanged versus the first experiment. This isolates routing/label placement; it is stronger than merely reusing fixture input. All nine candidate invariants, round trips, deterministic repeats and calls 2–10 remain exact. The candidate still has no integrated command Undo/Redo evidence.

  • Layered diamond: shared length 82→36, nonterminal 46→0; all other original metrics unchanged. Remaining 36 units are common terminal stubs.
  • Layered bipartite: shared length 344→187, nonterminal 272→115; routed drawing area 165360→175960. Labels, bends, length and other recorded metrics unchanged. Seven other layered metric vectors are unchanged.
  • Original bipartite regression: sharing 730→872, nonterminal 658→800; bends 5→4 and length 2076→2064. The scoring change can favor fewer bends over distinguishable routes. This is not a monotonic quality improvement.
  • Original diamond sharing 136→36; original two-container sharing 200→54; existing Layout/reset-only two-container sharing 148→18. The independent audit lists the complete changed vector; 30 of 37 variants are unchanged.

The separate Python contact audit uses orthogonal interval reasoning to reconstruct BOTH old and new contacts. Primitive witnesses pass; all 37 new contact/proper counts match Rust, and all 37 old proper counts match v1. Layered diamond contacts decrease 3→2. Layered bipartite contacts increase 8→9: eight bend contacts become six bend plus three T contacts. Proper crossings remain zero. Thus decreased coincident length partly trades into branch contacts. Details, edge IDs, coordinates and definitions are in the archive's support/auto-layout-contact-audit-result-20260925.json; script is adjacent. There is no inferred aggregate quality pass.

The parent viewed diamond/bipartite offline images: diamond branches separate, but bipartite horizontal tails remain visually joined despite separate vertical channels. These are schematics of core bounds, not native application or glyph evidence. The residual diagnosis confirms four genuine shared semantic ports; distinct-port placement is not the defect. Of 187 shared units, 72 are bounded common-port stubs and 115 are avoidable interior overlap.

Next discriminating comparison

Retain this J result as a frozen control. Test one predeclared overlap coefficient 3.0 instead of 0.12, with the existing per-segment cap 80, crossing cost 24, node/port geometry and edge ordering unchanged. This P variant is an isolated experiment, not a proposed default or a release-ready source change. Preserve the original bipartite regression as a sentinel and the entire quality vector. If stronger penalties cannot choose useful existing alternatives, inspect bounded parallel lane candidates separately; do not silently combine scoring, spacing, caps and ordering changes. A candidate that shifts overlap into hard-to- follow contacts, label collisions or large detours has not solved the user task.