Skip to content

session-surface

Provenance

  • Source: .spec/spexcode/spec-dashboard/dashboard-ui/settings/session-surface/spec.md
  • Source SHA-256: 5c3d053f37b6079baf0f0f7db358a10d518c4ba047ac661bed46f3a295f4d6dc

session-surface

A pane-backed session has one visible base surface: Terminal or Conversation. This store owns that local presentation choice, not session state. Its scoped localStorage payload contains a default and only explicit per-session overrides. Valid values are exactly terminal and conversation; the default is Terminal.

Resolution is explicit session override, then the saved default, then Terminal. Updating the default never rewrites session overrides. Updating a session override publishes the new value to the currently mounted console immediately. The storage key includes the current project scope, so one browser's choice for project A cannot affect project B; browser storage remains optional, with the same live in-memory result while unavailable.

Headless sessions do not consume this store: they are always Conversation. Resource tabs are likewise outside this store; they temporarily cover the resolved base surface and return to it when closed.