106 lines
6.9 KiB
Markdown
106 lines
6.9 KiB
Markdown
# 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:
|
|
|
|
```powershell
|
|
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.
|