Follow Discord
Sweep 30 Oct 2026 · 21:36Z Build v2.1.315 533 read Stable v2.1.308 Latest v2.1.314 Next v2.1.315 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.315 ·

Shell commands with heredocs that cut across a substitution are refused

Claude Code now refuses to parse shell commands where a heredoc and a $( ... ) or <( ... ) substitution overlap on the same line

You'll notice Improvements
JSON All of v2.1.315
You'll noticeTier: how much it should matter to you
1Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
Bash SafetyArea: what it touches
ImprovementsKind: in v2.1.315,
ImprovementsSection of the release
What

Before running a shell command, Claude Code parses it, meaning it works out the command's structure, to check permissions. It now refuses to parse two kinds of command:

  • a heredoc opened inside $( ... ) or <( ... ) whose closing ) comes on the same line, before the heredoc's text
  • a $( ... ) or <( ... ) that runs on past the end of a line that opened its own heredoc

A heredoc is a block of text fed into a command, and $( ... ) or <( ... ) runs one command inside another. This handling is part of an option that is on by default.

Why

These layouts could be read one way by Claude Code's permission check and another way by the shell. Refusing them stops a command from passing the check under a misreading.

See this entry in the whole of v2.1.315 →

Feedback