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).
Priority: P1. Part of #988. The OpenHands-side of Tier-B native
session/loadresume — 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
acp_session_id/acp_session_cwd/acp_agent_versionfrom theagent_statewebhook stream ontoconversation_metadata(app_server migration 012 / enterprise 119).AcpSessionSnapshotService: pull the allowlisted CLI session blob intoconfig.file_storeat 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 → setacp_resume_session_id+acp_isolate_data_dir), degrading to #14640 bootstrap otherwise.Tasks
Done when
session/load(sameacp_session_id, no<<RESUMED CONVERSATION>>marker) for Claude + Codex. (Gemini stays on bootstrap — no reliablesession/load.)Depends on software-agent-sdk#3562 (blob routes) + the runtime-image pin (tracked separately).