.NET: runtime logs forwarding session.idle, but SDK callback never delivers it
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- csharp
Línea de trabajo
No se nombran archivos específicos. Empieza rastreando la suscripción de sesión de .NET y la ruta de despacho FIFO; después, inspecciona el contrato de ejecución propuesto de session.waitForIdle junto con el manejo de session.idle y GetEventsAsync. La tarea estará terminada cuando una prueba de regresión demuestre que la finalización espera a todos los eventos anteriores, gestiona las notificaciones de inactividad descartadas, propaga los fallos y admite la cancelación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Visual Studio can remain indefinitely in the running state after the Copilot CLI has completed a response.
The CLI verbose log shows that it forwarded the terminal, ephemeral session.idle event. The .NET SDK subscription receives the preceding events, including the final assistant.turn_end, but never receives SessionIdleEvent.
Because session.idle is ephemeral, it cannot be recovered later through GetEventsAsync(). The client therefore has no authoritative completion signal and continues waiting.
Environment
- GitHub.Copilot.SDK:
1.0.1 - Copilot CLI runtime:
1.0.61 - Windows ARM64
- Visual Studio Agent and Agent (Preview) modes
The current SDK 1.0.7 still does not expose a durable idle wait or event-dispatch flush API.
Observed behavior
The CLI log ends with:
Forwarding event ... assistant.turn_end
Forwarding event ... session.idle (ephemeral)
The .NET subscriber observes assistant.turn_end, but not session.idle. The operation remains active even though the runtime has finished.
The absence of session.idle from events.jsonl is expected because the event is ephemeral; it does not explain why the live subscriber missed it.
Why assistant.turn_end is insufficient
In multi-turn tool workflows, an intermediate assistant.turn_end can be followed immediately by another assistant.turn_start. Completion also needs to account for sub-agents, attached shells, queued messages, and follow-up notification turns.
Requested fix
Please provide an authoritative completion contract owned by the runtime/SDK, for example:
await session.WaitForIdleAsync(cancellationToken);
It should:
- Wait for turns, sub-agents, attached shells, queued work, and follow-up turns to settle.
- Resolve only when the runtime is fully idle.
- Ensure preceding session events have crossed the .NET SDK FIFO dispatch queue.
- Surface session errors and transport failures.
- Remain correct if the live
session.idlenotification is dropped. - Support cancellation without leaving an orphaned waiter.
An equivalent session.waitForIdle runtime RPC combined with an SDK dispatch barrier would also work.
Regression test
Add a .NET test where a multi-turn response completes, the live session.idle notification is deliberately dropped, and the completion wait still resolves only after all preceding assistant and tool events have been delivered.
Related
- #794 - identifies missing
session.idleand silent notification drops, but its proposed fallback did not ship - #558 - timeout waiting for
session.idle - #791 - serialized FIFO event dispatch in the .NET SDK
- #927 - ephemeral events are intentionally unavailable through replay
- #1275 -
assistant.turn_endalone is not a completion signal
- Lenguaje dominante
- Java
- Estrellas
- 10.5k
- Forks
- 1.5k
- Merge medio
- 1 d 9 h
- PR fusionados (30 d)
- 130
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de github/copilot-sdk
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
github/copilot-sdk#2760 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
github/copilot-sdk#2759 ·
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
github/copilot-sdk#2758 ·
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
github/copilot-sdk#2709 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
github/copilot-sdk#2673 ·
Todos los issues de github/copilot-sdk
Issues similares
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/flink-agents#1152 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
jenkinsci/blueocean-plugin#5417 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
objectionary/eo-graphs#75 ·