Skip to content

[ACP on Cloud] Backend: native session/load resume integration (id mirror + snapshot + precedence) #1248

@simonrosenberg

Description

@simonrosenberg

Priority: P1. Part of #988. The OpenHands-side of Tier-B native session/load resume — companion to the SDK files-half (#1126 = software-agent-sdk#3562) and the persistence substrate (#1018). Gives a first-class home to the work that replaced the closed #14506 (id-half) and #14311.

Implemented by OpenHands#14709

  • Mirror acp_session_id / acp_session_cwd / acp_agent_version from the agent_state webhook stream onto conversation_metadata (app_server migration 012 / enterprise 119).
  • AcpSessionSnapshotService: pull the allowlisted CLI session blob into config.file_store at turn boundaries; reseed it into a fresh sandbox on rebuild.
  • _build_acp_start_conversation_request: attempt native resume first (mirrored id + session/load-capable provider + matching cwd + restorable blob → set acp_resume_session_id + acp_isolate_data_dir), degrading to #14640 bootstrap otherwise.

Tasks

Done when

  • A recycled cloud ACP conversation resumes via native session/load (same acp_session_id, no <<RESUMED CONVERSATION>> marker) for Claude + Codex. (Gemini stays on bootstrap — no reliable session/load.)

Depends on software-agent-sdk#3562 (blob routes) + the runtime-image pin (tracked separately).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    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