When the voice agent triggers DingTalk OAuth, the user leaves the app to authorize in DingTalk/browser, causing the LiveKit participant to disconnect. The voice-agent then calls DELETE /voice to terminate the session — but the user intends to return after completing OAuth. Fix: mark the session as "oauth_pending" in VoiceSessionController when oauth-trigger fires. If terminateVoiceSession is called while the flag is active (10-min grace), suppress the terminate and return 200 OK so the voice-agent exits cleanly. The session stays alive; when the user returns to the voice screen, voice/start + inject auto-resume it. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| gateway | ||
| openclaw-bridge | ||
| services | ||
| shared | ||