Bash tool overrides are not honored in the latest Copilot SDK/runtime
- 主要言語
- Java
- スター
- 10.5k
- フォーク
- 1.5k
- 平均マージ
- 1日 14時間
- マージ済み PR(30日)
- 129
説明
## 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?
コントリビューションガイド
調査の方向性
SDK のエントリーポイントと index.js 経由の完全な CLI を使用して、Copilot SDK 1.0.13 および @github/copilot 1.0.83 で問題を再現します。bash、read_bash、stop_bash、list_bash に対する session.tools.execute を、動作する create override と比較し、その後、認識された override がどのように実行に到達するかを追跡します。各 Bash override がカスタムスキーマを使用し、登録された handler を呼び出せれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, node.js
- 領域
- api, tooling
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 68/100