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.311,
ImprovementsSection of the release
What
Before Claude Code runs a shell command without asking you, it reads the command and decides whether it is safe. This analysis is stricter in several places:
A redirect is the > or < part of a command that writes output to a file or reads input from one. A redirect that may read a variable set in the same command is now treated as too complex, because shells can differ on which value it gets.
Loops in the analysis are now bounded.
read is a built-in shell command that reads input into variables. Its arguments are now checked, including the -a array name and flag values, and any of these checks can stop the analysis early. Before, its flags were skipped and only the variable names were collected. This happens in the same path-checking function that already handled other built-in commands.
A new check handles read first. When it applies, the older handling that assigns the default REPLY variable is skipped.
There is a new zsh read check for cases where zsh behaves differently from bash.
Why
Some compound commands, and commands that use read, may now ask for permission where they used to run automatically.