a2aproject / a2aproject/a2a-js
[Bug]: sendMessage persists follow-up history before the required-extension check
- Ngôn ngữ chính
- TypeScript
- Star
- 613
- Fork
- 169
- Merge trung bình
- 1 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 21
Mô tả
### What happened?
`_createRequestContext` appends `incomingMessage` to history and `save()`s, then later throws `ExtensionSupportRequiredError` if a required extension is missing. Existing tests only cover new messages (`taskId: ""`), so the follow-up path is untested.
A client that forgets a required extension on a follow-up still permanently appends that message. Later getTask/listTasks/resubscribe show a message the server refused to execute.
**Repro**
1. Create a task.
2. Configure the agent card with a required extension.
3. sendMessage a follow-up with that taskId and no A2A-Extensions.
Observed: the call throws, but `taskStore.load(taskId).history` already contains the follow-up.
Expected: history unchanged.
### Relevant log output
n/a.
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct
Hướng dẫn đóng góp
Hướng nghiên cứu
Look at the `_createRequestContext` function where history is appended and saved. The bug is that this save happens before the required-extension check. Find the test suite for new messages (`taskId: ""`) and write a similar test for the follow-up path. Verify the fix by ensuring the history is not saved when `ExtensionSupportRequiredError` is thrown.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, typescript
- Lĩnh vực
- backend-api-design
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 65/100