Files
ARCADIA-Studio/harness/experiments/placement-clearance-20260925/results.md
T

125 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Mandatory-lead placement repair result
**The diagnosed sparse terminal conflict is repairable with a bounded native
separation pass, but the result is not an accepted Arrange replacement.** It
removes the routing warning and unrelated-node penetration while making
crossings, shared connector length and one label/stroke intersection worse.
Keep the released router and production node arrangement. The next useful
planner work is connection ordering and corridor/label space during initial
coordinate assignment, including compound geometry; do not add more local
repair rounds or retune router penalties on this corpus.
Source `074051261a0beee1047e2b5624c879deef7813bc`, based on the placement reference
at2850b915. Core changes extract the existing endpoint choice and early lead
guard into shared helpers and expose a read-only necessary-condition report.
Router search/cost/fallback behavior is unchanged. Repair is an example-only
consumer, unsupported for nested/folded/omitted placements and Scenario.
It is not connected to Command::Layout, REST or desktop history.
## Observed result
Primary run02 preserves the five original scenes, five Arrange-reset controls,
four old native candidates and three external-placement transfers. Twelve flat
cases are supported; the five workshop variants explicitly reject unsupported
topology. These are not counted as repair passes. Only the sparse external
placement changes node geometry: eight nodes move down11 units. Twenty-three
of110 projected port positions move, with zero side changes. Final port
identity and owner sets are exact.
The target Planning Aggregate top moves840→851 while Assessment Package's
bottom remains820. The top port's18-unit outward stub ends at833, just beyond
the inflated blocker bottom832. The sole incompatible edge becomes admissible
and obtains a complete route with no warning or unrelated-node penetration.
| Sparse external placement measure | Before | After repair |
| --- | ---: | ---: |
| Incompatible mandatory-lead edges | 1 | 0 |
| NoClearPath warnings | 1 | 0 |
| Unrelated-node penetrations | 1 | 0 |
| Node overlaps | 0 | 0 |
| Proper crossings | 20 | 22 |
| All point contacts | 55 | 58 |
| Pairwise collinear shared length | 666 | 761 |
| Label/node and label/label collisions | 0 / 0 | 0 / 0 |
| Label/stroke intersections | 0 | 1 |
| Route length | 64223 | 64322 |
| Drawing area | 12840450 | 12936535 |
The two original mixed scenes also change route length and drawing bounds because
eligible authored pins/label overrides are reset; no nodes or ports move.
Do not attribute that effect to the new separation pass. All other supported
cases retain geometry and measured results. The old native sparse candidate's
40522 shared-length problem remains. Empty lead diagnostics do not establish
legibility or complete route feasibility.
All12 supported outputs conserve the complete Project except declared node
positions and eligible route reset, retain stored node sizes and port anchors,
preserve complete projected edge/port identity, and pass JSON/single-source
round trips. Duplicate input gives the same result; all nine subsequent calls
through call10 remain exactly equal. Automatic side-flip repair, compound
translation, opposite-order rejection and native usability are not established
by these successful corpus cases.
## Verification and failures retained
Windows Rust1.98.1 gnullvm, LLVM-mingw20260908, offline locked dependencies,
one build job and previously frozen environment. No Linux build or native UI
acceptance run for this experimental repair.
The subsequent evidence commit changes only a prototype budget comment and
documentation/evidence; executable Rust statements remain those tested at07405126.
```
cargo test --locked --offline -p oa-core --test lead_feasibility --test routing_geometry --test edge_attachments --test port_anchors
cargo test --locked --offline -p oa-core --lib --example auto_layout_probe
cargo build --release --locked --offline -p oa-core --example auto_layout_probe
cargo clippy --locked --offline -p oa-core --lib --example auto_layout_probe --test lead_feasibility -- -D warnings
```
Gates14–17 pass at07405126:40 selected integration tests,130 library tests,
2 example solver tests, optimized build and strict Clippy. No broader-suite
claim. Five-case route-control JSONL is byte-for-byte identical to the frozen
released-router output (SHA2569a31a676f23dea2f41daec39497f569d68231fa0fd66e5a1a476be97d5d61ac2).
Both runners complete18 children (route control plus17 scenes), exit0 with
unchanged bound inputs; unsupported status is inside the result, not inferred
from exit status. Each child has a90-second cap. No latency claim is made.
Gate13 at2be8c7f2 compiled but two new non-port fixtures failed semantic
validation because their default DataTypes were primitives. Source07405126
changes only those fixtures to valid Record types; the failed receipt remains.
The first analysis failed on implicit Windows cp1252 decoding of UTF-8 JSONL.
Independent audit found81 altered string leaves in three workshop seeds
(27 each), no numeric/geometry differences; nine other generated seeds were
exact. Preserve run01 as superseded evidence. The v2 runner/analyzer use
explicit UTF-8 and produce primary run02. They also independently compare the
complete raw Project modulo allowed changes and full(owner,port) identity sets.
The prototype's work counter is a weighted size/iteration budget, not an exact
count of all routing/projection operations or a wall-clock guarantee. Explicit
graph, round and span limits remain separate guards.
## Reproduction and evidence
Build the source pin above, then use the archived v2 experiment runner with the frozen
corpus and prior reference archive. The portable probe interface is:
```
auto_layout_probe --route-corpus MANIFEST
auto_layout_probe --repair-placement PROJECT_JSON DIAGRAM_UUID
```
The latter emits before/after geometry, full models, diagnostics, quality
measures, metadata checks and ten-call stability. Original inputs, run receipts,
commands, scripts, failure logs and independent audits are retained in
`evidence/placement-clearance-07405126.zip`; `evidence/manifest.json` identifies
every member and SHA256. Native binaries are represented by capture hashes,
not embedded. See [source review](source-review.md), [result review](result-review.md),
[final claim/archive review](final-review.md), [design alternatives](design.md)
and [bounded consumer](implementation.md). The final review is versioned outside
the immutable evidence archive; its minor runner wording correction is applied.
This branch evidence is local-only until a successful Gitea push and byte
readback; earlier publication attempts failed with remote disk-full errors.
No issue closure, release change, merge or whole-Arrange quality claim.