#17499·OpenHands

Show non-resumable local runtimes as archived conversations

Author: neubigCreated Sep 17, 2026Updated Sep 17, 2026
Labelsbuglocal runtimeagent-canvaspriority:mediumrelease-note-requiredready-for-dev

Steps to Reproduce

  1. Start Agent Canvas with its normal agent-canvas launcher and host-local conversation runtime.
  2. Create and finish a conversation so its persisted history remains in the local catalog.
  3. Restart Agent Canvas with OH_CONVERSATION_RUNTIME=docker.
  4. Open the historical conversation.

Actual Behavior

The historical conversation has no Docker provisioning identity. With the current SDK it disappears from the catalog; once the SDK reports it as a non-resumable missing runtime, current Canvas still presents it as live and repeatedly attempts to open a WebSocket to a runtime that cannot exist.

Expected Behavior

Canvas should use its existing archived-conversation presentation for valid persisted history whose runtime is missing and cannot be resumed. The history should remain readable without a runtime WebSocket connection.

Acceptance Criteria

  • Read the Agent Server's optional conversation runtime_info response.
  • Map only runtime_status: missing with can_resume: false to the existing sandbox_status: MISSING UI primitive.
  • Do not archive a missing Docker runtime that is resumable.
  • Reuse the current archived icon, read-only banner, and action gating without new Docker-specific components.
  • Demonstrate the behavior in a local Canvas launched through openhands-scripts against a pre-Docker conversation catalog, with before/after screenshots.