opensymphony 1.8.0

A Rust implementation of the OpenAI Symphony orchestration design
Documentation
---
id: OSYM-200
title: OpenHands Runtime Adapter
type: parent
area: agent-runtime
priority: P0
estimate: 3w
milestone: M2 OpenHands runtime adapter
depends_on:
  - OSYM-100
blocks:
  - OSYM-300
  - OSYM-500
children:
  - OSYM-201
  - OSYM-202
  - OSYM-203
  - OSYM-204
project_context:
  - AGENTS.md
  - README.md
  - docs/openhands-agent-server.md
  - docs/websocket-runtime.md
  - docs/implementation-plan.md
repo_paths:
  - crates/opensymphony-openhands/
  - tools/openhands-server/
definition_of_ready:
  - M1 is merged
  - Pinned OpenHands version is selected
  - Wire-contract assumptions are reviewed
---

# OSYM-200: OpenHands Runtime Adapter

## Summary
Implement the direct Rust integration with OpenHands agent-server for the local MVP. This includes local server supervision, REST operations, WebSocket-first event handling, and the issue session runner.

## Scope
- Supervise one local agent-server subprocess
- Serialize the minimal conversation request subset
- Attach to runtime events through WebSocket from day one
- Recover from disconnects using reconcile-after-ready behavior
- Expose an orchestrator-facing issue session runner

## Out of scope
- Hosted topology and remote auth hardening beyond basic config hooks
- UI concerns

## Child issues
- OSYM-201
- OSYM-202
- OSYM-203
- OSYM-204

## Deliverables
- Local server supervisor
- REST client
- WebSocket event-stream client
- Session runner facade for the orchestrator

## Acceptance criteria
- All child issues are merged
- A temp-repo issue can be executed through the adapter with one local OpenHands server
- Reconnect and reconcile behavior is covered by tests

## Test plan
- Fake-server contract suite for HTTP and WebSocket behavior
- One live local smoke run against the pinned server