Skip to content

Arena Studio: one rig/arena selection shared across Run/Edit/Console (locked by default) #135

Description

@mbreiser

Problem

The arena/rig identity currently lives in three loosely-coupled places in arena_studio.html:

  1. Run view / top bar — derived from the loaded protocol's rig: path (read-only display + provenance).
  2. Console — its own arena dropdown in the caption (drives stream-frame geometry, the batch-ISP progress map, paste-frame validation, FicTrac framing). Defaults to the protocol's rig but is trivially easy to change with one click — including accidentally, which silently changes what geometry gets streamed to the hardware.
  3. Edit view — Settings → Rig (Browse…/built-in dropdown), which edits the protocol document itself.

Redundant selection points invite drift: the Console can quietly disagree with the loaded protocol, and nothing surfaces the mismatch.

Proposal

  • Single source of truth for the session's arena/rig, owned by the Studio shell (Studio.currentRig or similar), consumed by all three views. Loading a protocol sets it (from rig:); the Edit view's Settings→Rig continues to edit the document, and doing so updates the session rig.
  • Locked by default: the selector (wherever it renders — likely once, in the top bar next to the device line) shows a 🔒 and requires an explicit unlock click before it can be changed, mirroring the read-only-in-Run philosophy. Rationale: changing the arena geometry mid-bench is a deliberate, rare act — one-click changes caused near-misses at the bench.
  • Mismatch surfacing: if the user overrides the session rig away from the loaded protocol's rig, show a visible chip/warning ("bench arena ≠ protocol rig") rather than silently diverging.
  • Console keeps reading the shared value (stream geometry, ISP map, paste validation, FicTrac) but loses its own independent selector.

Notes

  • Today's console selector was added for standalone bench use before the embed existed; with all three views in one page it's now redundant.
  • Related policy: docs/development/arena-studio-parity.md (Studio is the primary path).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions