github / github/copilot-cli

FLEET: session.task_complete does not fire after fleet execution

未關閉
#2,262 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
area:agents area:sessions
主要語言
Shell
星號
11.2k
分支
1.9k
平均合併
14 小時 16 分鐘
30 天內合併 PR
6

描述

## 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

```javascript
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:

```json
{
"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

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。