Summary
session.task_complete — which fires reliably after a normal sendAndWait() turn — never fires after fleet execution completes. There is no clean fleet-done signal.
Steps to Reproduce
const session = await client.createSession({
onPermissionRequest: async () => ({ approved: true }),
});
let taskCompleteCount = 0;
session.on('session.task_complete', () => taskCompleteCount++);
session.on('session.idle', () => {
console.log(`task_complete fired ${taskCompleteCount} times`);
// → "task_complete fired 0 times"
});
await session.rpc.fleet.start({ prompt: 'Research X and Y in parallel' });
Observed Behaviour
session.task_complete fired 0 times across all fleet runs. Spike data (2026-03-17) for a 4-subagent run with 757 total events:
{
"session.background_tasks_changed": 172,
"subagent.started": 4,
"subagent.completed": 2,
"session.idle": 1,
"session.task_complete": 0
}
session.task_complete fires normally for regular sendAndWait() turns — fleet is the only case where it doesn't.
Expected Behaviour
session.task_complete should fire when fleet finishes all sub-agents, consistent with regular turn behaviour. Alternatively, a dedicated fleet.complete event should be introduced.
Workaround
Wait on session.idle, but see related issue FLEET-3 — session.idle fires before all sub-agents finish, making this imprecise.
Environment
- SDK:
@github/copilot-sdk v0.1.32
- CLI: latest
- Node: v24.13.1
Summary
session.task_complete— which fires reliably after a normalsendAndWait()turn — never fires after fleet execution completes. There is no clean fleet-done signal.Steps to Reproduce
Observed Behaviour
session.task_completefired 0 times across all fleet runs. Spike data (2026-03-17) for a 4-subagent run with 757 total events:{ "session.background_tasks_changed": 172, "subagent.started": 4, "subagent.completed": 2, "session.idle": 1, "session.task_complete": 0 }session.task_completefires normally for regularsendAndWait()turns — fleet is the only case where it doesn't.Expected Behaviour
session.task_completeshould fire when fleet finishes all sub-agents, consistent with regular turn behaviour. Alternatively, a dedicatedfleet.completeevent should be introduced.Workaround
Wait on
session.idle, but see related issue FLEET-3 —session.idlefires before all sub-agents finish, making this imprecise.Environment
@github/copilot-sdkv0.1.32