53 lines
3.2 KiB
Markdown
53 lines
3.2 KiB
Markdown
# Projection switching and canvas inspection
|
||
|
||
Branch contribution for [#42](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/42)
|
||
and [#43](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/43),
|
||
based on published preview `715036e132677dd2bc2fb37ed316d93dc9987aec`.
|
||
Owner: Codex-ytr83r, session 01a0d706. This is a candidate, not integrated
|
||
acceptance or a replacement release. Live status belongs to the linked issues.
|
||
|
||
## Decision and alternatives
|
||
|
||
String projections are presentation filters over one authored diagram. Preserve
|
||
opposite-layer placements, routes and visibility selections when switching away
|
||
from Traceability; ordinary projections render only their declared layer. This
|
||
extends the existing documented preservation of inapplicable element kinds.
|
||
Deleting incompatible placements loses authored arrangements; automatically
|
||
creating a second view fragments the user's work and makes repeated switching
|
||
ambiguous. Neither alternative satisfies reversible view switching as directly.
|
||
|
||
Missing identities and wrong reference kinds/families remain errors. StateMachine
|
||
and Scenario keep strict typed membership. Frozen versions 1–6 retain their old
|
||
layer admission before migration. The current version-7 correction adds no fields
|
||
or wire shapes; older version-7 readers may reject newly admitted latent records.
|
||
That compatibility limit must remain explicit until coordinated version adoption.
|
||
The explicit RelocateNode operation continues to require a compatible destination
|
||
layer or Traceability view; retaining latent records is distinct from moving a
|
||
placement into an incompatible destination.
|
||
|
||
Canvas inspection carries the originating route context and preserves view/layer.
|
||
Explicit model navigation continues to follow the target layer. Draft validation
|
||
and stale-context rejection apply before inspection. Existing production group
|
||
selection already retained the canvas; fallback edge/port selection and canvas
|
||
context actions require the correction. Actual native reproduction must establish
|
||
which path accounts for the user's reported click; source diagnosis alone does not.
|
||
|
||
## Acceptance
|
||
|
||
- OA and SA switches through all ordinary projections preserve the complete model
|
||
except projection, source/JSON/bundle round trips, and one-step Undo/Redo.
|
||
- Returning to Traceability restores applicable placements; parent, port and edge
|
||
projection never leaks an opposite-layer record into an ordinary view.
|
||
- Invalid references and State/Scenario membership still reject; source and JSON
|
||
versions 3–6 retain their old layer checks and located diagnostic identities.
|
||
- Actual canvas clicks, context Properties/Hide and explicit navigation exercise
|
||
the intended selection distinction; stale packets and invalid drafts preserve
|
||
selection and source/history.
|
||
- Windows native selection, projection switching, Save, Undo/Redo and fresh reopen
|
||
are checked against predeclared full-model/source expectations. Compilation and
|
||
automated handler tests do not substitute for this acceptance.
|
||
|
||
Linux remains excluded by the existing user pause. Independent design critique
|
||
identified saved visibility selectors and frozen migration as additional admission
|
||
paths; both are included. Automated and native outcomes are not yet recorded.
|