Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Why is the `OnPermissionRequest` event triggered twice for the same `PermissionRequestKindWrite` request?

Abierto
#2,060 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
go

Línea de trabajo

Comienza reproduciendo los callbacks duplicados con el permissionHandler mostrado y registrando request.Kind(), request, invocation.SessionID y requestID para PermissionRequestKindWrite. Rastrea dónde se despacha el evento OnPermissionRequest y compara ambas invocaciones; después, verifica que una solicitud de escritura lógica produzca un callback, preservando el flujo existente de decisión de permisos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

question

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
		}

		....
	}
Image Image
Lenguaje dominante
Java
Estrellas
10.5k
Forks
1.5k
Merge medio
1 d 9 h
PR fusionados (30 d)
130

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de github/copilot-sdk

Todos los issues de github/copilot-sdk

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.