{"version":"2.1.302","anchor":"bash-last-segment-parser-tracks-pipe-feeders","canonical_anchor":"bash-last-segment-parser-tracks-pipe-feeders","heading":"Claude Code now notes when the last command in a pipeline is fed by a pipe","tier":"internal","area":"Elsewhere","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.302\/e\/bash-last-segment-parser-tracks-pipe-feeders","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.302","markdown":"### Claude Code now notes when the last command in a pipeline is fed by a pipe\n\nWhen it splits a shell command into parts, Claude Code now records which parts are piped and which command feeds the last one\n\n**Unclear.** It is not clear whether this changes which piped commands Claude Code asks permission for.\n\n**What**\n\nWhen Claude Code runs a shell command, it splits the command into parts, for example the pieces either side of `&&` or `|`. A pipe (`|`) passes one command's output into the next command as its input.\n\nThat splitting now records whether each part is piped. If the last command gets its input through a pipe from a permitted source, Claude Code now also returns that source command. The same check now also handles subshells (commands grouped in brackets so they run separately) and redirects (sending output to or reading input from a file). Before, it returned only the last part and whether that part was joined with `&&`.\n\n**Why**\n\nThe extra information could change how Claude Code judges piped commands, for example when it decides whether a command needs your permission.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}