Why is the `OnPermissionRequest` event triggered twice for the same `PermissionRequestKindWrite` request?
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
- 42/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- go
- Lĩnh vực
- api, backend-api-design
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện các callback trùng lặp với permissionHandler được cung cấp và ghi log request.Kind(), request, invocation.SessionID và requestID cho PermissionRequestKindWrite. Truy vết nơi sự kiện OnPermissionRequest được phân phối và so sánh cả hai lần gọi, sau đó xác minh rằng một yêu cầu ghi logic tạo ra một callback trong khi vẫn giữ nguyên luồng quyết định quyền hiện có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Except for the requestID, the request and invocation in both calls are identical.
permissionHandler := func(request copilot.PermissionRequest, invocation copilot.PermissionInvocation) (copilotrpc.PermissionDecision, error) {
requiresWriteConfirm := requiresWriteApproval(request)
requestID := uuid.NewString()
if request.Kind() == copilotrpc.PermissionRequestKindWrite {
fmt.Printf("[Permission Check] invocation: %s, Kind: %v, Request: %+v\n", invocation.SessionID, request.Kind(), request)
}
h.pushBridgeEvent(session.userID, session.sessionID, "permission.request", gin.H{
"request_id": requestID,
"kind": string(request.Kind()),
"request": request,
"copilot_session_id": fmt.Sprintf("%v", invocation.SessionID),
"requires_write_confirm": requiresWriteConfirm,
"session_id": strconv.FormatInt(session.sessionID, 10),
})
if !requiresWriteConfirm {
decision := copilotrpc.PermissionDecisionApproveOnce{}
h.pushBridgeEvent(session.userID, session.sessionID, "permission.decision", gin.H{
"request_id": requestID,
"kind": string(request.Kind()),
"approved": true,
})
return decision, nil
}
....
}
- Ngôn ngữ chính
- Java
- Star
- 10.5k
- Fork
- 1.5k
- Merge trung bình
- 1 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 130
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
-
agentic-workflows
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
github/copilot-sdk#2760 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
github/copilot-sdk#2759 ·
-
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 ·
-
agentic-workflows
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
github/copilot-sdk#2709 · 1 bình luận ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
github/copilot-sdk#2673 ·
Tất cả issue của github/copilot-sdk
Issue tương tự
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
inu-appcenter/memorIN-backend#288 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
frontend maui-pilot pilot-ask question
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Đang mởarea/plugin
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
kestra-io/plugin-kestra#190 ·