Bugfix
Stop button in chat didn't stop the linked Kanban task subprocess
When a Kanban task session is open in the chat tab and the user clicks Stop, the WS stop message only aborted the WebSocket tab's AbortController. The taskWorker had a separate runningTaskAborts entry keyed by task ID — so the Claude Code subprocess kept running.
Fix: In the WS stop handler, after aborting the WS tab, the server now:
- Queries DB for any
in_progresstask withsession_id = tabId - Adds the task to
stoppingTasks(prevents onDone from overwriting status) - Sets task
status = 'cancelled' - Aborts via
runningTaskAbortsAbortController or sendsSIGTERMtoworker_pid