{"version":"2.1.311","anchor":"shell-permission-check-forselectrepeatcoproc-do-withou","canonical_anchor":"shell-permission-check-forselectrepeatcoproc-do-withou","heading":"Loops with do not after ; or a new line can no longer be checked as safe","tier":"notice","area":"Bash Safety","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/shell-permission-check-forselectrepeatcoproc-do-withou","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311","markdown":"### Loops with `do` not after `;` or a new line can no longer be checked as safe\n\nClaude Code now refuses to verify loops, functions and coproc commands whose do is not preceded by ; or a line break\n\n**What**\n\nBefore running a shell command without asking, Claude Code checks what the command will do. It now refuses to verify the following when their `do` keyword has no `;` or line break before it:\n\n- `for` loops\n\n- `select` loops\n\n- `repeat` loops\n\n- function definitions\n\n- `coproc` commands\n\nThe reason it gives says that what the loop runs cannot be checked, and that written with `; do` it can be.\n\n**Why**\n\nThis closes a gap where Claude Code could misread such commands when deciding whether to allow them on its own. Writing the loop with `; do` lets the check work.\n\n- Area: Bash Safety\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: yes"}