{"version":"2.1.315","anchor":"bash-permission-parsing-heredoc-and-exclude-task-changes","canonical_anchor":"bash-permission-parsing-heredoc-and-exclude-task-changes","heading":"Bash permission checks read heredocs and Gradle's exclude-task option differently","tier":"notice","area":"Bash Safety","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.315\/e\/bash-permission-parsing-heredoc-and-exclude-task-changes","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.315","markdown":"### Bash permission checks read heredocs and Gradle's exclude-task option differently\n\nClaude Code's check of shell commands handles heredocs inside substitutions by default and knows Gradle's `-x` and `--exclude-task` take a value\n\n**What**\n\nBefore running a shell command, Claude Code analyzes it to decide whether it can run without asking you or needs your permission. Three things changed in that analysis:\n\n- Heredocs inside substitutions: a new option for handling them is switched on by default. A heredoc is a block of text fed into a command, and a substitution is a command nested inside another, such as `$( ... )`.\n\n- Nested shells: relative values carried through a command are now passed along when Claude Code checks a shell started inside another shell.\n\n- Gradle: `-x` and `--exclude-task` are now known to take a value, the name of the task to skip.\n\n**Why**\n\nThese changes affect which shell commands Claude Code allows on its own and which it stops to ask you about.\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"}