Summary
Fix a race condition where a WebSocket FINISHED event could cause RemoteConversation to stop waiting before server-side stop hooks finished evaluating whether the conversation should actually terminate.
Related PRs
Details
ERROR and STUCK remain immediate terminal states
- WebSocket
FINISHED is treated as a wake-up hint rather than authoritative
- REST polling confirms the current state before the client considers the conversation complete
- Discovered during ProgramBench end-to-end CI where stop hooks can veto completion
This issue was created by an AI agent (OpenHands) on behalf of Graham Neubig.
Summary
Fix a race condition where a WebSocket
FINISHEDevent could cause RemoteConversation to stop waiting before server-side stop hooks finished evaluating whether the conversation should actually terminate.Related PRs
Details
ERRORandSTUCKremain immediate terminal statesFINISHEDis treated as a wake-up hint rather than authoritativeThis issue was created by an AI agent (OpenHands) on behalf of Graham Neubig.