7.6 KiB
Issue 38 bounded geometry experiment
Core source baseline 715036e132677dd2bc2fb37ed316d93dc9987aec. The parent compiled
the probe at 2aac3e83532166dc45cd3519cc5d89b3e84d57f3; its first test run passed
one test and failed four at admission because the expected warning baseline was
incomplete. The corrected baseline awaits rerun; geometry generation did not run.
No GUI selection or feature acceptance is claimed. The parent owns execution and
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 60: ten work_without_behavior_context,
fourteen exchange_without_behavior_context, one missing_system, and ten
unallocated_leaf, and 25 empty_port_contract diagnostics. The first 24-warning
baseline omitted the last three families. The correction review derives their
identities, fields, and messages independently from input records and validation
rules; it does not regenerate expectations 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
The first completed current-router run at f754ad85 passes all five tests and
both generation/query commands. Results and independent interpretation
link exact artifacts and retained warning-baseline failures. Native workflows
and any production improvement remain unverified.
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.