Source selections attached while a Copilot SDK agent is running don’t reach the model
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- ai-infra-agents
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Java
- Star
- 10.7k
- Fork
- 1.5k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của github/copilot-sdk
-
Rust: ElicitationRequest drops the tool call id from elicitation.requestedCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
github/copilot-sdk#2900 ·
-
Bump zod version to 4.6.6.Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
github/copilot-sdk#2876 · 1 bình luận · 1 reaction ·
-
Python ModelLimits drops max_output_tokens from model metadataCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
github/copilot-sdk#2798 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
github/copilot-sdk#2759 ·
-
docs/AGENTS.md is repo authoring guidance, but everything in docs/ gets publishedCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởdocumentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
github/copilot-sdk#2758 ·
Tất cả issue của github/copilot-sdk
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
ls1intum/thesis-management#1473 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
LunaDeerMC/Dominion#301 · 1 bình luận ·
-
[FEATURE] Expose external refresh, node-level translog and warmer statsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởuntriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
opensearch-project/opensearch-prometheus-exporter#680 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 2 ngày