Skip to content

Commit

Permalink
Restart on refresh if event stream in error or stopped state
Browse files Browse the repository at this point in the history
  • Loading branch information
tofarr committed Feb 20, 2025
1 parent 35e94dc commit 954ccb1
Showing 1 changed file with 10 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from openhands.core.logger import openhands_logger as logger
from openhands.core.schema.agent import AgentState
from openhands.events.action import MessageAction
from openhands.events.observation.agent import AgentStateChangedObservation
from openhands.events.stream import EventStream, session_exists
from openhands.server.session.conversation import Conversation
from openhands.server.session.session import ROOM_KEY, Session
Expand Down Expand Up @@ -95,6 +96,15 @@ async def join_conversation(
event_stream = await self._get_event_stream(sid)
if not event_stream:
return await self.maybe_start_agent_loop(sid, settings, user_id)
for event in event_stream.get_events(reverse=True):
if isinstance(event, AgentStateChangedObservation):
if event.agent_state in (
AgentState.STOPPED.value,
AgentState.ERROR.value,
):
await self.close_session(sid)
return await self.maybe_start_agent_loop(sid, settings, user_id)
break
return event_stream

async def detach_from_conversation(self, conversation: Conversation):
Expand Down

0 comments on commit 954ccb1

Please sign in to comment.