github / github/copilot-sdk

Bash tool overrides are not honored in the latest Copilot SDK/runtime

Abierto
#2,692 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
10.5k
Forks
1.5k
Merge medio
1 d 14 h
PR fusionados (30 d)
129

Descripción

## Description

Custom overrides for the Bash tool family are not honored with Copilot SDK `1.0.13` and `@github/copilot@1.0.83`.

The custom handlers for `bash`, `read_bash`, `stop_bash`, and `list_bash` are never invoked. File and search tool overrides work correctly under the same configuration.

## Versions tested

- Copilot SDK: `1.0.13`
- CLI/runtime: `@github/copilot@1.0.83`

The issue reproduces with both the SDK’s default entry point and the full CLI launched through `index.js`.

## Steps to reproduce

1. Register custom tools named `bash`, `read_bash`, `stop_bash`, and `list_bash`, with override enabled.
2. Add logging or invocation counters to each custom handler.
3. Register a `create` override as a control.
4. Create a session and invoke the tools.
5. Observe that the `create` handler is called, but the Bash tool handlers are not.

The issue also reproduces when invoking `bash` directly through `session.tools.execute`, without model involvement.

## Expected behavior

Overridden tools should use the custom tool schemas and invoke the registered custom handlers.

## Actual behavior

| Tools | Override behavior |
|---|---|
| `view`, `create`, `edit` | Works as expected |
| `glob`, `grep`, `apply_patch` | Works as expected |
| `bash` | Custom handler is not invoked |
| `read_bash` | Custom handler is not invoked; built-in parameter validation is used instead of the custom schema |
| `stop_bash` | Custom handler is not invoked; built-in parameter validation is used instead of the custom schema |
| `list_bash` | Custom handler is not invoked |

## Additional evidence

The tool-planning logic recognizes the overrides:

{
"validOverridingExternalToolNames": ["bash", "create"]
}

However, only the `create` override takes effect. The `bash` override is recognized but not honored during execution.

Could you confirm whether overriding the Bash tool family is still supported, and investigate why these overrides are not taking effect?

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Reproduce el problema con Copilot SDK 1.0.13 y @github/copilot 1.0.83 utilizando el punto de entrada del SDK y la CLI completa mediante index.js. Compara session.tools.execute para bash, read_bash, stop_bash y list_bash con el create override que funciona, y luego rastrea cómo los overrides reconocidos llegan a la ejecución. El trabajo estará terminado cuando cada override de Bash utilice su esquema personalizado e invoque su handler registrado.

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

Evaluación

Stack tecnológico
javascript, node.js
Área
api, tooling
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
68/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.