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
- Start Agent Canvas with its normal
agent-canvaslauncher and host-local conversation runtime. - Create and finish a conversation so its persisted history remains in the local catalog.
- Restart Agent Canvas with
OH_CONVERSATION_RUNTIME=docker. - 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_inforesponse. - Map only
runtime_status: missingwithcan_resume: falseto the existingsandbox_status: MISSINGUI 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-scriptsagainst a pre-Docker conversation catalog, with before/after screenshots.
Source: OpenHands/OpenHands