Files
ARCADIA-Studio/harness/scenario-measured-navigation-review-20260913.md
T

10 KiB
Raw Blame History

Measured Scenario navigation: bounded decision critique

Source-only review of c4a2cf63f1, 2026-09-13. Recommendation: run a bounded experiment with explicit readable navigation zoom for label-dependent object usages. This is not an adopted zoom, font policy, implementation or execution result. Whole-diagram navigation should retain Fit in the proposed experiment. The parent owns synthesis after spacing acceptance.

The prior published measured-label integration boundary remains historical evidence. This note does not modify its archive or adopt the unwired measurement/corridor helpers. Review criteria are truthful operation-field membership matching actual paint, responsive multi-view lookup on large models, explicit Saved identity and camera expectations, and simple maintainable lifetimes.

The font-lifetime source investigation records the startup and cache prerequisites for this experiment. It is source-only evidence; no measured-label implementation or runtime font policy is adopted.

Comparison and falsifiers

Candidate Advantage Concrete failure probe
1. Measure inactive destinations at an explicit readable navigation zoom and enter at precisely that zoom. Supplies a reproducible measurement context without mounting each destination; fits the existing asynchronous lookup and pre-navigation validation. Query at that zoom, then let the existing viewport-dependent reveal recompute a different zoom: truncation can change and a listed operation field can disappear. Font/session changes can invalidate membership without a model revision.
2. Collect structural candidates, then measure/revalidate against destination display context before presenting or activating them. Could retain adaptive framing if the destination context were known. There is no stored live display context for every inactive view. Measuring after activation changes the route before proving the chosen operation usage exists; measuring before listing requires prospective layout/context for every relevant view. Structural candidates shown as confirmed usages are false positives, and an unmeasured candidate set cannot justify an exhaustive “no usages” result.

Candidate 2 is not inherently incorrect: it becomes coherent with explicitly provisional candidates and delayed activation, or a fully defined prospective display context. Those states add complexity and are not presently justified by evidence that users require the current adaptive object-reveal zoom. Measuring only the selected candidate is faster, but changes what the list promises. This is the main reason to prefer a narrower candidate-1 experiment first, not a universal rejection of candidate 2.

Current implementation facts

  • Lookup admits one worker and one Project clone; it snapshots process presentation but constructs default Scenario state at lines 53–61. Choose revalidates the requested surface before routing. Scenario reveal checks representation, subject and complete usage before App navigation. Preserve this nonmutation-before-validation property.
  • Scenario presentation holds one current representation/visit/camera, not a camera collection for all Saved views. Representation entry resets presentation on an owner/view change. Saved identity does not itself supply an inactive display context.
  • Object reveal already replaces the camera, using readable zoom clamped to 0.5–1.25. Fixed navigation zoom therefore changes the precise framing policy; it does not newly discard a collection of persisted per-view cameras. Deferred reveal validates document/revision/representation/visit on viewport arrival, then repeats reveal. Candidate 1 must preserve the measured zoom through that second pass and adjust pan only.
  • Usage Context currently binds document/revision/subject, without font or zoom. Label checks additionally require the same render-session identity, font version and exact zoom. RenderSession is caller attestation that fonts settled and renderer caches were reset; neither candidate enforces it automatically.
  • Operation membership resolves Replies through their exact Call. Its current short32 field test must be replaced by the same prepared artifact consumed by paint and hits, including original-source field ranges. retains_any correctly tests retained non-whitespace source text; bounds_at gives the whole label bounds, not field-specific horizontal geometry.

Separate represented text from a field visibly exposed by navigation. With a long prefix and a late operation/allocation name, a very wide corridor can retain the field while centering the whole label leaves that field outside the viewport. Neither candidate automatically solves this. The experiment must exercise the actual field at the chosen pan and viewport, or clearly retain a narrower navigation promise. Do not infer a field's horizontal position from source byte count, particularly with shaping or bidirectional text.

Small experiment and acceptance cases

Use one explicitly chosen readable zoom for label-dependent object navigation, shared by lookup preparation, validation and actual paint; selecting a value remains experiment setup, not a decision here. Keep Whole/Fit, semantic selection and Saved/fallback provenance separate. Reuse the existing worker and scoped validation instead of adding a second global lookup framework. First resolve finite structural bands/corridors independently of Fit and truncated text, as the prior boundary requires.

  1. Two views, one owner: narrow and wide Saved lanes produce different operation-field membership exactly when prepared painted text retains different fields. Occurrence/exchange membership stays stable; Replies derive operation identity from the exact Call.
  2. Arrival and resizing: lookup from Text, enter the selected Saved view, then process first viewport measurement or a resize. Measurement zoom remains exact; pan alone adjusts. Whole Fit still works, and accepted model/source/history remain unchanged.
  3. Late field and blocked space: long prefix followed by operation/allocation text, including self/reversed messages and a restricted corridor. Verify the searched field's actual paint and its reveal framing; no ellipsis-only field counts, heuristic byte-position estimate or silently clipped-field success.
  4. Freshness and interruption: replace font session, change revision, visit A→B→A, or issue user camera input while work is pending. Old results/viewport callbacks cannot activate or move the newer destination. Changing fonts requires the real renderer lifecycle contract, not only remeasuring labels.
  5. Multi-view responsiveness: compare cold/repeated lookup and interaction latency with many views and repeated appearances. Caches are per live labelled occurrence; measurement takes the global font-system write lock. A worker does not by itself prove UI responsiveness. Filter structural candidates before shaping where possible and measure actual contention rather than infer performance from task placement.

No code, native input, compiler or runtime test was performed for this review. Existing measured-label ink/padding limits and the lack of production font-session ownership remain unresolved prerequisites; this recommendation does not broaden prior raster evidence or imply arbitrary zoom independence.