e7933645fa
GET /api/v1/ssh/executors/:id/sessions was filtering ExecutorRunning rows by their ExecutorID column, but the lifecycle manager's buildRunningFromExecution only sets that column from a prior row — for fresh sessions it's left empty. The endpoint therefore returned [] for every just-launched SSH session. Look up the TaskSession by session_id and compare its ExecutorID instead. Keep the row's own ExecutorID as a fast-path for resume/recovery flows where it's already populated.