Commit Graph
2 Commits
Author SHA1 Message Date
xquanluuandClaude Opus 5 1d35ced55b fix: end the session when dial's actionHook returns nothing usable
An empty array, a non-array body, or a non-json content-type all resolve
rather than throw, so performAction returns false and the session was left
parked. A hook that answered with no verbs is no better a reason to hold the
caller than one that failed.

Deliberately overrides the ws "ack now, send verbs later" pattern for dial:
an app that means to push verbs afterwards must return them from the hook.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 17:30:13 +07:00
xquanluuandClaude Opus 5 20210563f9 fix: end the call when dial finishes with no actionHook, or a failed one
- a websocket application was parked in _awaitCommandsOrHangup after a dial
  it was never asked about: no actionHook at all, or one whose request
  failed. An http application already ends the call here simply by running
  out of verbs; a websocket one sat in dead air until timeLimit
- TaskDial._endSessionUnlessHandedOff -> CallSession.expectNoFurtherVerbs
  suppresses the await for that one task iteration, so the loop falls out
  and the call tears down normally
- verbs still queued are unaffected: the flag is read behind the
  tasks.length === 0 test, so the next verb always runs
- skipped for a nested dial, and when the application already took the call
  elsewhere (KillReason.Replaced / ReferComplete)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 17:14:16 +07:00