Source selections attached while a Copilot SDK agent is running don’t reach the model
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- ai-infra-agents
Línea de trabajo
Start with the reproduction: create an SDK session with a pausable tool, send a steering message with mode "immediate" carrying a selection attachment, and inspect the next model request. The selection is persisted in the user.message event but is missing from that request, while the same attachment sent while idle arrives. Find where immediate-mode messages are built for the model and make them handle selections as the idle path does. Done means a regression test that sends a selection during a tool call and asserts the model request includes its text, path and range.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I ran into this while dogfooding a language-model provider for Vercel AI Gateway I'm working on, using a Copilot chat.
While the agent was working, I attached a few source selections and asked whether some verbose validation code would benefit from Zod or another approach. The selections appeared as attachment chips in my message, but the agent asked which file I meant. When I pointed out that the selections were attached, it said it had received only a browser-page attachment.
That was confusing: from my perspective, I’d already supplied exactly the context it was asking for.
What we found
I worked with an agent to trace the selections through the installed VS Code agent host. It forwards their text, file paths and ranges to the SDK, and the SDK persists them in its user.message event. However, they’re absent from the request that reaches our model provider.
We then reproduced the behavior using the installed SDK/runtime directly, with synthetic model responses and no VS Code or Vercel provider involved:
| Same selection and text-blob attachments | Selection reaches model | Text blob reaches model |
|---|---|---|
| Message sent while idle | Yes | Yes |
mode: "immediate" during a tool call |
No | Yes |
Both cases persist the attachments correctly. The comparison reproduced twice.
Reproduction
- Create an SDK session with a tool whose handler can be paused.
- Have a synthetic model response invoke that tool.
- While its handler is paused, send an immediate message containing a
selectionattachment with text, file path and range, plus a text-blob attachment as a control. - Release the tool and inspect the next model request.
The steering message and text blob are present, but the selection is missing. Sending those same attachments while idle includes the selected code and its location.
Tested with the versions bundled in my VS Code installation:
- SDK:
1.0.17-unstable.37397886721.gad270aa - Runtime:
1.0.92-4.unstable.r37397886721.gad270aa
Expected behavior
I’d expect source selections attached to a steering message to reach the model just as they do when sent while idle.
Reviewing code while an agent continues working feels like a pretty normal use of steering. Ideally, selection rendering would follow the same path for both delivery modes, with a regression test covering attachments sent during a tool call. The visible attachment chips should accurately represent the context the agent receives.
- Lenguaje dominante
- Java
- Estrellas
- 10.7k
- Forks
- 1.5k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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
-
Rust: ElicitationRequest drops the tool call id from elicitation.requestedQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
github/copilot-sdk#2900 ·
-
Bump zod version to 4.6.6.Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
github/copilot-sdk#2876 · 1 comentario · 1 reacción ·
-
Python ModelLimits drops max_output_tokens from model metadataQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
github/copilot-sdk#2798 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
github/copilot-sdk#2759 ·
-
docs/AGENTS.md is repo authoring guidance, but everything in docs/ gets publishedQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertodocumentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
github/copilot-sdk#2758 ·
Todos los issues de github/copilot-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
ls1intum/thesis-management#1473 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
LunaDeerMC/Dominion#301 · 1 comentario ·
-
[FEATURE] Expose external refresh, node-level translog and warmer statsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertountriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
opensearch-project/opensearch-prometheus-exporter#680 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 2 días