Files
ARCADIA-Studio/harness/experiments/diagram-readability-20260929

Issue 38 bounded geometry experiment

Source preparation for 715036e132677dd2bc2fb37ed316d93dc9987aec. No compilation, current-router execution, GUI selection, or feature acceptance is claimed by this directory. The parent owns execution/publication. Windows only; Linux/WSL excluded.

The Rust example uses persistence::decode, validation::validate, projection::project_view, and routing::route_diagram. It accepts schema JSON or single-file Arcadia source, not a multi-file source bundle. No production modules are changed. It records the complete admitted Project, all projected nodes/ports/ edges, semantic endpoint identities, authored and effective route data, settled geometry, labels, warnings, query occluders, and alternate geometric samples. Its input source is read-only. Generation preserves original input bytes alongside normalized complete projects. Individual probe output includes the exact UTF-8 input. Output files use create-new, and generation refuses an existing directory.

Inputs and independent answer keys

mixed-dispatch-original.json is the exact 32,787-byte archived corpus member inputs/corpus/mixed_dispatch.json (see provenance hashes). It has ten function cards, fourteen Functional Exchanges, two saved views, and authored feedback route ...01adbd with waypoint (300,-100), label fraction .4, offset (-30,-70). The secondary view is a conservation sentinel. The original full archive is linked/hashes recorded in provenance.json; it is not duplicated here. Only the historical before geometry from producer 3e21c1bc... informed the declared query. The paused boundary-order planner is neither imported nor executed.

eight-card-view.json adds one view to the complete, unchanged examples/release1/model.json. Its positions approximate the user's screenshot; the exact saved user view/camera/pins have not been recovered. The mixed OA Process and SA cards use an inferred SA/Traceability view, not SA/Overview. This is a representative reconstruction, not proof of the original projection or identities. No authored routes are invented. All five original views remain unchanged.

The fixed answer keys were derived from input semantic records and endpoint-owner placements, independently of the router. eight-answer-key.json has 12 edges: four Allocation, four PortAllocation, two FunctionalExchange, one BoundaryExchange, and one OA ChainInvolvement. No traces have both endpoints shown. PortAllocation and BoundaryExchange semantic endpoints are ports; projected endpoints are their owner placements. mixed-answer-key.json has fourteen FunctionalExchanges. The probe fails if a recognized fixture view's full projected inventory differs, including kind, semantic endpoints, ports, projected endpoints, and trace flag. Do not treat the eight-card count alone as a semantic acceptance check.

The explicit archived warning baseline is ten work_without_behavior_context and fourteen exchange_without_behavior_context diagnostics. It was prepared from the input records and coverage rules; first execution must confirm it, not silently regenerate it from observed diagnostics. The release1 baseline is its existing one-warning expected-diagnostics.json. Every error, missing warning, extra warning, or changed warning field/message fails admission. No automatic warning acceptance or migration-based fixture replacement is performed.

Query policy and limits

The declared historical query is world (1982,375), zoom 1. Reproduction requires exactly the two genuine edges ...01adb8 (Actuator dispatch) and ...01adb9 (Operator dispatch copy), zero segment distance, no node/port/label occluder, and common vertical x1982 span y336..414 beyond the common port lead. The flag is false when current routing no longer reproduces this geometry; that is a valid experiment result, not an implementation failure. The eight-card default query (600,450) is merely a declared inspection point, not an asserted overlap witness.

Line candidates use seven screen pixels converted to world units. Port occlusion uses the desktop's axis-aligned square half-width max(10/zoom,10) world units. It is not a radius-eight circle: (9,9) relative to a port center is inside the square at zoom1 and zoom2 although its Euclidean distance exceeds10. The earlier local historical audit's radius-eight assumption is superseded; its original record remains historical and must not be cited as the current port-policy proof. Node rectangles, nonempty ordinary label rectangles, and association-end label rectangles are reported independently. Candidates are distinct edge identities, with every matching segment recorded; a bend does not count as two edges.

Alternate access is a conservative sample at each segment's quarter/middle/three- quarter points and each label center across the complete scene. A positive result identifies geometric access under this query policy; a negative result proves nothing about global accessibility. Native selected handles, gesture state, viewport clipping, Inspector selection, keyboard behavior, pan/redraw, and actual input dispatch are excluded. Ordinary labels precede association labels in desktop dispatch; this probe conservatively rejects either overlap for an unoccluded sample. It never claims native selection or global inaccessibility.

Read-only Project equality is a capture/conservation control, not an edit/undo test. Neither automatic route stability after edits nor preview/committed settlement identity is promised. Native evaluation must separately cover unaided tracing, assisted selection, creating an intended relation in the populated scene, moving labels/connections, undo/redo, save/reload, and preservation of authored metadata. Inherited navigation defects (#43) must be recorded separately from routing (#38).

Run and review

From the pinned worktree, with a fresh output path:

cargo test --locked -p oa-core --example diagram_readability_probe
cargo run --locked -p oa-core --example diagram_readability_probe -- generate .local/issue38-probe-run01
cargo run --locked -p oa-core --example diagram_readability_probe -- probe harness/experiments/diagram-readability-20260929/mixed-dispatch-original.json harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json 00000000-0000-0000-0000-0000000186a1 1982 375 1 .local/issue38-probe-query01.json

Record git rev-parse HEAD, local diff, executable hash, Rust version, commands, stdout/stderr, and output hashes. Verify provenance.json source/input SHA256s before making a pinned-router claim. The output's declared base is not executable identity. Tests check original-project conservation, full semantic inventories, sentinel and authored route preservation, deterministic snapshots, failed admission, the port corner, and analytical distinct-edge/label controls. Reuse current generated geometry for subsequent native work; do not relabel historical geometry as a new run.