6.5 KiB
Complete scoring/lane comparison
Stop tuning these nine fixtures; retain the variants as experimental evidence. Bounded parallel lane candidates have some measurable value, but do not resolve the compact bipartite ambiguity and introduce a routing-cost concern. The stronger overlap coefficient is no longer present at the branch tip. No routing or Arrange replacement has been accepted for production.
PL source d0be9ff0674373fcf9623daf62bbf50dad02c4df combines target-join J,
coefficient 3.0/cap 80 and bounded lanes. L source
e8ec6dbb3160f62476a5557f14605f68959f65fe restores coefficient 0.12, retaining
J and lanes. Each leg keeps every obstacle coordinate and adds at most 64
deterministic coordinates per axis at CLEARANCE offsets from settled other-edge
segments. Fast/grid searches receive the same augmented space. Endpoint geometry,
authored pins, attachments and model metadata are not edited by this operation.
The source review records attribution limits: retained coordinates are bounded, but collection/sorting of prior segments is not charged to the search budget. Extra axes can hit the existing grid-cell cap and can alter grid scores through segment subdivision. This is not a proof of globally optimal paths or constant preparation cost. No new engine/runtime dependency was added.
Results
Every one of the 37 complete Projects, node sets, port sets and exact endpoints matches its control in both comparisons. All nine candidate invariants, roundtrips and repeated-call checks hold. Values below are raw pairwise shared length for the crossed-bipartite fixture; complete vectors remain in the archive.
| Router | Original scene | Existing Layout/reset | Layered candidate |
|---|---|---|---|
| Released router | 730 | 276 | 344 |
| J | 872 | 276 | 187 |
| J + stronger penalty (P) | 730 | 276 | 187 |
| J + stronger penalty + lanes (PL) | 724 | 72 | 176 |
| J + lanes, original penalty (L) | 724 | 276 | 176 |
PL's existing-Layout/reset result eliminates 204 nonterminal shared units but adds one proper crossing, 24 route-length units and 19392 area units. Contacts decrease 6→5; these tradeoffs stay explicit. L with the original coefficient does not achieve that baseline improvement. Both lane variants leave 104 nonterminal units in the compact layered case, with nine point contacts. Its drawing area returns from J's 175960 to 165360. Eight other layered metric vectors are unchanged. The parent viewed the PL bipartite schematic: vertical channels are separated, but horizontal tails still join at ambiguous branches.
Compared with J, L reduces original bipartite sharing 872→724 and original two-container sharing 54→12 without changing the other original quality fields; two-container baseline/reset sharing reduces 18→12. PL compared with P includes a two-container original sharing regression 6→12 while reducing one bend, 12 length units and one contact. The PL audit documents all seven changed rows; no scalar is treated as a universal quality score. Labels, obstacles and warnings remain separately checked. Core schematics and approximate label boxes do not establish actual glyph layout or native route traceability.
Verification and evidence
Same frozen Windows Rust1.98.1 gnullvm environment, one Cargo job, locked/offline, incremental disabled. Linux excluded. All runs close with exit0, unchanged inputs and no runner failure:
# PL: five matched tests, including all three new lane tests
cargo test --locked --offline -p oa-core --lib lane
# L: 188 tests passed, zero failed/ignored
cargo test --locked --offline -p oa-core --lib --test release_routing --test routing_geometry --test routing_labels --test state_diagrams --test group_movement
# Both variants: complete nine-fixture diagnostic
cargo run --locked --offline -p oa-core --example auto_layout_probe
# L: strict core/all-target Clippy passed
cargo clippy --locked --offline -p oa-core --all-targets -- -D warnings
The full 188 check is for L, not PL: an existing private J test intentionally
asserts the original 0.12 cost. PL's filtered run executes three new lane tests
and two existing Scenario tests matched by lane; 130 other library tests are
filtered. Lane witnesses cover base-coordinate preservation, 64-extra bounds,
deduplication/order independence, relevance ranking, nonfinite rejection and
fast/grid selection of a feasible parallel path under the experimental cost.
Cost signal: routing_geometry's 18-test runtime is 16.43s under L versus 4.30s under J on the same machine/environment. This excludes compilation, but is one suite observation per variant, not an isolated route benchmark or a performance bound. It warrants profiling before adopting per-leg lane scans. Whole cargo/probe elapsed times include compilation and are unsuitable for that comparison.
The independent final L/four-way audit confirms all 37 fixed bindings and the 188-test result, checks the recorded geometry/contact evidence, and likewise recommends withholding L from production pending the independent corpus and route-only timing.
Evidence archive, 3518507 bytes, SHA256
5512b4cbd99e3bf03eb975e25fb980f7b1a95a5cb19f3687fb3d6d83d1839e8f,
contains original runs08–12, 74 offline images, complete comparisons, independent
axis-based contact audits, binary identities and runners. Manifest binds every member, all byte-compared to originals.
PL output SHA256 04bb9ba4ab551a965cea130510cca6b96d9c1012911f191b14a7aa7efbf563dd;
L output SHA256 64232f580600b7a874a6f4ceb128a6188fd5ff72655bc6b93d824ebed27ffb7d.
The earlier P result and original archive remain linked in results-p.md.
Decision and next evidence
Do not choose a global router policy from these nine scenes. Freeze a small independent corpus before the next run: realistic authored nested/folded content, mixed-direction shared/distinct-port fan-in/out with a fixed edge-ID permutation, and a modest sparse diagram for isolated routing-time/budget observations. Compare J and L with an explicit route-tracing rubric and full quality vector. Preserve the original Scene/Arrange distinction and source/history lifecycle constraints. This should decide whether the lane cost is justified or the simpler router should be retained before broadening the Layout prototype. Fold/filter rules, one-command Undo, API/source parity and real desktop acceptance remain required; the separately pending State-label issue36 is not silently included here.