Prepare complete-scene diagram readability fixtures and probe
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
# Preserve checksum-bound fixtures and provenance through Git round trips.
|
||||
*.json -text whitespace=cr-at-eol
|
||||
@@ -0,0 +1,105 @@
|
||||
# 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.
|
||||
@@ -0,0 +1,134 @@
|
||||
[
|
||||
{
|
||||
"id": "09eaa992-4cdf-5ea3-b748-f10fd74b8cba",
|
||||
"kind": "PortAllocation",
|
||||
"source": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
|
||||
"target": "d2113fb0-a531-54ef-9484-13951b00ab8f",
|
||||
"source_port": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
|
||||
"target_port": "d2113fb0-a531-54ef-9484-13951b00ab8f",
|
||||
"projected_source": "00000000-0038-4000-8000-000000000102",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000105",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "3cc9ab52-2b00-57fd-8709-aabc75e5d3e3",
|
||||
"kind": "Allocation",
|
||||
"source": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
|
||||
"target": "09342ccb-044b-5483-ac58-87dc3cf7831c",
|
||||
"source_port": null,
|
||||
"target_port": null,
|
||||
"projected_source": "00000000-0038-4000-8000-000000000104",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000106",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9",
|
||||
"kind": "PortAllocation",
|
||||
"source": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
|
||||
"target": "24a6850e-b819-57e0-af88-ca4ab76581b7",
|
||||
"source_port": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
|
||||
"target_port": "24a6850e-b819-57e0-af88-ca4ab76581b7",
|
||||
"projected_source": "00000000-0038-4000-8000-000000000104",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000103",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "568c5c01-de21-52a2-83bd-afdddc158085",
|
||||
"kind": "PortAllocation",
|
||||
"source": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
|
||||
"target": "391af7c4-b07d-53a7-8ddd-5c81461fc4f8",
|
||||
"source_port": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
|
||||
"target_port": "391af7c4-b07d-53a7-8ddd-5c81461fc4f8",
|
||||
"projected_source": "00000000-0038-4000-8000-000000000104",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000108",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "628cb4fc-fe63-5f6b-b364-6268f26b5740",
|
||||
"kind": "ChainInvolvement",
|
||||
"source": "022d3cfa-bbaf-5e13-924a-8e55099b8745",
|
||||
"target": "6a30b763-cc51-546d-907f-5c63657cfd03",
|
||||
"source_port": null,
|
||||
"target_port": null,
|
||||
"projected_source": "00000000-0038-4000-8000-000000000101",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000107",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "63009b5f-539e-5914-b630-ec6b7fefb4d5",
|
||||
"kind": "BoundaryExchange",
|
||||
"source": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
|
||||
"target": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
|
||||
"source_port": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
|
||||
"target_port": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
|
||||
"projected_source": "00000000-0038-4000-8000-000000000104",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000102",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "684eadc3-e670-5779-a60f-bbc9a5bfb062",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "9497e10f-04c4-5586-8738-2464a6f00bd4",
|
||||
"target": "d75eb3fa-a27d-52d5-8782-8b342b3865f6",
|
||||
"source_port": "994faed7-dbc8-5b96-9d62-7604ac0fbc3a",
|
||||
"target_port": "391af7c4-b07d-53a7-8ddd-5c81461fc4f8",
|
||||
"projected_source": "00000000-0038-4000-8000-000000000105",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000108",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "725f2e1b-aa2c-5615-9b1f-28da178168fa",
|
||||
"kind": "Allocation",
|
||||
"source": "c05b9422-b9da-5de5-b21d-07ad23bd2b8a",
|
||||
"target": "9497e10f-04c4-5586-8738-2464a6f00bd4",
|
||||
"source_port": null,
|
||||
"target_port": null,
|
||||
"projected_source": "00000000-0038-4000-8000-000000000102",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000105",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "93474111-f23e-56c1-b61b-b7c2396b91bd",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "dddae020-a444-5d48-acc8-139d2696a672",
|
||||
"target": "9497e10f-04c4-5586-8738-2464a6f00bd4",
|
||||
"source_port": "24a6850e-b819-57e0-af88-ca4ab76581b7",
|
||||
"target_port": "d2113fb0-a531-54ef-9484-13951b00ab8f",
|
||||
"projected_source": "00000000-0038-4000-8000-000000000103",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000105",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "9b9356d7-2db2-5a94-a47e-ea892cf02afe",
|
||||
"kind": "Allocation",
|
||||
"source": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
|
||||
"target": "dddae020-a444-5d48-acc8-139d2696a672",
|
||||
"source_port": null,
|
||||
"target_port": null,
|
||||
"projected_source": "00000000-0038-4000-8000-000000000104",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000103",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "b76bf8de-2fa4-563f-a540-dd30f30e6c49",
|
||||
"kind": "Allocation",
|
||||
"source": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
|
||||
"target": "d75eb3fa-a27d-52d5-8782-8b342b3865f6",
|
||||
"source_port": null,
|
||||
"target_port": null,
|
||||
"projected_source": "00000000-0038-4000-8000-000000000104",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000108",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "e53b7a40-e8a3-5b3f-826d-c2b5c164a84a",
|
||||
"kind": "PortAllocation",
|
||||
"source": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
|
||||
"target": "994faed7-dbc8-5b96-9d62-7604ac0fbc3a",
|
||||
"source_port": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
|
||||
"target_port": "994faed7-dbc8-5b96-9d62-7604ac0fbc3a",
|
||||
"projected_source": "00000000-0038-4000-8000-000000000102",
|
||||
"projected_target": "00000000-0038-4000-8000-000000000105",
|
||||
"trace": false
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"id": "00000000-0038-4000-8000-000000000001",
|
||||
"alias": "issue38_representative_mixed",
|
||||
"name": "Issue 38 representative eight-card mixed view",
|
||||
"description": "Research approximation of screenshot positions; not recovered user source. Traceability inferred from OA Process with SA Functions. No authored routes inferred.",
|
||||
"layer": "Sa",
|
||||
"projection": "Traceability",
|
||||
"nodes": {
|
||||
"00000000-0038-4000-8000-000000000101": {
|
||||
"id": "00000000-0038-4000-8000-000000000101",
|
||||
"alias": "issue38_oa_assessment_procedure",
|
||||
"element": "022d3cfa-bbaf-5e13-924a-8e55099b8745",
|
||||
"position": {
|
||||
"x": 314,
|
||||
"y": 40
|
||||
},
|
||||
"size": {
|
||||
"width": 243,
|
||||
"height": 101
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"00000000-0038-4000-8000-000000000102": {
|
||||
"id": "00000000-0038-4000-8000-000000000102",
|
||||
"alias": "issue38_sa_technician",
|
||||
"element": "c05b9422-b9da-5de5-b21d-07ad23bd2b8a",
|
||||
"position": {
|
||||
"x": 1180,
|
||||
"y": 18
|
||||
},
|
||||
"size": {
|
||||
"width": 265,
|
||||
"height": 143
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"00000000-0038-4000-8000-000000000103": {
|
||||
"id": "00000000-0038-4000-8000-000000000103",
|
||||
"alias": "issue38_sa_assess",
|
||||
"element": "dddae020-a444-5d48-acc8-139d2696a672",
|
||||
"position": {
|
||||
"x": 54,
|
||||
"y": 245
|
||||
},
|
||||
"size": {
|
||||
"width": 265,
|
||||
"height": 143
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"00000000-0038-4000-8000-000000000104": {
|
||||
"id": "00000000-0038-4000-8000-000000000104",
|
||||
"alias": "issue38_sa_control",
|
||||
"element": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
|
||||
"position": {
|
||||
"x": 736,
|
||||
"y": 245
|
||||
},
|
||||
"size": {
|
||||
"width": 265,
|
||||
"height": 143
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"00000000-0038-4000-8000-000000000105": {
|
||||
"id": "00000000-0038-4000-8000-000000000105",
|
||||
"alias": "issue38_sa_repair",
|
||||
"element": "9497e10f-04c4-5586-8738-2464a6f00bd4",
|
||||
"position": {
|
||||
"x": 1083,
|
||||
"y": 343
|
||||
},
|
||||
"size": {
|
||||
"width": 266,
|
||||
"height": 143
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"00000000-0038-4000-8000-000000000106": {
|
||||
"id": "00000000-0038-4000-8000-000000000106",
|
||||
"alias": "issue38_sa_reset",
|
||||
"element": "09342ccb-044b-5483-ac58-87dc3cf7831c",
|
||||
"position": {
|
||||
"x": 227,
|
||||
"y": 516
|
||||
},
|
||||
"size": {
|
||||
"width": 266,
|
||||
"height": 119
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"00000000-0038-4000-8000-000000000107": {
|
||||
"id": "00000000-0038-4000-8000-000000000107",
|
||||
"alias": "issue38_oa_triage",
|
||||
"element": "6a30b763-cc51-546d-907f-5c63657cfd03",
|
||||
"position": {
|
||||
"x": 1317,
|
||||
"y": 581
|
||||
},
|
||||
"size": {
|
||||
"width": 243,
|
||||
"height": 103
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"00000000-0038-4000-8000-000000000108": {
|
||||
"id": "00000000-0038-4000-8000-000000000108",
|
||||
"alias": "issue38_sa_confirm",
|
||||
"element": "d75eb3fa-a27d-52d5-8782-8b342b3865f6",
|
||||
"position": {
|
||||
"x": 227,
|
||||
"y": 689
|
||||
},
|
||||
"size": {
|
||||
"width": 266,
|
||||
"height": 143
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": [],
|
||||
"view_options": {
|
||||
"work_contexts": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"hidden_edges": [],
|
||||
"exchange_labels": "Name",
|
||||
"work_categories": "All",
|
||||
"relation_kinds": "All"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
[
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb0",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018704",
|
||||
"target": "00000000-0000-0000-0000-000000018708",
|
||||
"source_port": "edb626b5-7d99-5015-9faf-71a06232d86e",
|
||||
"target_port": "ebfcf690-4ac5-5976-864c-337d844b6cd6",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018705",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018709",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb1",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018706",
|
||||
"target": "00000000-0000-0000-0000-000000018708",
|
||||
"source_port": "d9647cdb-2fcd-5b3f-94b4-ed2a3b8ebf66",
|
||||
"target_port": "ebfcf690-4ac5-5976-864c-337d844b6cd6",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018707",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018709",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb2",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018708",
|
||||
"target": "00000000-0000-0000-0000-00000001870a",
|
||||
"source_port": "9244d718-d53a-54cb-a920-5b5312576da6",
|
||||
"target_port": "14c74a31-2041-59ac-877a-bc8aa0548896",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018709",
|
||||
"projected_target": "00000000-0000-0000-0000-00000001870b",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb3",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018708",
|
||||
"target": "00000000-0000-0000-0000-00000001870c",
|
||||
"source_port": "9244d718-d53a-54cb-a920-5b5312576da6",
|
||||
"target_port": "fe1b5efc-983a-593c-a02f-affd40ff5a2f",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018709",
|
||||
"projected_target": "00000000-0000-0000-0000-00000001870d",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb4",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-00000001870a",
|
||||
"target": "00000000-0000-0000-0000-00000001870e",
|
||||
"source_port": "b4b5d6dc-a2b2-59b0-8898-32dc2e7aa906",
|
||||
"target_port": "d865e245-0fe6-5c21-a872-d57863a1f857",
|
||||
"projected_source": "00000000-0000-0000-0000-00000001870b",
|
||||
"projected_target": "00000000-0000-0000-0000-00000001870f",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb5",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-00000001870c",
|
||||
"target": "00000000-0000-0000-0000-00000001870e",
|
||||
"source_port": "f9d7dbf7-a221-5e51-a58f-530d4ca176e7",
|
||||
"target_port": "51641731-5387-5d58-9bcb-2074acdbe23d",
|
||||
"projected_source": "00000000-0000-0000-0000-00000001870d",
|
||||
"projected_target": "00000000-0000-0000-0000-00000001870f",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb6",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-00000001870e",
|
||||
"target": "00000000-0000-0000-0000-000000018710",
|
||||
"source_port": "224d8f5f-2a81-5315-b7b6-24fe0cd9e95d",
|
||||
"target_port": "406e76e5-affd-59a2-bf1b-c3b3b22d3dd2",
|
||||
"projected_source": "00000000-0000-0000-0000-00000001870f",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018711",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb7",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018710",
|
||||
"target": "00000000-0000-0000-0000-000000018712",
|
||||
"source_port": "8661fe68-51aa-5c8c-827f-e7abea0f6b66",
|
||||
"target_port": "1c6a0a70-81b3-5c39-a2fd-c3d5b9a112c0",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018711",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018713",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb8",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018712",
|
||||
"target": "00000000-0000-0000-0000-000000018714",
|
||||
"source_port": "169224b3-b692-540d-ac73-1435e2a87b04",
|
||||
"target_port": "b1949371-949b-5cb5-acab-485dc4de2e80",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018713",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018715",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adb9",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018712",
|
||||
"target": "00000000-0000-0000-0000-000000018716",
|
||||
"source_port": "169224b3-b692-540d-ac73-1435e2a87b04",
|
||||
"target_port": "01abf25b-82c2-51bc-adbc-73cf6f411b2d",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018713",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018717",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adba",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018716",
|
||||
"target": "00000000-0000-0000-0000-000000018714",
|
||||
"source_port": "bbee14f0-a8d5-5a0d-90e3-01f2d4c5e088",
|
||||
"target_port": "e9dc0338-4237-5cc0-9e7f-7031b51c4772",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018717",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018715",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adbb",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-00000001870c",
|
||||
"target": "00000000-0000-0000-0000-000000018714",
|
||||
"source_port": "7d27cb1e-8dc7-5ebe-9407-a1d05e547562",
|
||||
"target_port": "193bd9b2-e1dd-5764-8f41-777884d3a5ea",
|
||||
"projected_source": "00000000-0000-0000-0000-00000001870d",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018715",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adbc",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018706",
|
||||
"target": "00000000-0000-0000-0000-00000001870c",
|
||||
"source_port": "2fcb392a-80e8-5be4-990c-79de2be0a19b",
|
||||
"target_port": "fdf21c35-cd98-5e9a-9a35-faa453f137ca",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018707",
|
||||
"projected_target": "00000000-0000-0000-0000-00000001870d",
|
||||
"trace": false
|
||||
},
|
||||
{
|
||||
"id": "00000000-0000-0000-0000-00000001adbd",
|
||||
"kind": "FunctionalExchange",
|
||||
"source": "00000000-0000-0000-0000-000000018710",
|
||||
"target": "00000000-0000-0000-0000-000000018704",
|
||||
"source_port": "6f72f5b2-e6c2-5700-a7d5-f945d076fcb8",
|
||||
"target_port": "e3f59e03-53c7-5d99-97f0-f52542e939c7",
|
||||
"projected_source": "00000000-0000-0000-0000-000000018711",
|
||||
"projected_target": "00000000-0000-0000-0000-000000018705",
|
||||
"trace": false
|
||||
}
|
||||
]
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
[
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-000000018704",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-000000018706",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-000000018708",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001870a",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001870c",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001870e",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-000000018710",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-000000018712",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-000000018714",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-000000018716",
|
||||
"code": "work_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb0",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb1",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb2",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb3",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb4",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb5",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb6",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb7",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb8",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adb9",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adba",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adbb",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adbc",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
},
|
||||
{
|
||||
"message": "Use this exchange in a process/chain or scenario.",
|
||||
"severity": "Warning",
|
||||
"element": "00000000-0000-0000-0000-00000001adbd",
|
||||
"code": "exchange_without_behavior_context",
|
||||
"field": null
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"declared_base": "715036e132677dd2bc2fb37ed316d93dc9987aec",
|
||||
"status": "Source preparation only; no compiled or runtime evidence",
|
||||
"files": [
|
||||
{
|
||||
"path": "crates/oa-core/src/model.rs",
|
||||
"bytes": 68387,
|
||||
"sha256": "05a6bd5eef14c77e7cafd2bc72eb3bb6b19f33c6d06184b4e7d21173a2684078"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-core/src/persistence.rs",
|
||||
"bytes": 31774,
|
||||
"sha256": "1c01474f906a63e552c0d590b272c95821c00a100b3e79e58e67dbbeac341a14"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-core/src/projection.rs",
|
||||
"bytes": 21687,
|
||||
"sha256": "3521bf3041502f3a3a970d7799894a5ae16c1e8da754deeea5290ac1f8ba11e8"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-core/src/routing.rs",
|
||||
"bytes": 53958,
|
||||
"sha256": "b377fe80cece3892d64f62ba5e1578d8974eeefc2a317620f343a86f2f257fbd"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-core/src/routing/attachments.rs",
|
||||
"bytes": 5918,
|
||||
"sha256": "cfb4200cdb99e4d86eb6e5ac1b123e4075fb7d4c788860d154365ad8ece139d7"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-core/src/projection/port_layout.rs",
|
||||
"bytes": 13474,
|
||||
"sha256": "a08d17d10a58bb8b206dd001b19b91d5aa3a9f743b298a4da57d503223c20079"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-core/src/validation.rs",
|
||||
"bytes": 113436,
|
||||
"sha256": "f440bfe0f6493e5155eb377eaa766f903abea6006c02325a4b1f09a0b349b8f8"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-core/src/validation/coverage.rs",
|
||||
"bytes": 6478,
|
||||
"sha256": "b08e4b344ecad055714168c83beff7fe29ba4edc53edbffa2eae04e5580a4d5f"
|
||||
},
|
||||
{
|
||||
"path": "crates/oa-desktop/src/diagram.rs",
|
||||
"bytes": 124738,
|
||||
"sha256": "3170397b82236d6db2a57a1bb860c3c44fd8ec16172701e6784d4bf1314d140f"
|
||||
},
|
||||
{
|
||||
"path": "examples/release1/model.json",
|
||||
"bytes": 134520,
|
||||
"sha256": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727"
|
||||
},
|
||||
{
|
||||
"path": "harness/experiments/diagram-readability-20260929/mixed-dispatch-original.json",
|
||||
"bytes": 32787,
|
||||
"sha256": "81d25af021cbad18af4262a220ba60372e51ca19083b7e80f2b19196baf05990"
|
||||
},
|
||||
{
|
||||
"path": "harness/experiments/diagram-readability-20260929/eight-card-view.json",
|
||||
"bytes": 3641,
|
||||
"sha256": "f851e7e96fc6f5b1edb328b94eb991aa8e94b14cc1bcd07b2c42d32310c4527b"
|
||||
},
|
||||
{
|
||||
"path": "harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json",
|
||||
"bytes": 6187,
|
||||
"sha256": "240033ff6b0664580234e5211521a533d9227c8e250e8afaf3c85e95c485cec1"
|
||||
},
|
||||
{
|
||||
"path": "harness/experiments/diagram-readability-20260929/mixed-answer-key.json",
|
||||
"bytes": 6683,
|
||||
"sha256": "1696f06e8a4099c2863ad6a5c444ca41ade0848a183b7cd8311400553a0c3d5f"
|
||||
},
|
||||
{
|
||||
"path": "harness/experiments/diagram-readability-20260929/eight-answer-key.json",
|
||||
"bytes": 5337,
|
||||
"sha256": "8968fcc625e8584168ebb6b82f622307bdeb3db4c9c4fdbbc9fbdde3683a6efb"
|
||||
}
|
||||
],
|
||||
"historical_archive_url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/raw/commit/4fcb65c0d3ec7aabf2315bb3f08b64a7cdd2af99/harness/experiments/boundary-order-20260925/evidence/boundary-order-3e21c1bc.zip",
|
||||
"historical_archive_sha256": "bb6b896ff2401290869a904f7768ebb52b6f0ab36fada06badbe9abb301c37b8",
|
||||
"historical_producer": "3e21c1bca245944ae0ec7bb02aaa920f45f2cc30",
|
||||
"historical_geometry": "before only; candidate planner is paused and not used",
|
||||
"probe_source": {
|
||||
"path": "crates/oa-core/examples/diagram_readability_probe.rs",
|
||||
"sha256": "41e2d5b3f170138b87bf30c9b40971c221a62864558294db2be4e61b7b139989"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Independent preparatory review
|
||||
|
||||
Read-only review of the new Rust probe, fixed inputs/answer keys, experiment
|
||||
contract and production projection/picking code. No compiler, probe or GUI was
|
||||
run by the reviewer. No remaining source blocker was identified before execution.
|
||||
|
||||
The author addressed these consequential findings:
|
||||
|
||||
- Port-owner mapping adds five valid relationships to the representative view:
|
||||
its complete inventory is twelve, rather than seven. Kind, semantic endpoints,
|
||||
ports, projected endpoints and trace identity are checked independently.
|
||||
- Port occlusion follows the actual square half-width `max(10/zoom, 10)` world
|
||||
units, with a corner control; association-end label rectangles also precede
|
||||
ordinary line picking and are included.
|
||||
- Query candidates count semantic edges separately from their matching segments.
|
||||
Empty ordinary labels do not occlude a point merely because bounds remain.
|
||||
- Historical reproduction requires both declared real identities, zero distance,
|
||||
no occluder and the recorded common span. Declared source provenance requires
|
||||
actual build/fixture verification before a current-router claim.
|
||||
|
||||
Admission, warning baselines and current routing remain execution gates.
|
||||
Two flat scenes cannot establish nested/folded behavior; Traceability removes
|
||||
visual parents. Geometric samples do not establish native selection, readability
|
||||
or global inaccessibility. Read-only Project equality does not verify edit
|
||||
transactions, Undo/Redo or save/reopen. Drawing a new relation requires a separate
|
||||
declared post-change answer key and Project delta.
|
||||
|
||||
The next workflow should trace, deliberately select, repair one label or bend,
|
||||
then undo in the complete scene, with unique labels/unshared spans as controls.
|
||||
Creating a valid relation, refusal and cancellation are separate tasks. A chooser
|
||||
that prints correct endpoints cannot substitute for unaided diagram readability.
|
||||
Reference in New Issue
Block a user