Bash tool overrides are not honored in the latest Copilot SDK/runtime
- 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
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