129 lines
9.1 KiB
Markdown
129 lines
9.1 KiB
Markdown
# Two-axis Focus optical experiment — predeclared plan
|
|
|
|
Status: experiment plan before implementation/native observation, 2026-10-01
|
|
PDT. Session 01a0d717/root owns this bounded part of [issue 38](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/38), claim comment1437. The isolated branch is
|
|
`codex/focus-workspace-experiment-01a0d717-20261001`, now based on published
|
|
save-diagnostics handoff `bc69c6d449641fc4395feae0d8373f62257c763c`.
|
|
[PROJECT_GOAL.md](../../../PROJECT_GOAL.md) is authoritative. This experiment
|
|
cannot close dense-diagram usability or accept an editable workspace.
|
|
|
|
## Question, alternatives and decision
|
|
|
|
Does recovering both width and height materially improve complete-scene reading
|
|
at the same native window/DPI while retaining every model/diagram record and the
|
|
current renderer? The prior restricted route generator, one-line association cue
|
|
and E/F multiline label experiments remain distinct negative evidence, published
|
|
on their own branches. Their code is excluded here.
|
|
|
|
A width-only trial is rejected for this question: checked historical routed
|
|
bounds1506x814 and viewport826x534 predict only about16% Fit gain after both docks
|
|
are hidden, because height then limits Fit. A hand-built blank-panel Baseline
|
|
is rejected as the primary comparator because wrapping real chrome affects
|
|
available height. Changing labels/routes, omitting relations, auto-layout or
|
|
selected highlighting cannot answer this question and is excluded.
|
|
|
|
Choose an explicitly opted-in private, read-only Iced runner in the existing
|
|
binary. Reuse DiagramCanvas::draw with fresh optical state; do not call its
|
|
interactive update or production App::update/subscription. Freeze a validated
|
|
Project and use App::with_project only as a presentation fixture for existing
|
|
Baseline chrome. Baseline retains the actual body, task navigation, tool rows,
|
|
docks, palette state and footer. Only the header action area may be replaced
|
|
with same-height experiment controls; measure/document this deviation. Focus
|
|
uses a compact visible header and status row with a full two-axis canvas.
|
|
The renderer, projected/routed scene, labels, ports, authored metadata and model
|
|
must remain identical. Normal launch keeps its existing application path.
|
|
|
|
Controls: Baseline/Focus, Fit and explicit measurement capture. No model editing,
|
|
hover assistance, selection, manual camera, save/history/navigation integration
|
|
is claimed. Inert chrome must exclude input before child dispatch, not merely
|
|
drop resulting messages. Camera and measured size are privately owned and stamped
|
|
per layout generation; reject stale, nonfinite, zero and repeated measurements.
|
|
Every actual resize invalidates readiness, including resizes within one variant.
|
|
A sensor receipt precedes the fitted draw: capture requires a later matching draw
|
|
acknowledgment for variant/generation/viewport/camera. This proves CPU drawing was
|
|
called, not GPU/display completion; the native screenshot verifies visible output.
|
|
An unmeasured layout is visibly pending rather than using a guessed viewport.
|
|
|
|
## Fixed fixtures and admission
|
|
|
|
Admit source bytes before launch and compare them again after normal exit.
|
|
Every case runs against the complete unmodified Project, not a label-drag saved
|
|
derivative. The optical runner rejects absent diagrams and all non-Architecture projections,
|
|
including Scenario/StateMachine; compare complete
|
|
Project after its Document construction, and preserve input bytes in the evidence.
|
|
Errors/warnings are inventoried rather than silently repaired. The mixed case is
|
|
source7; the two unchanged stock example files are source3. Use the existing
|
|
persistence decoder/migration report for their declared admission. Freeze the
|
|
complete decoded modern Project after admission, not the raw legacy JSON shape.
|
|
This admission transformation is recorded separately from presentation; original
|
|
source bytes remain untouched. Synchronize the chosen Architecture diagram/layer
|
|
and derived Explorer/create-kind/palette presentation instead of only overwriting
|
|
two App fields initialized for a different default diagram.
|
|
|
|
| Case | Exact JSON / SHA-256 | Saved Architecture diagram |
|
|
| --- | --- | --- |
|
|
| Complete mixed case | [eight-card.json](eight-card.json), 138661bytes; `9db1015369f450d5810c96a01fddb8a009d57f6aafbda5182703f15ded23d9c8` | `00000000-0038-4000-8000-000000000001`: eight visible cards,12 relations; actual projected ports/edge kinds recorded at admission |
|
|
| Unrelated nested OA | `examples/routing-workshop.json`, 100281bytes; `8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14` | `945a7c88-a352-5028-b808-73d852e5abe6`:12 authored placements; actual projected nested contents recorded |
|
|
| Unrelated nested SA | Same exact routing-workshop Project | `cb21862d-79e1-5a9d-bdf0-ee344c2fb219`:12 authored placements; actual projected nested contents recorded |
|
|
| Small ordinary view | `examples/coastal-rescue.json`, 49715bytes; `242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195` | `487c064d-df33-45f2-b4b7-6dd68d7b601f`: OA functional dataflow,3 authored placements |
|
|
|
|
These are existing examples plus the unchanged previously published representative
|
|
case, not the user's unknown original eight-card model. They contain no named
|
|
DataAssociation ends. Native end-label coverage is a recorded gap; it cannot be
|
|
inferred from these cases. Do not claim broad projection, font, DPI or accessibility
|
|
coverage. A later product decision must expand the fixture set appropriately.
|
|
|
|
## Evaluators and stopping rules
|
|
|
|
1. Before native work, test the Fit formula against production margins/clamp,
|
|
both limiting axes, offsets/empty scenes; stale/repeated sizing; and input
|
|
exclusion using a spy widget. Mouse/button/wheel, keyboard/modifiers, touch,
|
|
IME and window events other than allowed redraws cannot reach inert children.
|
|
Draw-only canvas cannot publish actions, select, mutate gesture state or show
|
|
interactive mouse feedback. No production reducer is reachable from the rig.
|
|
2. Native Windows comparison uses the same pinned binary/runtime, fixture, client
|
|
size and observed DPI. Begin at Baseline Fit, capture settled measurements,
|
|
Focus Fit and Baseline return. Record viewport, exact zoom/pan, routed bounds,
|
|
scene counts, projection, palette/selection state, screenshot and process logs.
|
|
Require complete full-scene containment at Fit, readable experiment controls,
|
|
normal exit and unchanged inputs. Resizing must reject old measurements and
|
|
update Fit without looping. Ordinary opt-out launch must still show its Home.
|
|
3. Exact whole Project, projected view, route point sequences/labels/end geometry
|
|
and complete production SVG must be equal across Baseline/Focus/return and
|
|
captures. Compare full values/bytes, not selected properties. Independently
|
|
check Fit arithmetic from recorded viewport/bounds. A provisional0.85 Fit
|
|
target on the complete mixed case is only an optical feasibility discriminator;
|
|
magnification gain is not readability acceptance.
|
|
4. A reader without semantic answer-key/earlier-image exposure receives only the
|
|
complete settled image and neutral questions: identify critical functional
|
|
exchange endpoints/direction, the conversation participants and whether it
|
|
has direction, ordinary versus port allocations, and port owners. Record exact
|
|
answers, confidence, competing plausible ownership, illegible names and time
|
|
before hover/selection/manual zoom. The key is withheld. Use Focus first for
|
|
this new reading, while earlier Baseline first-reading results retain their
|
|
original reader/build scope; this is not a randomized causal comparison.
|
|
If no fresh reader is available, report that gap and do not claim a fresh pass.
|
|
5. A wrong critical association or unresolved competing ownership rejects Focus
|
|
as a sufficient remedy even if scale improves. Larger text may remain a useful
|
|
workspace hypothesis. Follow-up should address semantic distinction/shared
|
|
stroke ownership rather than polish chrome or retune another label offset.
|
|
An exposed parent's reading is assisted inspection only. A single agent is
|
|
not a system-engineer study or general OA/SA acceptance.
|
|
6. Independent review covers source boundaries, invariants, evaluator adequacy,
|
|
actual measurements/conservation, discrepancies and limitations. Archive useful
|
|
results/failed probes with reproducible commands, exact source and raw evidence.
|
|
No production promotion, issue closure, packaged release or editable-workspace
|
|
claim follows from this experiment alone.
|
|
|
|
Editable promotion, if justified later, separately requires retained draft/caret/
|
|
widget/focus/input state, tools/held-gesture retirement, manual camera/Fit,
|
|
pending-navigation and stale release barriers, Undo/Redo/Save/reopen and direct
|
|
native review. Coordinate with peer-owned #43; no current ownership is reassigned.
|
|
Linux/WSL remains user-deferred.
|
|
|
|
Independent proposal review required these admission/header/draw-ack refinements
|
|
before native work. One fresh-reader spawn attempt failed with `agent thread limit
|
|
reached`; this is a perception-evaluator availability gap, not a readability pass.
|
|
Existing readers and parent know the answer key and cannot substitute for a fresh
|
|
reader. Independent source/evidence review remains available.
|