{"version":"2.1.309","anchor":"bash-parser-declarations-with-a-failable-expansion-are-flag","canonical_anchor":"bash-parser-declarations-with-a-failable-expansion-are-flag","heading":"Some export and declare shell commands now ask for approval","tier":"notice","area":"Bash Safety","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309\/e\/bash-parser-declarations-with-a-failable-expansion-are-flag","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309","markdown":"### Some export and declare shell commands now ask for approval\n\nShell declarations whose value comes from an expansion that can fail at runtime are now treated as too complex and need your approval\n\n**What**\n\nBefore running a shell command, Claude Code reads the command to decide whether it is safe to run without asking you. When a declaration such as `export` or `declare` sets a variable from an expansion that can fail while the command runs, that command is now treated as too complex to judge in advance. An expansion here is a part like `${...}` or a command substitution that the shell fills in at run time. If it fails, the declaration assigns nothing, so Claude Code cannot know beforehand what the value will be.\n\nThe same checker also does more checking when the command cannot be parsed and when it handles `${...}`. Some commands that used to be judged as simple will now ask for your approval.\n\n**Why**\n\nYou may see more permission prompts for compound commands that use `export` or `declare`.\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"}