Why is the `OnPermissionRequest` event triggered twice for the same `PermissionRequestKindWrite` request?
- Lenguaje dominante
- Java
- Estrellas
- 10.5k
- Forks
- 1.5k
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 128
Descripción
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
}
....
}
```
Guía de contribución
Línea de trabajo
Start by reproducing the duplicate callbacks with the shown permissionHandler and logging request.Kind(), request, invocation.SessionID, and requestID for PermissionRequestKindWrite. Trace where the OnPermissionRequest event is dispatched and compare both invocations, then verify that one logical write request produces one callback while preserving the existing permission decision flow.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- go
- Área
- api, backend-api-design
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 42/100