Pathfinder: parseJsonRpc joins multiple SSE data: lines with empty string

Đang mở Phù hợp với người mới
#123 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
75/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
typescript
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu tại packages/outpost/ai/src/pathfinder.ts ở parseJsonRpc và xem lại cách các dòng dữ liệu SSE cũng như ranh giới sự kiện hiện đang được xử lý. Bổ sung coverage cho một body có nhiều sự kiện hoặc nhiều dòng dữ liệu, đảm bảo các payload của sự kiện được tách đúng cách và các dòng dữ liệu trong cùng một sự kiện được nối bằng ký tự xuống dòng; hoàn thành khi response JSON-RPC được parse mà không xảy ra phép nối không hợp lệ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area: integrations priority: low roadmap roadmap: later

Spun out of the #112 review (non-blocking, edge case).

parseJsonRpc concatenates all data: payloads with ''. Per the SSE spec, data lines within one event join with \n, and separate events are distinct messages. So a reply chunked across multiple data: lines, or one carrying a notification plus the response, would concatenate into invalid JSON and throw. Harmless for the real server's current single-line, single-event tools/call reply (and it's live-tested), but brittle if the server ever streams/chunks.

Fix direction: parse per-event (split on blank lines), take the last data: event's payload, or join a single event's data lines with \n. Add a test with a multi-event / multi-data: body.

File: packages/outpost/ai/src/pathfinder.ts (parseJsonRpc).

Ngôn ngữ chính
TypeScript
Star
15
Fork
6
Merge trung bình
1 ngày 9 giờ
Pull request đã merge (30 ngày)
12

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của CopilotKit/outpost

Tất cả issue của CopilotKit/outpost

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.