b2ee149c19
- Fix resilient_background rename: ResponsesServerOptions no longer accepts durable_background (renamed to resilient_background in b8). The old name caused a silent TypeError that disabled crash recovery in hosted environments. - Add steerable_conversations parameter to ResponsesHostServer.__init__. When True, concurrent turns on the same conversation chain are queued rather than rejected with 409 conversation_locked. The flag is threaded into ResponsesServerOptions and composed with resilient_background in the auto-enable path for hosted environments. - Fix streaming cancellation terminal: both _handle_inner_agent and _handle_inner_workflow now emit response.completed before returning when cancellation_signal fires. Per spec §10, the handler must emit a terminal event; the framework overrides completed → cancelled when context.client_cancelled=True (real client cancel), and leaves it as completed for steering pressure (client_cancelled=False). Previously returning without a terminal caused the framework to force failed, which broke the steered-turn chain. - Add comment in _handle_inner_workflow explaining the relationship between previous_response_id and conversation_chain_id for steerable turns (they resolve to the same key, so the existing restore logic is already correct). - Update tests: rename resilient_background tests, update cancellation test to assert response.completed is emitted, add three new tests for steerable_conversations threading and precedence rules. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>