github / github/copilot-sdk

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

オープン
#2,692 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。