Skip to content

DESTRUCTIVE (forced) git branch deletion is MISCLASSIFIED and requires NO PERMISSION #4156

Description

@toms-g2

Describe the bug

Per /diagnose:


Found it. The root cause is clear from the event log:

  • git push --delete at 20:42:24 → generated a permission.request event → you were prompted ✅
  • git branch -D at 20:43:03 → no permission.request event at all → ran silently ❌

The CLI classifies commands by identifier to determine if they're read-only. In the git push permission request, git push is correctly tagged "readOnly": false. But earlier in the session, git branch -r was tagged "readOnly": true — and the classifier appears to treat all git branch invocations as read-only, regardless of flags like -D.

In short: this is a classifier bug in the CLI. It doesn't recognize that git branch -D is destructive, so it skips the permission prompt entirely. git push --delete was correctly flagged; git branch -D was not.

This is worth reporting via /feedback — the git branch command classifier needs to recognize -D / -d / --delete as write operations.

Affected version

GitHub Copilot CLI 1.0.71.

Steps to reproduce the behavior

  • Ask Copilot to delete one or more remote branches to provoke it to call git push --delete ....
  • Observe that the command requires user acknowledgement.
  • Ask Copilot to delete one or more local branches to provoke it to call git branch -D ....
  • Observe that the command runs with no permission prompt.

Expected behavior

A destructive operation such as DELETING A BRANCH should require confirmation by default.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:permissionsTool approval, security boundaries, sandbox mode, and directory restrictionsarea:toolsBuilt-in tools: file editing, shell, search, LSP, git, and tool call behavior

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions