1e6638d8cd
The handoff catch in session-handoff.ts and the /handoff handler in command-controller.ts mapped any error named AbortError to "Handoff cancelled" regardless of whether the handoff signal was actually aborted. Providers throw name-AbortError errors on non-user conditions (stalls, idle timeouts, nested resolution failures), so a genuine generation failure surfaced as a user cancellation and hid the cause. Only report "Handoff cancelled" when handoffSignal.aborted is set; re-throw the real error otherwise. The controller now trusts the normalized "Handoff cancelled" message and drops its own AbortError check so re-thrown provider failures render as "Handoff failed: ...". Fixes #7903