무엇이 바뀌었나?
Claude Code 2.1.221이 2026년 8월 4일 출시됐습니다. 권한 검사 우회를 막는 보안 수정 두 건이 핵심입니다. zsh의 [[ ]] 정규식 조건문과 Windows 경로의 따옴표를 이용해 권한 확인을 건너뛸 수 있던 경로가 모두 막혔습니다. 여기에 화면에 표시되는 정보를 정리하는 VS Code Focus view, 샌드박스가 자격 증명 파일을 다루는 새 방식(mode: "mask"), 플러그인 설치와 활성화 흐름 개선이 더해졌습니다. 백그라운드 세션의 작업 마무리 방식도 바뀌어, 이제 결과물을 커밋, 푸시하고 어디에 남겼는지 보고합니다.
새 기능
-
VS Code Focus view
VS Code 확장의 대화 화면에는 도구 실행 내역이 모두 펼쳐져 있어, 답변을 따라 읽기 어려웠습니다. 이제 Focus view를 켜면 도구 활동이 턴별 요약 뒤로 접히고, 필요할 때만 펼쳐 볼 수 있습니다. 실행 중인 도구는 요약 줄에 표시됩니다. 채팅 메뉴에서 켜거나
Ctrl+Alt+F, “Claude Code: Toggle Focus view” 명령으로 전환합니다. -
샌드박스 자격 증명 파일의
mode: "mask"샌드박스 안에서 실행되는 명령에 API 키 같은 자격 증명 파일을 넘기려면 파일 접근을 허용하는 수밖에 없었고, 그러면 실제 값이 샌드박스 안에 그대로 노출됐습니다. Linux와 WSL에서는 이제
mode: "mask"를 쓸 수 있습니다. 샌드박스 안의 명령은 가짜 값이 담긴 사본을 읽고, 실제 값은 요청이 밖으로 나갈 때 샌드박스 프록시가 바꿔 넣습니다. 파일 전체를 가리거나extract정규식으로 잡아낸 구간만 가릴 수 있습니다. macOS에서는 파일 마스킹이 지원되지 않아deny로 동작합니다. -
claude-api스킬의prompt-audit서브커맨드이전 세대 모델에 맞춰 쓴 프롬프트나 도구 설명이 최신 모델에서는 불필요하거나 오히려 역효과를 내는 경우가 있는데, 이를 찾아낼 방법이 없었습니다. 이제
claude-api스킬의prompt-audit서브커맨드로 프롬프트와 도구 설명에서 옛 모델 기준으로 작성된 패턴을 점검할 수 있습니다. -
claude plugin validate의 이름 경고마켓플레이스나 플러그인 이름이 Claude Desktop의 관리형 마켓플레이스 동기화에서 거부되는 형식이어도, 배포 전에는 알 수 없었습니다. 이제
claude plugin validate가 해당 이름을 경고로 알려줍니다.
주요 개선
-
백그라운드 세션의 작업 마무리 방식
백그라운드 세션이 작업을 끝내고도 결과물을 어디에 남겼는지 알기 어려웠습니다. 이제 백그라운드 세션은 작업을 보존하기 위해 커밋하고 푸시하며, draft PR은 그럴 필요가 있는 작업일 때만 엽니다. CLAUDE.md에 적어둔 git 관련 지시를 따르고, 마지막에는 작업물이 어디에 있는지 반드시 보고합니다.
-
/plugin install의 카탈로그 갱신 후 재시도마켓플레이스 카탈로그가 오래된 상태면, 실제로는 존재하는 플러그인도 찾을 수 없다고 나왔습니다. 이제
/plugin install이 오래된 카탈로그를 새로 받아 한 번 더 시도한 뒤에 결과를 알려줍니다. -
/plugin으로 설치한 플러그인의 즉시 활성화플러그인을 설치할 때마다
/reload-plugins를 실행해야 반영됐습니다. 이제 안전하게 적용할 수 있는 경우에는 설치 직후 바로 활성화됩니다. -
플러그인의
skills경로로"."허용플러그인 루트에
SKILL.md를 둔 구성을 표현할 방법이 없었습니다. 이제skills경로에"."을 쓸 수 있고, 루트에SKILL.md가 있을 때 나오던 검증 오류 메시지도 플러그인 루트를 쓰라고 안내합니다. -
auto 모드 권한 검사의 캐시 효율
병렬로 실행되는 도구 호출마다 권한 검사가 별도로 이뤄져 프롬프트 캐시를 활용하지 못했습니다. 이제 병렬 도구 호출의 권한 검사가 캐시를 활용하고, 여러 판단에 걸쳐 캐시된 대화 앞부분을 재사용해 프롬프트 캐시 비용이 줄었습니다. 검사가 진행 중일 때 권한 모드를 바꾸면 이전 판단 결과가 적용되지 않고 확인을 다시 요청합니다.
-
Stats 패널의 캐시 토큰 집계
Stats 패널의 토큰 합계에 캐시 토큰이 빠져 있어 실제 사용량과 맞지 않았습니다. 이제 캐시 토큰이 합계에 포함되고, 입력, 출력, 캐시 읽기, 캐시 쓰기로 나눠 표시됩니다.
-
Google Vertex AI의 tool search 재활성화
Vertex AI에서 tool search를 사용할 수 없었습니다. 이제 Claude 4.5 세대 이상 모델에서 다시 사용할 수 있습니다.
-
/status의 세션 종류 표시현재 세션이 대화형인지 백그라운드 작업인지 확인할 방법이 없었습니다. 이제
/status가 세션 종류를interactive, 또는 백그라운드 작업의attached,unattached로 표시합니다. -
/fork가 만든 세션의 별도 워크트리/fork로 갈라낸 세션이 원래 세션의 체크아웃에서 그대로 작업해, 두 세션이 같은 파일을 건드릴 수 있었습니다. 이제 갈라낸 세션은 자기 워크트리를 새로 만듭니다. -
/ultrareview의 오류 메시지리포지토리가 기준 브랜치와 공통 이력을 갖지 않을 때 나오는 메시지가 상황과 맞지 않았습니다. 이제 브랜치가 하나도 없는 체크아웃은 처음부터 거부하고 브랜치를 만들라고 안내하며, 이미 전체 이력을 받은 클론에는
git fetch --unshallow를 권하지 않습니다. -
Windows 시작 시 PowerShell 실행 제거
프로세스 생성 시각을 읽으려고 PowerShell을 실행해서,
powershell.exe실행을 감시하는 엔드포인트 보안 도구가 시작할 때마다 경고를 띄웠습니다. 이제 kernel32 네이티브 호출로 직접 읽습니다. -
fast mode의 크레딧 소진 알림
세션 도중 사용량 크레딧이 떨어지면 별다른 안내 없이 실패했습니다. 이제 fast mode가 스트림에 크레딧 소진을 알립니다.
-
Monitor의 빈 결과 표시
감시 대상이 아무 출력도 내지 않고 끝나면 “stream ended”라고만 표시돼 원인을 알기 어려웠습니다. 이제 출력이 없었다는 사실을 그대로 알려줍니다.
-
Gateway
model필드 검증Gateway의
model필드에 문자열이 아닌 값이 들어와도 그대로 전달됐습니다. 이제 400으로 거부합니다. -
이모지 자동완성의 대체 코드
:thumbsup:같은 흔히 쓰는 대체 표기가 자동완성에서 잡히지 않았습니다. 이제:thumbsup:,:thumbsdown:,:love:등도 인식합니다. -
Claude in Chrome의 탭 정리
Claude in Chrome이 연 브라우저 탭이 계속 남아 있었습니다. 이제 더 필요하지 않으면 스스로 닫습니다.
-
승인 프롬프트의 중복 안내 제거
승인 프롬프트에 “Permission mode changed while the auto-mode classifier call was queued” 안내가 반복해서 표시됐습니다. 이제 표시되지 않습니다.
주요 버그 수정
권한 검사
- zsh에서
[[ ]]정규식 조건문 안에 숨긴 명령이 Bash 도구의 권한 검사를 우회해 그대로 실행되던 문제 수정 — 이제 해당 명령도 권한 확인을 거칩니다. - Windows에서 따옴표가 포함된 경로의 PowerShell 권한 검사가 잘못 처리되던 문제 수정 — 이제 그런 경로도 승인을 요청합니다.
- 플러그인이나 조직에서 배포한 스킬 이름이 터미널 전용 내장 명령(
/help,/feedback등)과 겹치면 비대화형 세션에서 호출할 수 없던 문제 수정.
MCP와 헤드리스 실행
--mcp-config로 지정한 MCP 서버가 print 모드(-p)의 첫 턴 전에 연결되지 않아, 모델이 도구 호출을 그냥 텍스트로 출력하던 문제 수정.constructor처럼 내장 객체 속성과 이름이 겹치는 SDK MCP 도구가 있으면 API 요청을 준비하다 크래시가 나던 문제 수정.- 연결 중인 MCP 서버를 끄면 설정이 조용히 되돌아가던 문제 수정.
- 절전 모드에서 깨어날 때 두 Claude Code 프로세스가 같은 MCP 커넥터나 WIF OAuth 토큰을 동시에 갱신해 재인증을 요구하던 드문 문제 수정.
입력과 세션
- thinking을 끈 채로 시작한 세션에서 thinking 토글이 그 뒤로 아무 효과가 없던 문제 수정.
- Esc로 프롬프트를 취소했다가 다시 보내면 @로 첨부한 파일이 조용히 빠지던 문제 수정.
- Claude Code Desktop이나 claude.ai에서 세션 이름을 바꿔도 CLI 쪽 세션 이름이 그대로이던 문제 수정 — 이제 어느 쪽에서 바꾸든 이름이 정리되어 반영됩니다.
CLAUDE_CODE_RESUME_INTERRUPTED_TURN=0으로도 중단된 턴 자동 재개가 꺼지지 않던 문제 수정 — 이제 거짓 값이 그대로 적용됩니다.- 플러그인을 다시 불러온 뒤에도 “Plugins changed” 알림이 사라지지 않던 문제 수정.
- Vim 모드에서 대화 상자, 히스토리 검색, 트랜스크립트 화면을 거치면 yank 레지스터가 비워지던 문제 수정.
- Vim 모드에서 되돌리기로 프롬프트가 비게 됐을 때 곧바로 agent 화면으로 넘어가던 문제 수정 — 이제 “←를 한 번 더” 확인 단계를 거칩니다.
네트워크와 인증
- thinking이 꺼진 상태에서 effort가
xhigh,max이면 WebSearch가 400 오류로 실패하던 문제 수정. - 샌드박스 프록시를 거치는 대용량 업로드가 TLS 오류로 실패하던 문제 수정.
- Team, Enterprise 요금제의 지출 한도 안내가 개인 지출 한도가 아니라 조직의 월 한도를 원인으로 지목하던 문제 수정.
- Windows에서
HOME환경 변수가 잘못 설정된 경우, 데스크톱이 관리하는 세션에서 AWS SSO 명명 프로필을 쓰는 Bedrock 인증이 실패하던 문제 수정.
알아두면 좋은 점
- 권한 검사 우회 수정이 포함된 릴리스 — zsh의
[[ ]]정규식 조건문과 Windows의 따옴표 포함 경로로 권한 확인을 건너뛸 수 있던 경로가 막혔습니다. 두 경우 모두 이제 승인을 요청합니다. mode: "mask"는 Linux, WSL 전용 — macOS에서는 파일 마스킹이 지원되지 않아deny로 동작합니다.- VS Code Focus view는 직접 켜야 함 — 채팅 메뉴,
Ctrl+Alt+F, 또는 “Claude Code: Toggle Focus view” 명령으로 전환합니다. - 백그라운드 세션이 직접 커밋, 푸시함 — 결과물을 보존하기 위한 동작이며, CLAUDE.md에 적어둔 git 지시를 따릅니다. 자동 커밋을 원하지 않는다면 CLAUDE.md에 방침을 명시해 두는 편이 좋습니다.
- 플러그인 설치 후
/reload-plugins가 항상 필요하지는 않음 —/plugin으로 설치한 플러그인은 안전한 경우 바로 활성화됩니다. - Vertex AI의 tool search는 모델 세대 제한이 있음 — Claude 4.5 세대 이상 모델에서만 사용할 수 있습니다.