server: own WebSocket handler tasks - #928
Conversation
|
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 ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d3a9af4eba
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
d3a9af4 to
b25ada0
Compare
b25ada0 to
468becd
Compare
Problem
VoiceServer tracked listener-created WebSocket handler tasks in a manual set. Shutdown cancelled and gathered those tasks but discarded every result, so expected cancellation and a handler cleanup failure were indistinguishable and failures lacked task identity.
Changes
RuntimeTaskScopeeasycat-raw-ws-handler-<connection-id>task nameWhy / impact
WebSocket handlers now remain discoverable under one lifecycle owner until they exit. Normal stop cancellation stays quiet, while a cleanup exception raised after cancellation becomes attributable and observable.
Root cause
The listener owns creation of handler tasks, so VoiceServer historically kept a parallel set. That set had not been replaced by adoption into WS2.5's task-scope model, and its
return_exceptions=Trueresults were never classified.Checks
voice_server.py— passed