github / github/copilot-sdk

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

Ouverte
#2,692 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
10.5k
Forks
1.5k
Merge moyen
1 j 14 h
PR mergées (30 j)
129

Description

## 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?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Reproduisez le problème avec Copilot SDK 1.0.13 et @github/copilot 1.0.83 en utilisant le point d’entrée du SDK et la CLI complète via index.js. Comparez session.tools.execute pour bash, read_bash, stop_bash et list_bash avec le create override fonctionnel, puis suivez comment les overrides reconnus parviennent jusqu’à l’exécution. Le travail est terminé lorsque chaque override Bash utilise son schéma personnalisé et invoque son handler enregistré.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, node.js
Domaine
api, tooling
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
68/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.