8.5 KiB
Connection-layout transfer audit — run01 / rust-run02
Independent read-only audit of source 8a2010d8a6033201d6efd742134dae9f3d235632; no engine, Rust, compiler or GUI rerun. Results are diagnostic, not production adoption.
Findings requiring qualification/correction
-
Identity import is not reset-only. All five plans preserve original positions, but the importer writes projected effective dimensions into stored expanded sizes: 3 placements in workshop original, 2 folded, 10 each mixed, and 40 sparse. Mixed stored height94 becomes effective height132, for example. These are real full-Project differences, not float spelling. The three ELK plans likewise keep original projected dimensions yet normalize stored sizes unnecessarily. Minimum correction: when supplied size equals the original projected size (typed f32), retain original stored size; write size only when the plan actually requests a different projected size. Keep collapsed exact-size admission and verify final reprojected dimensions against the plan. Parent has accepted this correction for a separately recorded Rust rerun; run02 remains the original evidence.
-
ELK FIXED_POS ports are not faithfully transferred by placement-only import. Every final projected node position and dimension in the three ELK imports exactly equals the recorded ELK plan. Nevertheless, Rust reselects automatic port sides/slots using the new geometry. Mixed and reversed mixed each have 10/25 materially changed port positions and 7 side changes; sparse has 48/110 changed positions and 32 side changes. Maximum coordinate discrepancy is224 world units. No small rounding-only differences occurred in these comparisons. Six authored anchored ports in each mixed case are exactly equal to ELK world coordinates; all material discrepancies are automatic ports. Thus this experiment evaluates placement followed by the existing projection/router, not preservation of the ELK edge-port geometry or ELK quality.
Eight mixed edges and29 sparse edges touch changed ports. Concrete mixed examples: flow_01 Sensor B observations (…01adb1), flow_03 Archive incoming observations (…01adb3), flow_04 Validated observations (…01adb4), flow_08 Actuator dispatch (…01adb8). Sparse examples: flow_00 Sensing Acquire to Decode (…033450), flow_01 Sensing Decode to Validate (…033451), flow_03 Sensing Enrich to Aggregate (…033453), flow_05 Sensing Decide to Package (…033455). Complete identities/coordinates remain in each imported stdout's after.projected_ports/projected_edges and corresponding run01 placement-observation.json.
Preservation and limits
Independently recursively compared full before/after Projects for all eight successful imports and five Arrange outputs. Changes are confined to target-diagram node position/size and the intended mixed authored route reset. Semantic records, other views, placement identity/visibility/anchors, target diagram nongeometry, route entry identity/order and any attachment fields are unchanged. The mixed route (…01adbd, reversed …01adb0) retains its entry, clears its one authored waypoint and label; it is a visible non-promoted projected edge. Other import fixtures contain no authored routes. Consequently these outputs do not exercise retained hidden/promoted authored-route translation, multi-entry ordering, or nonempty authored attachment preservation. Source inspection confirms the importer invokes original-to-final translated_routes then resets only the captured eligible set; that is source evidence, not coverage of missing cases.
Folded identity import preserves the collapsed placement's stored expanded size272×600 exactly and has no position changes (including hidden descendants). The deliberate changed compact-size plan fails with the explicit collapsed-size rejection. Nonzero hidden-descendant translation remains unexercised: both workshop ELK attempts fail before engine invocation on undirected edge 22c7011d-b559-5df8-aadd-851002904ba0. They must not be counted as successful hierarchical ELK transfers.
All eight successful import records report exact JSON and single-source round trips without errors. Five actual Arrange records separately report exact undo/redo, one history entry, second-call stability and before/after source/JSON round trips. The imported candidate is a pure transformation, not a Command/history/native GUI test. Five deliberate malformed plans (missing, duplicate, unknown ID, zero size, changed collapsed size) exit101 with the corresponding admission error; they are expected rejections, not successful imports.
Evidence bindings
Read back175 recorded file bindings across Rust receipt/capture, excluding live target paths: all SHA256 and byte sizes match. All14 Rust invocations have expected exits and unchanged inputs; successful stderr is empty. Verified run01 successful output hashes; three ELK successes record source and bundle unchanged, while both unsupported workshop attempts remain failed.
rust-run02/receipt.json:7bd7b5dc2da6e078ab9bbec22671cadcb34f6d56765d533c755d1bfbf0465d44.rust-run02/capture.json:649e2f9f27f0d4283ba3b20ad4a3329b9008aeda3a7e80786ebdb2a91667acd4.- Preserved Rust binary:
3d0e5aced282761e89b6a36fdcdc79730029db721580941c7fe0315f4ba29f4c; build receiptde5b87f55d2b77a61297727940c9ba83fdf2a02aa807b5c8f33b751547fffef5. Capture explicitly attributes the binary to immediate exclusive-target capture, not a compiler-exit binary hash.
Paths above are relative to .local/elk-reference-20260925. Recommendation: correct avoidable stored-size normalization and repeat only Rust transfer checks under a new pin. Preserve the measured automatic-port divergence as an experiment limitation; do not claim faithful ELK routing/port transfer or adopt it from these results.
Corrected Rust run03 — identity-size finding closed
Read-only audit of fc5c22c903c70b53102fa65e1b8cfdc971f877f1, preserving run02. Independently reconstructed each identity expected Project by retaining the complete original and clearing only the existing eligible mixed route waypoint/label. All five identity outputs equal those full expected Projects exactly. All stored sizes now remain exact, including collapsed expanded sizes. All three ELK imports likewise preserve original stored sizes. Thus the avoidable geometry normalization finding is closed for these cases.
For all eight corresponding imports, complete before and after metric/geometry objects and final_projected_ports equal run02 exactly as parsed JSON. The full Arrange control stdout is byte-identical. Full import stdout is intentionally not byte-identical because corrected after-Project stored dimensions differ. Automatic-port discrepancies therefore remain exactly those measured above; the correction does not solve or obscure them. All eight import round-trip flags remain exact/error-free.
Read back179 run03 receipt/capture file bindings (excluding live target paths): every hash and byte size matched; inputs unchanged. The original14 invocations have expected exits. Added negative-below-minimum unexpectedly exits0 and must remain a failed negative-test expectation: its plan specifies width1, height132 for placement …018705, and final projection actually is width1, height132 at the requested position. Therefore this case does not demonstrate a reprojection-guard defect; its supposed minimum-width precondition is false. It also does not establish acceptable visual readability for width1. Parent plans a separate height1 case to exercise the real vertical-port minimum; no such result was assumed in this audit.
Run03 receipt SHA256 aaee622d1c93fbdcbb56a16c411a62b30b4242606004704e660e46af5aaca914; capture SHA256 90c2b7810b1b9df1d8a41c19f0dce0c49ba9aa9ef8a25ead89caa909584cc30d. No execution or source edits by reviewer.
Corrected minimum-size rejection — final readback
Separately reviewed rust-height-minimum/receipt.json, plan and logs under the same fc5c22c9 source/preserved binary (142e88eefedd57acae17f5ebd5b45a9edf682b9d5e5740ab57d2b2fa1d866e98). The plan sets height1 on …018705; stdout is empty and exit101 stderr explicitly reports Final Rust projection differs from intended node geometry. Read back all12 before/after/log hash-and-size bindings successfully; inputs remain unchanged. This exercises the final reprojection rejection for the actual vertical-port capacity constraint. It closes the missing negative-test coverage caused by the wrong width precondition; the original width1 unexpected success remains preserved and is not relabeled. Audit frozen after this readback; no reviewer execution.