v2.1.214는 permission(권한) 체크의 누락을 일제히 보완하는 릴리스입니다. Edit(src/**)와 같은 allow(허용) 규칙이 트리 내 어디에 있는 src/에 대한 쓰기도 자동 승인하던 버그가 수정되었습니다. allow를 세밀하게 작성한 설정일수록 승인 프롬프트가 나타나는 방식이 달라집니다.
- 단일 세그먼트
Edit(src/**)의 과도한 적용 수정: dir/** allow 규칙이 <cwd>/dir 이외의 dir/까지 자동 승인하던 문제 (v2.1.214)
EndConversation 도구 추가: 악의적인 이용이나 탈옥(jailbreak) 시도에 대해 Claude 측에서 세션을 종료할 수 있음 (v2.1.214)
Bash의 permission 체크가 전반적으로 fail-closed로 변경: 10,000자 초과 명령어, FD 리다이렉트, zsh의 [[ ]] 인덱스 등이 자동 승인되지 않음 (v2.1.214)
docker의 데몬 리다이렉트 플래그에 확인 절차 추가: --url / --connection / --identity 및 Podman의 리모트 모드가 확인 없이 실행되던 문제 (v2.1.214)
백그라운드 세션의 잔류 및 삭제 불가능 문제 수정: claude rm으로 지울 수 없거나, 유휴(idle) 상태에서도 데몬이 살아남는 등 여러 문제 (v2.1.214)
- v2.1.181 이후, CLI 플래그로 활성화한 plugins(플러그인)이 읽히지 않던 문제 (v2.1.214):
--settings를 통한 plugins 미로드 회귀 현상 수정
.claude/settings.json의 allow 규칙이나 hook의 if: 조건에서 단일 세그먼트인 dir/**를 작성하고 있는 경우, 이번 업데이트로 동작이 변경됩니다. 승인 프롬프트가 늘어나거나 hook이 발화하지 않는다면 우선 이 부분을 의심해 보세요.
대상 독자: Edit(src/**)나 Read(config/**)와 같은 allow 규칙, 혹은 hook의 if: 조건을 .claude/settings.json에 작성하고 있는 사람.
지금까지 Edit(src/**)는 <cwd>/src뿐만 아니라 트리 내 어디에 있는 src/에 대한 쓰기도 자동 승인해 왔습니다. 모노레포(monorepo)에서 packages/foo/src/나 vendor/lib/src/를 건드리면 의도치 않게 통과되었습니다. v2.1.214에서 이것이 <cwd>/src로만 한정되었습니다.
hook의 if: 조건도 같은 방향으로 변경되었습니다. 단일 세그먼트인 dir/**는 <cwd>/dir에만 매치되며, 임의의 깊이에서 매치시키고 싶다면 **/dir/**라고 작성해야 합니다. 단, deny(거부) / ask(확인) permission 규칙은 기존과 동일하게 임의의 깊이에서 매치되므로, 안전 측의 동작은 유지됩니다.
Bash의 permission 체크 측도 일괄적으로 엄격해졌습니다.
- 10,000자를 초과하는 명령어는 항상 프롬프트를 띄움 (이전에는 오판으로 자동 실행되는 경우가 있었음)
- bash가 해석을 달리하는 FD 리다이렉트 형식은 fail-closed 처리. 자동 승인하지 않음
[[ ]] 내의 zsh 변수 인덱스 및 수식어를 '단순 문자열'로 간주하던 것을 수정하여 확인 절차를 거치도록 함
- 일부
help / man 명령어가 위험한 옵션이나 명령어 치환(command substitution)을 실행할 수 있었기에 자동 승인을 철회
모두 분석기(parser)가 구조를 완전히 읽어낼 수 없는 명령어는 자동 승인하지 않는다는 하나의 원칙으로 통일되었습니다.
docker에 데몬 리다이렉트 계열의 플래그가 붙어 있을 때도 확인 프롬프트를 띄우게 되었습니다. 대상은 --url / --connection / --identity 및 Podman의 docker 심(shim) 리모트 모드입니다. 이것들은 접속 대상을 다른 데몬으로 돌리기 때문에, read-only(읽기 전용)라고 생각하고 허가했다가는 예상치 못한 호스트로 명령어가 날아갈 수 있습니다. file 명령어 또한 마찬가지로, -m / --magic-file과 -f / --files-from을 사용하는 형태는 read-only 자동 허가 대상에서 제외되었습니다.
Claude는 악성 사용자나 탈옥 시도에 대해 세션 자체를 종료할 수 있는 EndConversation 툴을 추가했습니다. claude.ai에서는 2025년부터 작동하던 기능이 Claude Code에도 적용된 형태입니다.
Claude can end sessions with highly abusive users or jailbreak attempts
배경에는 공식 리서치에 설명이 있습니다.
백그라운드 세션의 '삭제되지 않거나 남아있는' 종류의 버그들을 모아서 수정했습니다.
←
또는 /background
으로 대피하여 유휴 상태로 방치하면, 데몬과 워커가 무기한으로 살아남았습니다.
- 완료된 세션이 백그라운드 서비스의 유휴 후에도
claude rm
으로도 에이전트 뷰에서도 삭제할 수 없었습니다.
- git 관리 외 폴더에서 시작한 세션이 에이전트 뷰에서 사라지지 않았습니다.
- 교대하는 데몬이 후속 제어 소켓을 삭제하여, 다음 클라이언트가 건전한 후속 데몬을 kill 해버리는 문제
대피 세션을 방치하여 데몬이 남아있던 환경이라면, v2.1.214에서 모두 해결됩니다.
| 버전 | 카테고리 | 변경점 | 개요 |
|---|
| v2.1.214 | 신기능 | 진행률 하트비트 (Progress Heartbeat) | 무음이었던 장시간 툴 실행에 주기적인 진행률 표시 추가 |
| v2.1.214 | 신기능 | OTel 속성 추가 | message.uuid / client_request_id / tool_source를 로그 이벤트에 부여하여, 메시지 상관관계 및 툴 출처 추적이 가능해짐 |
| v2.1.214 | 신기능 | CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH | OTel content 속성의 60 KB 자르기 상한 설정 가능 |
| v2.1.214 | 신기능 | memory frontmatter의 modified | |
| ISO 타임스탬프를 자동 부여 | | | |
| v2.1.214 | 신기능 | subagentStatusLine에 reasoning effort | 커스텀 에이전트 라인에서 모델과 effort를 표시할 수 있게 됨 |
| v2.1.214 | 파괴적 변경 | SessionStart hook의 source | fork로 시작한 세션을 ` |