216 lines
13 KiB
Markdown
216 lines
13 KiB
Markdown
# Two-axis Focus optical result — 2026-10-01 PDT
|
||
|
||
This is a bounded experiment for [issue 38](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/38),
|
||
tested at source **38789512626cb24f78f274998977fc8c6cf960d1** on
|
||
`codex/focus-workspace-experiment-01a0d717-20261001`. The
|
||
[predeclared plan](experiments/focus-optical-20261001/plan.md) defines the question,
|
||
fixed inputs, alternatives and acceptance limits. [PROJECT_GOAL.md](../PROJECT_GOAL.md)
|
||
remains authoritative. This result does not complete dense-diagram usability,
|
||
accept an editable Focus workspace, or alter a published release.
|
||
|
||
## Result and decision
|
||
|
||
Recovering both canvas axes gives a substantial full-scene magnification gain on
|
||
the mixed and nested examples. The ordinary small view correctly remains at the
|
||
existing 150% Fit clamp at full window size. Retain Focus as a useful workspace
|
||
hypothesis; **do not promote it as a sufficient readability remedy**. Parent
|
||
inspection still sees foreign-line label crossings and shared allocation runs.
|
||
No new unassisted reading was obtained: a fresh-reader spawn failed with `agent
|
||
thread limit reached`, and existing readers know the semantic answer key.
|
||
Assisted inspection and magnification do not substitute for that gate.
|
||
|
||
All entries below use logical client **1440 × 900**, observed Iced window scale
|
||
**1.0**, the same pinned executable/runtime and the complete admitted Project.
|
||
Native screenshots include decorations and are 1442 × 932; those dimensions are
|
||
not the client size. Zoom values are rounded here; raw measurements retain their
|
||
full f32 values.
|
||
|
||
| Complete saved view | Nodes / ports / edges | Baseline canvas / Fit | Focus canvas / Fit | Magnification ratio |
|
||
| --- | --- | --- | --- | --- |
|
||
| Mixed eight-card traceability | 8 / 6 / 12 | 824 × 535 / 0.5152723 | 1440 × 824 / 0.9243028 | 1.7938144 |
|
||
| Nested OA allocation | 12 / 0 / 7 | 824 × 540.6 / 0.72186 | 1440 × 824 / 1.20872 | 1.6744548 |
|
||
| Nested SA allocation | 12 / 20 / 12 | 824 × 540.6 / 0.66568 | 1440 × 824 / 1.04865 | 1.5753145 |
|
||
| Small OA functional dataflow | 3 / 0 / 1 | 824 × 574.6 / 1.5 | 1440 × 824 / 1.5 | 1.0 |
|
||
|
||
Each case starts Baseline → Focus → Baseline at the same window/DPI. Returned
|
||
Baseline viewport, camera, header height, client and scale match exactly. Actual
|
||
width and height resizes then produce client **1100 × 700** and newer measurement
|
||
generations. In the mixed view, Baseline becomes 484 × 335 at 0.2895086 and Focus
|
||
1100 × 624 at 0.6985392; its resized Baseline return also matches. Resized OA/SA
|
||
and small cases retain their complete content. All 22 measurement captures pass
|
||
whole-value/byte conservation and independently recomputed Fit checks.
|
||
|
||
The original eight-card source is unchanged: 138661 bytes, SHA-256
|
||
`9db1015369f450d5810c96a01fddb8a009d57f6aafbda5182703f15ded23d9c8`.
|
||
It contains one preexisting `work_without_behavior_context` warning; the exact
|
||
independently retained baseline agrees. The unrelated routing-workshop and
|
||
coastal-rescue sources are schema3 and are admitted through the identified
|
||
production decoder into schema7. Their complete migration reports and 29 / 5
|
||
warnings are inventoried, with no admission errors. OA and SA runs of the same
|
||
legacy file yield equal complete admitted Projects and diagnostics. The Python
|
||
checker does not independently regenerate those migrations or establish a
|
||
predeclared legacy-warning baseline.
|
||
|
||
## Architecture and mechanical verification
|
||
|
||
The opted-in runner freezes a validated Project and uses `App::with_project`
|
||
only to present Baseline chrome. It admits Architecture diagrams only, synchronizes
|
||
layer/Explorer/create-kind state, and verifies complete Document admission. A
|
||
pre-dispatch inert wrapper excludes child input, focus operations, overlays and
|
||
clipboard access. The canvas adapter calls the production `DiagramCanvas::draw`
|
||
with fresh optical state and an unavailable cursor; it cannot dispatch the
|
||
production App reducer or subscription. No route, core, model, schema, label,
|
||
port or endpoint-marker implementation is changed.
|
||
|
||
Private generation-stamped layout owns viewport and Fit. Header/client/scale
|
||
measurement and a later matching draw acknowledgment gate capture; every actual
|
||
resize invalidates readiness. The acknowledgment proves CPU draw invocation,
|
||
**not GPU completion**. Visible native captures supply separate display evidence.
|
||
Terminal faults refuse queued captures; Close always attempts a truthful,
|
||
create-new PASS/FAIL receipt and exits rather than trapping the window.
|
||
|
||
Baseline uses the real body, navigation, docks, palette, tool rows and footer.
|
||
Its header replaces only the action area, using the shared production header.
|
||
Measured Baseline header height is 67.39999389648438; Focus uses a 48-unit header
|
||
and 28-unit status row. Ordinary opt-out launch shows Home and the original
|
||
New/Hosted models/Open/Save as/Save all controls. A native Open of the exact copied
|
||
eight-card input, OA → SA navigation and selection of the saved mixed diagram
|
||
work normally. At 1440 × 900 and at width1100, header and canvas boundaries align
|
||
visually with optical Baseline; this is visual comparison, not an instrumented
|
||
normal-header measurement or pixel-equality claim.
|
||
|
||
Windows verification uses Rust1.98.1, `x86_64-pc-windows-gnullvm`, LLVM-MinGW
|
||
20260826 UCRT, jobs1 and incremental compilation disabled. Tests and executable
|
||
are dev/unoptimized with debug assertions. The serialized gate records 533
|
||
unchanged source-input hashes:
|
||
|
||
```powershell
|
||
cargo fmt --all -- --check
|
||
cargo test --locked -p oa-desktop -- focus_optical diagram:: --test-threads=1
|
||
cargo clippy --locked -p oa-desktop --all-targets -- -D warnings
|
||
cargo build --locked -p oa-desktop --bin arcadia-studio
|
||
```
|
||
|
||
All pass: **92 tests, zero failed/ignored, 1466 filtered**. These include nine
|
||
optical tests for actual spy-widget input/focus/overlay exclusion, draw-only
|
||
behavior, exact Fit, stale/repeated sizing, invalid admission, schema3/SA
|
||
coherence, opt-in dispatch and terminal-fault/Close recovery. This is not a new
|
||
full-suite or workspace gate. Initial formatting failed; its 79955-byte stdout
|
||
and exit1 are retained, followed by successful formatting and the final check.
|
||
|
||
Pinned executable: 121832448 bytes, SHA-256
|
||
`1be6034951f664b493c5cf7ab806618e216dc840f30ea849dc2354893ab195e4`.
|
||
Pinned `libunwind.dll`: 190976 bytes, SHA-256
|
||
`f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4`.
|
||
Five actual native processes exit normally with code0 and empty stdout/stderr:
|
||
mixed3356, OA9180, SA5324, small8268 and ordinary4568. All binary and optical
|
||
input hashes remain unchanged. Ordinary's separately copied input is checked
|
||
by the parent outside its fixture-null launcher receipt.
|
||
|
||
## Review, falsifiers and remaining limits
|
||
|
||
Independent proposal/source review preceded compilation. It found stale capture
|
||
after terminal fault and a Close path that could trap the window; both were
|
||
fixed before the tested build. The original source review pins its preformat
|
||
handoff and does not retrospectively claim compilation/native coverage.
|
||
|
||
Independent evaluator review showed that the first checker accepted wrong case
|
||
attribution, a wrong diagram, stale generation and zero scale. It also accepted a
|
||
synthetic four-case corpus made by copying the mixed case. Those artificial data
|
||
are confined to the inventoried review corpus. The authorized repair recomputes
|
||
fixed binary/input hashes, checks launcher/admission/capture identity and raw
|
||
logs, requires finite positive measurements and neutral state, and verifies
|
||
generation transitions. The original checker and failed probes are preserved.
|
||
|
||
Parent reviewed the repair and executed it once against all four actual cases:
|
||
exit0, stderr0; final report SHA-256
|
||
`0ba442b4eff4138821baa1a2687d8af2f38aa8c3a5016a8abc4985722926a402`.
|
||
Checker SHA-256 is
|
||
`8b88f148e6a4137375d9784494a15c894c45bb8f3c2379ea2bc954e68c61421f`.
|
||
It compares complete Project/scene/SVG bytes over time and rounds each independent
|
||
Fit arithmetic intermediate to f32 using recorded bounds and viewport. It does
|
||
not independently regenerate projection/routing, validate semantic correspondence
|
||
to SVG, measure glyph ink, prove screenshot freshness or supply first-reading
|
||
acceptance. A coordinated root-and-all-capture scene mutation remains accepted
|
||
and explicitly demonstrates that scope limit. Fabricated non-null migration
|
||
metadata and erased legacy warnings likewise expose the declared migration/
|
||
legacy-baseline limits rather than a passed semantic evaluator.
|
||
|
||
A different reviewer independently checked the repaired evaluator and all four
|
||
actual cases, verified the 533 gate source hashes and raw log sizes, and rejected
|
||
twelve further isolated mutations. No blocker was found within temporal
|
||
conservation and recorded-bounds f32 Fit scope. That reviewer authored the Rust
|
||
runner, so this is an independent review of the checker/evidence, not a fresh
|
||
review of their own runner. They also compared the complete actual OA/SA migration
|
||
objects (equal, from3/to7, one generated interface allocation,37 semantic
|
||
defaults) and inventoried the small report (20 defaults); no required resolutions
|
||
or unresolved message values occur. Their original report, probe and full
|
||
reviewed-file inventory are preserved alongside the prior source/evaluator reviews.
|
||
|
||
Native failure probes remain visible in the evidence. An initial body-border
|
||
drag did not resize. A later attempt to grow the window beyond screenshot bounds
|
||
was rejected by Computer Use before input; no post-resize restoration to the
|
||
original window size is claimed. The initial same-size return remains exact.
|
||
Indexed Open-dialog actions did not activate Open; a refreshed coordinate click
|
||
did, followed by settled native verification. Ordinary screenshots named
|
||
`01-normal-loaded-model` and `02-normal-load-settled` still show the dialog;
|
||
`03-normal-load-visible` is the actual completed load. The ordinary height drag
|
||
also left the screenshot at 1102 × 932: filenames `07-normal-small-exact-eight`
|
||
and `08-normal-resize-settled` do **not** establish a 1100 × 700 ordinary run.
|
||
No literal text was injected into inert Inspector controls without verified
|
||
focus. Canvas drag and Delete attempts had no effect; capture004 preserved the
|
||
complete mixed model/scene/SVG afterward.
|
||
|
||
Named DataAssociation ends, broad projection coverage, other fonts/DPI,
|
||
accessibility, manual camera, editable lifecycle, save/history, held gestures and
|
||
pending navigation remain outside this experiment. Linux/WSL is user-deferred.
|
||
Peer #43 and other owned/paused work are untouched. A later editable promotion
|
||
requires the lifecycle gates in the plan; a notation follow-up must distinguish
|
||
relationship category from individual identity on shared paths.
|
||
|
||
The [independent next-candidate critique](experiments/focus-optical-20261001/next-category-critique.md)
|
||
reconfirms those witnesses in the frozen current scene. The proposed two dash
|
||
patterns are identical for their first19 units; the specified Allocation pattern
|
||
still paints18.5 of the24 units through the conversation-label bounds, including
|
||
its center. Identical kind/phase cannot encode member identity on a shared prefix.
|
||
These are deductive limits under the proposed phase/centerline policy, not a
|
||
native dash-rendering trial or proof that whole-scene tracing is impossible.
|
||
The critique pins primary Capella notation precedent and compares interaction,
|
||
labels, lanes and bundles; no numeric dash vocabulary or next renderer is adopted.
|
||
|
||
## Reproduction and evidence
|
||
|
||
Build the identified source with the environment above; general platform setup
|
||
is in [README](../README.md) and [Windows packaging](../docs/windows-packaging.md).
|
||
No private executable or package is published for this experiment. The existing
|
||
[save-diagnostics release](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.save-diagnostics.20261001)
|
||
remains the latest delivered production scope.
|
||
|
||
Launch the experimental binary with an unchanged JSON, its saved Architecture
|
||
diagram UUID and a **fresh** evidence destination, for example:
|
||
|
||
```powershell
|
||
& '<binary-directory>\arcadia-studio.exe' --focus-optical `
|
||
'<checkout>\harness\experiments\focus-optical-20261001\eight-card.json' `
|
||
'00000000-0038-4000-8000-000000000001' '<fresh-output-directory>'
|
||
```
|
||
|
||
Wait for readiness, capture Baseline, switch/capture Focus, return/capture
|
||
Baseline, exercise actual resizing and close normally. The remaining UUIDs and
|
||
exact fixture hashes are in the plan. Launch without the flag to exercise the
|
||
normal application. Matching DLL/toolchain provenance is required for the
|
||
recorded Windows environment.
|
||
|
||
The raw packet preserves watcher/runner receipts, complete inputs/models/scenes/
|
||
SVGs, screenshots, logs, failed probes, gates, helpers and original review
|
||
challenges. Host-specific QA helpers deliberately pin this source/build and
|
||
create new outputs; on another host adapt paths only, preserve hashes and
|
||
identities, and retain those adaptations separately. They must not point at
|
||
synthetic challenge data as though it were native output. The packet inventory
|
||
and [independent final checker review](experiments/focus-optical-20261001/evidence/reviews/final-review.md)
|
||
are linked from the [experiment entrypoint](experiments/focus-optical-20261001/README.md).
|
||
The [final index](experiments/focus-optical-20261001/evidence/index-final.json)
|
||
covers 29 files / 17465556 stored bytes and 1805 archived members. Parent's
|
||
portable content verifier passes with all 1823 retained originals compared;
|
||
this is byte-integrity evidence, separate from the experiment's acceptance.
|