mirror of
https://github.com/openai/codex.git
synced 2026-11-10 21:00:47 +00:00
Route TUI request replies to their originating connection and thread (#53436)
## Why Pending requests can outlive a session switch, and different threads or connections can reuse request IDs. Replies and resolution notifications must stay associated with the request that prompted them. ## What changed - Retain the original app-server reply handle for pending and buffered requests, including requests replayed after thread attachment or session reset. - Scope user input, MCP elicitation, and user verification bookkeeping by thread, and send user input answers to the requesting thread. - Keep background resolution notifications from dismissing foreground prompts. - Consume failed replies to closed connections and clear pending replay state without falling through to another request route. ## Testing Add WebSocket regression tests for direct and buffered approvals with colliding request IDs and replies to closed connections. Extend coverage for foreground prompt preservation and thread-scoped user verification cancellation. GitOrigin-RevId: 541acb9910e92f6f2e83c27d2a2384185d4f8fec
This commit is contained in:
committed by
copyberry
parent
b3c3bad976
commit
6f47fcb0be
@@ -1778,14 +1778,6 @@ impl AppServerSession {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) async fn reject_server_request(
|
||||
&self,
|
||||
request_id: RequestId,
|
||||
error: JSONRPCErrorError,
|
||||
) -> std::io::Result<()> {
|
||||
self.client.reject_server_request(request_id, error).await
|
||||
}
|
||||
|
||||
pub(crate) async fn resolve_server_request(
|
||||
&self,
|
||||
request_id: RequestId,
|
||||
|
||||
Reference in New Issue
Block a user