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

Open
#2,692 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
javascript, node.js
Domain
api, tooling

Research direction

Reproduce the issue with Copilot SDK 1.0.13 and @github/copilot 1.0.83 using the SDK entry point and the full CLI through index.js. Compare session.tools.execute for bash, read_bash, stop_bash, and list_bash with the working create override, then trace how recognized overrides reach execution. Done means each Bash override uses its custom schema and invokes its registered handler.

Written by the indexing model from the issue text.

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?

Dominant language
Java
Stars
10.5k
Forks
1.5k
Avg merge
1d 12h
Merged PRs (30d)
133

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/copilot-sdk

All issues in github/copilot-sdk

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.