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

Full-scene reading and local editing experiment

This is evidence for issue 38, not a production readability fix or full diagram acceptance. The complete eight-card mixed view is a documented reconstruction, not the user's recovered view. Its original semantic inventory and probe source are in the September 29 experiment.

Native desktop source is 6e7c4ddaf0775198384a8c4882809ea8e14b2976, executable SHA256 d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e. Its unchanged routing/core source is the released 715036e foundation. Geometry queries use probe source f754ad85d3674a709d10054e6fe23079f977c547, executable SHA256 d94f86b2f4af594b27960cfa169fd681adb9b3a5eae2928dd72c541bc2db1c57. Launch receipts record the exact runtime, system-only child PATH and copied inputs.

Observations and conservation

Initial reading records endpoint/path uncertainty. Opening simpler OA/SA views incidentally exposed answers, so it is not pristine blind accuracy evidence. Assisted inspection identifies all three named relations and both distinct port mappings through the actual UI. The conversation label caused a wrong first stroke selection of an ordinary Allocation. Shared-stroke clicks retain the already selected mapping; with no selection they choose one stable mapping. There is no visible chooser or cycling. Both mappings remain reachable through Connections and learned segments; this is ambiguous discovery, not global inaccessibility.

Manual editing predeclares a conversation-label move, then exercises label Undo/Redo and bend add/move/remove with exact restoration. The first native chooser attempt displayed the requested filename but exported to project.json; it is preserved as a discrepancy. A second attempt using actual focused typing and Return exports the requested manual-label.json with identical bytes. This supports the input-method explanation without proving the first failure's exact cause. JSON export deliberately retains source save state.

Independent full-model and geometry review confirms the sole stored delta: one label-only route record for sa_contact, with empty waypoints and no attachment overrides. All semantic records, ports, six diagrams' other data, 35 placements and original routes remain identical. All 12 computed paths and 11 other computed labels are also identical. The displacement is consistent with the recorded mouse gesture and rounded Fit 52%; exact zoom was not independently captured. The review explicitly corrects a transcribed UUID while retaining the original declared record and named intent.

Fresh native reopen verifies the label's persistence and selection in the complete saved view. Both desktop processes exit 0 with empty logs; pristine input and both exported JSON files retain their pinned bytes. Eight cards are visibly present, while exact relation conservation comes from the model/geometry oracle, not counting coincident strokes visually. Menu Escape cancellation was exercised; mid-drag cancellation remains unverified because the available native tool exposes atomic completed drags.

Next experiment and rejection criteria

Candidate comparison evaluates ownership-aware automatic placement, selective unselected association cues and selection-only cues. The fresh critic finds that the current candidate set has no collision-free placement in this witness, based on an explicitly unexecuted double-precision reconstruction. Confirm that finding in Rust before rejecting the bounded automatic-placement approach. Manual repair intersects both own and foreign strokes and is not a fresh reading success or a validated distance metric. A short boundary-to-anchor cue remains an experiment with explicit noise, shared-anchor, export, cache and first-association rejection gates.

No production routing or rendering change is accepted here. Direct new-exchange drawing, full shared-corridor readability, broad accessibility/DPI and complete OA/SA acceptance remain outstanding. Authoritative scope and ownership are in Gitea, rather than an additional local live-task ledger.

Reproduce the bounded checks

The inventory pins the captured files before this README and attributes were authored. Scoped attributes preserve all native snapshot bytes. Copy native-reading into a fresh scratch directory before rerunning its Python oracles, which write reports; do not overwrite historical evidence. These helpers are verification glue, not application code. Run check-manual-geometry.py on the retained before/after geometry and inspect its precise assertions and limits.

With the identified probe source and Rust/toolchain environment, reproduce both geometry queries from the repository root, using fresh output filenames:

cargo run --locked -p oa-core --example diagram_readability_probe -- probe harness/experiments/diagram-readability-20261001/native-reading/working/eight-card.json examples/release1/expected-diagnostics.json 00000000-0038-4000-8000-000000000001 600 450 1 BEFORE.json
cargo run --locked -p oa-core --example diagram_readability_probe -- probe harness/experiments/diagram-readability-20261001/native-reading/working/manual-label.json examples/release1/expected-diagnostics.json 00000000-0038-4000-8000-000000000001 600 450 1 AFTER.json

The captured launchers contain original absolute paths; adapt them to a fresh copied working folder and the exact released binaries. Native reports give the actual pointer, keyboard, selection and chooser sequence. Tool/recording elapsed times are not measured human task times.