You'll noticeTier: how much it should matter to you
1Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
Bash SafetyArea: what it touches
ImprovementsKind: in v2.1.309,
ImprovementsSection of the release
What
Before running a shell command, Claude Code reads it to decide whether it is simple enough to judge safe automatically. It now treats ! directly followed by ( inside a [[ ]] test (the shell's condition syntax) as too complex. The reason it gives is that zsh reads !( in [[ ]] as part of a word.
Commands containing this are no longer treated as simple.
Why
zsh reads this pattern differently from how Claude Code read it, so a command could mean something other than what was checked. Such commands should now prompt you for permission.