{"version":"2.1.314","anchor":"shell-parser-case-pattern-parenthesis-handling","canonical_anchor":"shell-parser-case-pattern-parenthesis-handling","heading":"More shell commands using unusual case patterns now ask for approval","tier":"notice","area":"Bash Tool","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.314\/e\/shell-parser-case-pattern-parenthesis-handling","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.314","markdown":"### More shell commands using unusual `case` patterns now ask for approval\n\nClaude Code now treats more ambiguous `case` statements in shell commands as unreadable, so they ask for your approval instead of running\n\n**What**\n\nBefore Claude Code runs a shell command, it reads the command to check it against your permission rules, which say what may run without asking. Before, it handled `case` statements (a shell way of choosing between options) with a simple count of where each one started and ended.\n\nIt now tracks the pattern groups inside `case` statements more closely. When it meets one of these unclear constructs, it treats the whole command as one it cannot read:\n\n- patterns that start with `(`\n\n- the `;|` separator\n\n- heredocs (blocks of inline text) inside a pattern\n\n- arrays inside a pattern\n\nA command Claude Code cannot read asks for your approval instead of running automatically.\n\n**Why**\n\nThis makes it harder for a cleverly written command to slip past your permission rules. You may be asked to approve some commands that used to run without asking.\n\n- Area: Bash Tool\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: yes"}