Skip to content

#250 child: Preserve URL, selection, focus, and revision continuity across Atlas surfaces #261

Description

@Joncallim

Parent: #250. Cross-screen/state-management review finding.

Topology continuity is not only visual. Freeze a single shareable interaction contract for lens, selected subject, expanded group/aggregate and focus target.

Single interaction authority

Canvas, directory/text alternative, inspector, Home links, Networking/Runtime coordinated views and detail entry points must not maintain independent semantic selections. Use one useAtlasState-style authority (exact implementation may differ) for:

  • selected safe subject;
  • active lens;
  • expanded semantic group/aggregate;
  • semantic focus target;
  • route/deep-link reconciliation;
  • model-revision reconciliation.

Hover may remain ephemeral/local. Selection may not diverge between spatial and non-spatial representations.

Routing and revision requirements

  • routable safe identities only;
  • URL/deep-link representation where appropriate;
  • browser back/forward works;
  • refresh/model revision preserves selection only if the exact safe identity remains;
  • disappeared/collided identity fails closed with explicit state and deterministic focus recovery;
  • lens switches preserve subject focus;
  • Home/Networking/Runtime/detail links can open the same Atlas subject/lens without screen-local translation logic;
  • text filters may hide a row visually but must not silently mutate the canonical selected identity; the UI must either keep the selected context visible or explicitly explain/filter-reset it;
  • keyboard focus restoration is deterministic when a selected visual representation disappears.

Camera separation

Semantic route state does not own camera coordinates. Pan/zoom is ephemeral by default and follows #269. Deep links must never encode internal layout coordinates as durable identity.

Do not persist unsafe/raw host identifiers in URLs beyond existing redaction/routing policy. Do not serialize presentation occurrence keys for collided identities as routes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions