[BUG] Auto-generated permission rule with a literal : inside a quoted argument is rejected on load ("The :* pattern must be at the end")

Resolved 💬 1 comment Opened May 26, 2026 by PavolUlicny Closed Jun 26, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Code auto-saves a Bash permission rule containing a literal : inside a quoted shell argument, then rejects that rule (and warns) on the next load because the parser reads the : (followed by *) as a misplaced prefix-match metacharacter.
This is the same class of bug as #43582 ($() subshell) and #25289 (WebFetch(domain:…) / URLs with https:), both now closed. This is a new variant that those fixes don't cover: the colon comes from a quoted glob argument (--gtest_filter='a:b'), not from a subshell, URL, or domain filter.

What Should Happen?

Either:

  • The rule is accepted — the parser should not treat a : (and following *) that appears inside the matched command content as its own metacharacter; or
  • Claude Code does not auto-save a rule it cannot round-trip (skip / truncate to a valid prefix like Bash(./tests:*)), as proposed in #43582.

Error Messages/Logs

Found 1 settings issue · /doctor for details

Steps to Reproduce

  1. Have Claude run a command whose quoted argument contains : next to — e.g. a googletest filter (gtest uses : to separate patterns and as a glob):

./tests --gtest_filter='*texcoord*:*texture_uv*'

  1. Approve it with "Always allow" so Claude Code writes it to .claude/settings.local.json:

Bash(./tests --gtest_filter='*texcoord*:*texture_uv*')

  1. Reload the project / run /doctor.

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.150 (Claude Code)

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗