# Claude Code 2.1.214: permission-check bypasses closed, dir/** glob scope narrowed

> Security-weighted release closing multiple permission-check bypasses, including a PowerShell 5.1 bypass and `dir/**` allow rules auto-approving writes to same-named directories anywhere in the tree. Hook `if:` conditions using single-segment `dir/**` now match only `<cwd>/dir`, so existing hook configs may stop matching.

| | |
|---|---|
| **Tool** | Claude Code |
| **Version** | 2.1.214 |
| **Kind** | release |
| **Published** | 2026-07-18 |
| **Observed** | 2026-08-11 |
| **Significance** | 4/5 |
| **Breaking** | yes |
| **Categories** | security, breaking, fix, feature, capability |

## What changed


**Permission fixes**
- `dir/**` allow rules (e.g. `Edit(src/**)`) auto-approved writes to nested `dir/` directories anywhere in the tree; now scoped to `<cwd>/dir`
- Permission-check bypass in Windows PowerShell 5.1 sessions
- Bash checks now fail closed on file-descriptor redirect forms the analyzer parsed differently than bash
- Commands over 10,000 characters always prompt instead of auto-running
- zsh variable subscripts/modifiers in `[[ ]]` no longer treated as inert text
- Certain `help` and `man` invocations no longer auto-approved
- `docker` (and the Podman `docker` shim) prompts on daemon-redirect flags: `--url`, `--connection`, `--identity`, Podman remote mode
- `file` with `-m`/`--magic-file` or `-f`/`--files-from` now requires permission
- Remote-session permission prompts could proceed before the local confirmation dialog

**Breaking**
- Single-segment `dir/**` in hook `if:` conditions matches only `<cwd>/dir`; use `**/dir/**` for any-depth. `deny`/`ask` permission rules keep any-depth matching.

**Other**
- Added the EndConversation tool, letting Claude end sessions with highly abusive users or jailbreak attempts
- OpenTelemetry: `message.uuid`, `client_request_id`, `tool_source` attributes; `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` for the 60 KB truncation limit
- Reasoning effort added to the `subagentStatusLine` payload
- Fixed unbounded memory growth when `--settings` points at a device file or multi-GB file; settings over 2 MiB now fail at startup
- Fixed Bash killing the session when a `pkill -f` pattern matched the CLI's own process (Linux)
- Fixed plugins enabled via `--settings` not loading (regression since 2.1.181)
- Multiple Windows PowerShell tool fixes: stdin hangs, Unicode decode/encode crashes, `where.exe`/`fc.exe`/`diff.exe` negative results as errors, UTF-16LE output redirects
- Background daemon fixes: a displaced daemon deleting its successor's control socket, undeletable completed sessions, sessions dispatched from non-git folders
- Fixed session cost and token telemetry double-counting on multiple cumulative `message_delta` frames
- Fixed hooks with exit code 2 not blocking when stdout JSON fails schema validation

Note: the source entry is truncated mid-bullet at the end.


## Sources

- [changelog_md](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) — retrieved 2026-08-11

## Community

_No curated reactions recorded. Facts and community takes are kept in separate layers
and never blended._

---
Canonical: https://changelogs.info/claude-code/2-1-214
Entity: https://changelogs.info/claude-code
Event ID: `evt_2026-07-18_claude-code_2-1-214`
Licence: event synthesis © changelogs.info, CC BY 4.0. Linked sources belong to their vendors.
