claudekit / updates / claude-code-2-1-214
[ PATCH · ]

Claude Code 2.1.214

권한 검사(permission check) 보안 강화가 대거 들어간 릴리스입니다. `Edit(src/**)` 같은 단일 세그먼트 규칙이 트리 어디에 있든 중첩 디렉토리 쓰기를 자동 승인하던 문제, Windows PowerShell 5.1 세션의 권한 우회, 파일 디스크립터 리다이렉트와 1만 자를 넘는 긴 명령을 오판하던 Bash 권한 검사가 모두 안전한 쪽(fail-closed)으로 수정됐습니다. 남용, 탈옥 시도 사용자와의 세션을 종료하는 EndConversation 도구가 추가되고 오래 걸리는 도구 호출에 진행 하트비트가 붙었습니다. 백그라운드 데몬과 세션 수명 주기, Windows PowerShell 도구 안정성, 스트리밍, 프록시 관련 수정도 다수 포함됩니다.

공식 발표 →

이 글은 공식 문서를 바탕으로 요약·정리한 내용입니다.

무엇이 바뀌었나?

Claude Code 2.1.214가 2026년 7월 18일 출시됐습니다. 권한 검사(permission check) 보안 강화가 이번 릴리스의 중심입니다. Edit(src/**) 같은 단일 세그먼트 규칙의 과도한 자동 승인, Windows PowerShell 5.1 권한 우회, 파일 디스크립터 리다이렉트와 1만 자를 넘는 명령을 오판하던 Bash 권한 검사가 모두 안전한 쪽(fail-closed)으로 정리됐습니다. 남용, 탈옥 시도 사용자와의 세션을 종료하는 EndConversation 도구와 오래 걸리는 도구 호출의 진행 하트비트가 새로 추가되고, 백그라운드 데몬과 세션 수명 주기, Windows PowerShell 도구 안정성, 스트리밍, 프록시 관련 수정이 대거 포함됐습니다.

새 기능

  • EndConversation 도구 추가

    Claude가 대화를 스스로 끝낼 수단이 없어, 심하게 남용하거나 탈옥(jailbreak)을 시도하는 사용자와의 세션도 계속 이어졌습니다. 이제 Claude가 그런 세션을 EndConversation 도구로 종료할 수 있습니다. claude.ai에서는 2025년부터 제공되던 안전장치입니다.

  • 오래 걸리는 도구 호출의 진행 하트비트

    오래 실행되는 도구 호출은 완료될 때까지 아무 출력이 없어 멈춘 것처럼 보였습니다. 이제 주기적으로 진행 하트비트를 표시해 작업이 진행 중임을 알 수 있습니다.

  • subagentStatusLine에 reasoning effort 추가

    커스텀 에이전트 행이 모델은 표시해도 reasoning effort는 알 수 없었습니다. 이제 subagentStatusLine 페이로드에 reasoning effort가 포함되어, 커스텀 상태줄에서 모델과 effort를 함께 렌더링할 수 있습니다.

  • 메모리 파일 frontmatter에 modified 타임스탬프

    메모리 파일이 언제 수정됐는지 frontmatter에 기록되지 않았습니다. 이제 ISO 형식의 modified 타임스탬프가 추가됩니다.

  • OpenTelemetry 상관관계, 출처 추적 속성 추가

    로그 이벤트를 메시지 단위로 연결하거나 도구 출처를 추적할 수단이 없었습니다. 이제 message.uuid, client_request_id, tool_source 속성이 추가되고, OTel 콘텐츠 속성의 60KB 절단 한도를 CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH로 조정할 수 있습니다.

주요 개선

  • dir/** hook if: 조건을 <cwd>/dir로만 매칭

    단일 세그먼트 dir/** hook if: 조건이 트리 어디에 있든 dir/에 매칭됐습니다. 이제 <cwd>/dir에만 매칭되며, 임의 깊이 매칭이 필요하면 **/dir/**로 작성합니다. deny, ask 권한 규칙은 기존의 임의 깊이 매칭을 유지합니다.

  • file 명령의 -m/--magic-file, -f/--files-from 권한 요구

    이 옵션들이 읽기 전용으로 간주되어 자동 허용됐습니다. 이제 권한을 요구합니다.

  • stale 연결 후 keep-alive 연결 풀 비활성화

    stale-connection 오류가 나도 연결 풀을 재사용해, 재시도가 같은 끊긴 소켓에 다시 걸렸습니다. 이제 오류 후 keep-alive 풀링을 끄고 재시도 시 새 소켓을 엽니다.

  • SessionStart hook의 fork 소스 구분

    세션이 fork로 시작해도 SessionStart hook이 소스를 "resume"으로 보고했습니다. 이제 fork로 시작하면 "fork"로 보고합니다.

  • claude rc 홈 디렉토리 워크스페이스 신뢰 오류 메시지 개선

    홈 디렉토리에서 발생하는 워크스페이스 신뢰 오류가 명확하지 않았습니다. 이제 홈에서는 신뢰가 저장되지 않는다는 점과 프로젝트 디렉토리에서 실행하라는 안내를 함께 보여줍니다.

주요 버그 수정

권한 검사

  • Edit(src/**) 같은 단일 세그먼트 dir/** allow 규칙이 트리 어디에 있든 중첩 dir/ 디렉토리 쓰기를 자동 승인하던 문제 — 이제 <cwd>/dir에만 적용됩니다.
  • Windows PowerShell 5.1 세션에서 실행한 명령의 권한 검사 우회 수정.
  • bash가 권한 분석기와 다르게 파싱하는 파일 디스크립터 리다이렉트 형식에서 Bash 권한 검사가 fail-closed하지 않던 문제 수정.
  • 1만 자를 초과하는 매우 긴 명령을 Bash 권한 검사가 오판하던 문제 — 이제 자동 실행 대신 항상 확인 프롬프트를 띄웁니다.
  • [[ ]] 비교 안의 zsh 변수 subscript와 modifier를 Bash 권한 검사가 무해한 텍스트로 취급하던 문제 — 이제 이런 명령도 승인을 요구합니다.
  • 일부 help, man 명령이 안전하지 않은 옵션, 명령 치환, 백슬래시 경로를 실행할 수 있는데도 자동 승인되던 문제 수정.
  • 원격 세션의 권한 프롬프트가 로컬 확인 다이얼로그보다 먼저 진행될 수 있던 문제 수정.
  • 데몬 리다이렉트 플래그(--url, --connection, --identity, Podman 원격 모드)를 쓰는 docker 명령(Podman docker shim 포함)이 확인 프롬프트 없이 실행되던 문제 — 이제 권한을 요구합니다.

백그라운드 세션과 데몬

  • 밀려난 백그라운드 데몬이 종료 시 후임 데몬의 컨트롤 소켓을 삭제해, 다음 클라이언트가 정상 교체 데몬을 죽이던 문제 수정.
  • /background로 대기시킨 뒤 방치한 백그라운드 세션이 데몬과 워커 프로세스를 무기한 살려두던 문제 수정.
  • 완료된 백그라운드 세션이 백그라운드 서비스가 유휴 상태가 되면 claude rm이나 agent 뷰로 제거되지 않던 문제 수정.
  • 비git 폴더에서 디스패치된 백그라운드 세션을 agents 뷰에서 삭제할 수 없던 문제 수정.
  • 세션 스토어에 읽을 수 없는 폴더가 있으면 중지된 백그라운드 세션을 다시 열 때 저장된 대화가 복원되지 않던 문제 수정.
  • Remote Control이 명시적으로 활성화되지 않은 세션에도 “session ready” 푸시 알림이 발송되던 문제 수정.
  • /install-github-app/mcp 설정 메뉴가 agent-view 세션에서 차단되던 문제 — 이제 터미널이 연결되지 않은 백그라운드 세션에서만 거부됩니다.

Windows와 PowerShell 도구

  • 기업 프록시 뒤 Windows에서 스트리밍 턴이 “Socket is closed”로 실패하던 문제 수정.
  • 자식 프로세스가 표준 입력을 기다릴 때 PowerShell 도구 명령이 타임아웃까지 멈춰 있던 문제(Windows) 수정.
  • PowerShell 도구로 실행한 Python 스크립트가 표준 입력에서 비UTF-8 데이터를 읽을 때 UnicodeDecodeError로 크래시하던 문제(Windows) 수정.
  • PowerShell 도구로 실행한 Python 스크립트가 비ASCII 출력에서 UnicodeEncodeError로 크래시하고, PowerShell 7 오류 메시지에 raw ANSI escape 시퀀스가 섞이던 문제(Windows) 수정.
  • PowerShell 도구가 where.exe, fc.exe, diff.exe의 유효한 음수 반환을 오류로 보고하던 문제(Windows) 수정.
  • Windows PowerShell 5.1에서 >, >>가 다른 도구가 UTF-8로 읽지 못하는 UTF-16LE 파일을 쓰던 문제 수정.

스트리밍과 텔레메트리

  • 느리게 읽는 SDK/파이프라인 소비자에서 종료 시 stream-json 출력이 잘리던 문제 — 종료 드레인이 고정 2초 상한 대신 대기 중인 바이트 양에 맞춰 확장됩니다.
  • 여러 누적 message_delta 프레임을 방출하는 스트림에서 세션 비용과 토큰 텔레메트리가 이중 집계되던 문제 수정.
  • 턴의 async 컨텍스트 밖에서 방출된 OTel 로그 이벤트가 interaction span의 trace 컨텍스트를 누락하던 문제 수정.
  • 긴 세션에서 OAuth 토큰이 회전한 뒤 feature flag가 stale해지던 문제 수정.
  • GrowthBook feature가 null로 평가될 때의 크래시와, malformed 플래그 페이로드가 캐시된 feature flag를 지우던 버그 수정.

기타

  • pkill -f 패턴이 CLI 자신의 프로세스에 우연히 매칭되면 Bash 도구가 Claude 세션을 죽이던 문제(Linux) 수정.
  • --settings가 디바이스 파일이나 수 GB 파일을 가리킬 때 메모리가 무한정 늘던 문제 — 이제 2MiB를 초과하는 설정 파일은 시작 시 명확한 오류와 함께 실패합니다.
  • 예약 작업이 자신에게 설정된 프롬프트를 신뢰할 수 없는 입력으로 거부하던 문제 — 이제 발사된 프롬프트가 세션에 배정된 작업으로 전달됩니다.
  • --settings CLI 플래그로 활성화한 플러그인이 로드되지 않던 문제(2.1.181 이후 회귀) 수정.
  • /ultrareview가 머지 베이스가 없는 리포에서 실행을 거부하던 문제 — 이제 추적되는 전체 파일을 리뷰하도록 제안합니다.
  • 셸 설정 경로가 디렉토리일 때 claude updateclaude doctor가 조용히 멈추고 /status 시스템 진단 섹션이 비던 문제 수정.
  • 메모리 파일 저장 시 frontmatter 값이 인라인 #에서 조용히 잘리던 문제 수정.
  • advisor가 생각하는 동안 나타나던 잘못된 “check your network” 경고 수정.
  • exit code 2인 hook이 stdout JSON의 스키마 검증에 실패하면 문서대로 차단하지 않던 문제 수정.
  • 프롬프트/리소스 갱신 중 MCP 일시적 오류가 서버의 슬래시 명령과 리소스를 지우던 문제 수정.

알아두면 좋은 점

  • 권한 규칙을 쓰는 사용자는 동작 재확인 권장 — 단일 세그먼트 dir/** allow 규칙이 이제 트리 전체가 아니라 <cwd>/dir에만 적용됩니다. 임의 깊이 매칭이 필요하면 **/dir/**로 다시 작성하세요. 단, deny, ask 규칙은 기존의 임의 깊이 매칭을 유지합니다.
  • Bash 권한 검사가 더 보수적으로 동작 — 1만 자를 초과하는 명령, [[ ]] 안의 zsh subscript/modifier, 파일 디스크립터 리다이렉트, 일부 help/man 명령이 이제 자동 실행 대신 확인 프롬프트를 띄웁니다. 이전에 자동 승인되던 명령이 확인을 요구할 수 있습니다.
  • docker 명령 권한 변경 — 데몬 리다이렉트 플래그(--url, --connection, --identity, Podman 원격 모드)를 쓰는 docker/Podman 명령이 이제 확인을 요구합니다. 자동화 스크립트에서 이런 플래그를 쓴다면 권한 규칙 조정이 필요할 수 있습니다.
  • EndConversation은 claude.ai에서 이미 운영되던 안전장치 — Claude Code에 새로 들어왔지만, claude.ai에서는 2025년부터 심한 남용, 탈옥 시도에 적용돼 온 기능입니다.