Repository navigation
fix(s2s): keep the conversation across socket replacement - #61
WingedGuardian wants to merge 1 commit into
Conversation
Use the transport notification hook to suppress the displaced socket disconnect event after transport cleanup. Keep genuine final disconnects and exercise cooperative and half-open replacement through real sockets.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
What changes
Replacing a live S2S socket now keeps its logical conversation. The eviction input clears its current socket, closes the old connection and waits for transport teardown before installing the replacement. During that empty-input gap, the old disconnect notification previously triggered the bridge's real session teardown, so the replacement always started fresh.
Use Pipecat's existing notification hook to suppress only that eviction-gap event. Native socket/output cleanup still runs. A genuine current disconnect and a late notification after another socket is installed still delegate normally, preserving the existing stale-socket output restoration.
Closes #51.
Depends on #60 (which depends on #59); this is PR 3 of the three-PR reliability stack. Base:
fix/s2s-single-pipeline-owner. Merge #59 and #60 first, then retarget this PR to main and refresh CI before merging.Validation
E2E: after merge and an owner-approved deploy, replace a live device socket during a voice conversation and confirm the realtime session and context survive; disconnect the final socket and confirm normal session teardown still occurs.