무엇이 바뀌었나?
Claude Code 2.1.239가 2026년 8월 21일 출시됐습니다. 새 기능보다 수정이 중심인 릴리스로, 50건이 넘는 변경 가운데 대부분이 버그 수정입니다. 영향이 가장 큰 것은 Bedrock 스트리밍 수정입니다. 응답의 Content-Type 헤더를 지우는 프록시 뒤에서는 매 턴이 스트리밍 없이 한 번 더 실행돼, 청구되는 API 호출이 아무 표시 없이 두 배가 되고 있었습니다. 비용 표시도 손봐서 데이터 레지던시 워크스페이스의 1.1배 요금이 이제 계산에 들어갑니다. 나머지 수정은 세션 재개(/resume), 전체 화면 표시, 프롬프트 입력 편집에 몰려 있습니다.
새 기능
-
/claude-api upgradePython 프로젝트를
anthropic0.x에서 1.x로 옮기려면 바뀐 부분을 직접 찾아 고쳐야 했습니다. 이제/claude-api upgrade가 이 이전 작업을 대신합니다. 기본 제공claude-api스킬의 Python 참고 문서도 1.x 기준으로 갱신돼, 타임아웃을httpx.Timeout이 아니라anthropic.Timeout으로 설정하도록 바뀐 부분 등이 반영됐습니다. -
Windows의 세션 간 메시징
이 기능은 macOS와 Linux에서만 쓸 수 있어, Windows에서는 여러 대의 컴퓨터에 떠 있는 Claude Code 세션끼리 서로를 찾거나 메시지를 주고받을 수 없었습니다. 이제 Windows에서도
SendMessage로 메시지를 보내고ListAgents로 상대를 찾을 수 있습니다.
주요 개선
-
데이터 레지던시 워크스페이스의 비용 계산
미국 내 추론만 사용하는 데이터 레지던시(data residency) 워크스페이스는 요금이 1.1배인데,
/cost와 상태 표시줄,--max-budget-usd의 계산에는 이 배수가 빠져 있어 실제 청구액보다 낮게 보였습니다. 이제 세 곳 모두 1.1배를 반영해 계산합니다. -
Bedrock, Vertex, Foundry에서도 전체 화면 렌더러 안내
이 설정들은 안내 대상에서 빠져 있어 전체 화면 렌더러를 한 번 물어보는 안내가 나오지 않았습니다. 이제 안내가 표시되고, 이 환경에 새로 설치한 경우 전체 화면으로 시작합니다.
-
claude.ai에서 동기화된 플러그인 구분 (클라우드 세션)
claude.ai에서 동기화된 플러그인과 직접 설치한 플러그인이 이름만으로는 구분되지 않아, 이름이 같으면 서로 덮어쓸 수 있었습니다. 이제 동기화된 것은
name@synced로 표시되고claude plugin enable/disable <name>@synced로 켜고 끌 수 있으며, 같은 이름으로 직접 설치한 플러그인을 덮어쓰지 않습니다. -
Alpine, musl 환경의 추가 기능 로딩
Alpine처럼 musl을 쓰는 환경에서는 이미지 붙여넣기, 클립보드, 음성 녹음 추가 기능이 glibc용으로 빌드돼 있어 실행 환경이 로드를 거부했습니다. 이제 musl로 빌드된 바이너리가 제공돼 정상적으로 로드됩니다.
-
사용 한도 안내에 세션, 주간 한도 재설정 시점 표시
월 지출 한도를 이미 다 쓴 상태에서 뜨는 안내는 그 사실만 알려 줘, 언제 다시 쓸 수 있는지 알 수 없었습니다. 이제 세션 한도와 주간 한도가 언제 재설정되는지도 함께 표시합니다.
-
압축(compaction) 이후 안내 문구 — 대화를 압축한 뒤 표시되는 안내 때문에 스킬에 넘겼던 원래 인자가 새 요청으로 다시 실행되는 일이 있었습니다. 안내 문구가 이를 유도하지 않도록 개선됐습니다.
-
/goal의 반복 확인 간격 — 오래 걸리는 백그라운드 작업의 확인을 30분마다 반복하던 것이, 이제 30분, 1시간, 이후 2시간마다로 간격이 늘어납니다.claude --resume목록에서 세션을 다시 열면 그 세션의 활성 목표도 복원됩니다. -
ListAgents가 자기 이름과 팀원을 알려 줌 — 세션이 자기 이름(다른 세션이 메시지를 보낼 때 쓰는 이름)을 알 방법이 없었습니다. 이제ListAgents가 자기 이름을 함께 알려 주고, 자기 이름으로SendMessage를 보내면 “그런 에이전트가 없다”는 응답 대신 자기 자신임을 알려 줍니다. 또ListAgents와/list-agents는 서브에이전트와 다른 세션에 더해 실행 중인 팀원(teammate)도 목록에 표시합니다. 이전에는 연결 가능한 팀원이 없는 것처럼 보였습니다. -
keybindingFlavor: "readline"의 단어 단위 키 —"readline"으로 설정해도 단어 단위 이동, 삭제 키의 동작은 Bash와 달랐습니다. 이제 Alt+F와 Ctrl/Option+→는 단어 끝에서 멈추고, Alt+D는 거기까지 지우며(Ctrl+Y로 되돌릴 수 있음), 구두점이 단어 경계로 취급됩니다. -
지속 재시도 모드의 즉시 실패 조건 —
CLAUDE_CODE_RETRY_WATCHDOG를 켜면 조직 지출 한도 초과나 크레딧 소진 오류에도 한도가 재설정되기를 무한정 기다렸습니다. 이제 이 두 경우에는 곧바로 실패합니다. -
원격 세션의 긴 시작 훅 —
SessionStart나Setup훅이 오래 걸리면 컨테이너가 유휴 상태로 판단돼 훅 도중에 회수됐습니다. 이제 훅이 실행되는 동안에도 keep-alive를 계속 보냅니다. -
모바일에서 올린 이미지의 파일 경로 — 원격 세션에서 휴대폰으로 올린 이미지에 저장 경로가 없어, Claude가 만드는 파일에 그 이미지를 복사해 넣을 수 없었습니다. 이제 저장된 파일 경로가 함께 전달됩니다.
-
Claude in Chrome의 탭 그룹 정리 —
/clear를 실행하면 이제 그 세션의 Chrome 탭 그룹이 닫히고, 빈 그룹은/resume때와 Claude Code 종료 때 함께 닫힙니다. -
웹에서 실행하는 세션의 네트워크 경로 — Claude Code on the web에서 Bash 등이 API가 아닌 anthropic.com 호스트(www, docs 등)로 보내는 요청이 세션의 네트워크 프록시를 거치지 않았습니다. 이제 프록시를 거치므로 환경에 설정한 허용 도메인이 그대로 적용됩니다.
-
Remote Control 미사용 계정 안내 — 계정에 Remote Control이 켜져 있지 않을 때 나오는 메시지와
claude doctor의 문구가 명확해졌습니다. -
긴 파일 경로 표시 — 도구 실행 줄의 긴 파일 경로는 이제 가운데를 줄여 한 줄에 표시됩니다.
-
[VSCode] 사용 한도 배너 — 배너의 “View usage”가 중간에 떠 있지 않고 경고 문구와 같은 줄에 놓입니다.
주요 버그 수정
Bedrock과 프록시
- 응답의 Content-Type 헤더를 지우는 프록시 뒤에서 Bedrock 스트리밍이 실패하던 문제 수정. 매 턴이 스트리밍 없이 다시 실행돼, 청구되는 API 호출이 아무 표시 없이 두 배가 됐습니다.
- HTTPS 프록시 뒤에서 Bedrock을 SSO 프로필과
awsAuthRefresh로 쓸 때 시작 단계에서 멈추던 문제 수정. 자격 증명 사전 확인이 이제HTTPS_PROXY설정을 따릅니다. - 조직 정책 검사에서 거부된 요청이 거부 사실이 표시되기 전에 다시 전송되던 문제 수정.
세션 재개와 세션 목록
- 이름을 바꾼 뒤 대화가 약 64KB 넘게 쌓이면 직접 지정한 세션 제목이
/resume에서 사라지던 문제 수정. claude -c와 재개가_,-,.같은 문자만 다른 경로의 세션을 불러오던 문제 수정.- 파일이 건드려지기만 했거나 단순히 다시 열었을 뿐인 세션이
/resume과 에이전트 화면에서 최근 변경된 것으로 표시되고 순서가 앞당겨지던 문제 수정. /resume의 전체 프로젝트 모드가 이미 삭제된 디렉터리(제거된 워크트리 등)로cd하라고 안내하던 문제 수정. 이제 그런 세션은 현재 디렉터리에서 재개됩니다.- 프롬프트를 대기열에 넣어 둔 채 Esc를 누르면 다음 턴이 먼저 끝난 것으로 처리되던 문제 수정. Claude가 아직 작업 중인데 세션이 유휴 상태로 보였고, 이후 다시 제출하면 같은 작업이 반복될 수 있었습니다.
- 클라우드 세션(웹, 데스크톱, 모바일 앱)이 유휴 작업자 재시작 이후 plan mode에서 빠져나온 상태로 재개되던 문제 수정.
- 두 개의 Claude Code 프로세스가 하나의 백그라운드 작업 상태를 공유할 때 세션 제목이 Remote Control로 끝없이 동기화되던 문제(2.1.232 회귀) 수정. 이제 제목 갱신은 중복이 제거되고 빈도가 제한됩니다.
- 제목이
/로 시작하는 세션에SendMessage로 메시지를 보낼 수 없고ListAgents에 “(untitled)“로 표시되던 문제 수정.
MCP
- MCP elicitation(사용자에게 추가 정보를 묻는) 창이 터미널보다 길면 전체 화면 모드에서 잘려 보이던 문제 수정. 이제 창 크기에 맞춰 표시되고, 가려진 항목은 스크롤로 볼 수 있으며 Accept, Decline은 항상 보입니다.
- 원격 MCP 서버가 세션 도중 재연결에서 일시적인 5xx를 만나면 실패 상태로 남아 있던 문제 수정. 클라우드 세션과 SDK
setMcpServers()사용 시 나타났습니다.
화면과 전체 화면 모드
dark-ansi테마에서 펼친 도구 실행 결과가 배경과 같은 색으로 표시되던 문제 수정.- 답할 수 없는 상황인데도 전체 화면 렌더러 안내가 실행할 때마다 다시 뜨던 문제 수정. 이제 세 번 표시한 뒤에는 나오지 않습니다.
- 브라우저 기반 터미널에서 마우스를 움직이면
"35;150;7M"같은 문자열이 프롬프트에 입력되던 문제 수정. 마우스 신호가 여러 번에 나뉘어 전달될 때 발생했습니다. - effort, ultracode 상태 배지 색상에 지정한 사용자 테마가 무시되던 문제 수정.
- 전체 화면에서 다른 창에 있다가 터미널 창을 다시 선택하려고 클릭했을 뿐인데 권한 확인에 답하거나 버튼이 눌리던 문제 수정.
- 전체 화면에서
/config,/model같은 슬래시 명령 창이 최근 메시지를 가리던 문제 수정. 이제 대화가 창 위쪽에 고정됩니다. - Claude가 응답하는 중에 연
/workflows상세 창이 터미널을 넘어가 제목 부분이 화면 밖으로 밀려나던 문제 수정. - JetBrains IDE 터미널에서 Claude Code 플러그인이 연결돼 있으면 Edit, Write 실행이 약 5초씩 멈추던 문제 수정.
프롬프트 입력 편집
- 에이전트 화면의 vim 모드에서 Escape가 입력한 내용을 지우던 문제 수정. 이제 내용을 유지한 채 NORMAL 모드로 전환합니다.
- Shift+화살표로 늘린 선택 영역이
selection:copy단축키에서 아무 표시 없이 무시되던 문제 수정. - 커서가
[Pasted text #N]표시 안에 있을 때 Ctrl+W, Ctrl+U, Ctrl+K, Option+Backspace, Option+D와 vim의df,dt가 깨진 표시를 남기던 문제 수정. - 로그인 코드 입력란처럼 가려진 입력의 내용이 다른 곳에서 Ctrl+Y로 붙여넣어지거나, Esc를 두 번 눌러 지웠을 때 프롬프트 기록에 저장되던 문제 수정.
- 검색 입력란에서 Ctrl+Backspace가 단어가 아니라 한 글자만 지우던 문제 수정.
- 셸 모드(
!)의 Tab 완성이./script경로에서./를 빼 버리던 문제 수정. 셸이 실행할 수 없는 명령이 남았습니다. voice.enabled설정으로 음성 입력을 켠 뒤에도/voice시작 안내가 계속 뜨던 문제 수정.
설정 파일과 실행 환경
.worktreeinclude패턴 적용 — 대상이 gitignore된 디렉터리에 있으면**/로 시작하는 패턴이 아무 안내 없이 아무것도 찾지 못하던 문제 수정.- 에이전트, 스킬, 명령의
.md파일이 UTF-8 BOM으로 시작하면 아무 안내 없이 무시되던 문제 수정. - 마켓플레이스의
metadata.pluginRoot가 적용되지 않던 문제 수정. 이제 이름만 적은 플러그인 소스가 문서 설명대로 그 경로 아래에서 해석됩니다. claudeMdExcludes가 심볼릭 링크로 연결된.claude/rules파일을 제외하지 못하던 문제 수정. 패턴이 링크가 가리키는 대상이 아니라 rules 디렉터리나 링크 자체를 가리킬 때 발생했습니다.- Linux 샌드박스가 존재하지 않는
.git/config.worktree를 읽을 수 없게 만들던 문제 수정.extensions.worktreeConfig가 설정된 저장소에서는 샌드박스 안의 git 명령이 전부 실패했습니다. - 세션의 작업 디렉터리가 삭제된 뒤 훅이 “posix_spawn ENOENT”로 실패하던 문제 수정. 이제 프로젝트 최상위나 홈 디렉터리에서 실행됩니다.
- 이미 없어진 디렉터리에서 Claude Code를 실행하면 크래시 덤프가 그대로 출력되던 문제 수정. 이제 원인을 알려 주는 메시지가 표시됩니다.
- WebFetch가 만료된 페이지 내용을 의도한 15분이 아니라 세션이 끝날 때까지 메모리에 들고 있던 문제 수정.
- 일부 모델에서
/insights응답에<message>태그가 그대로 출력되던 문제 수정. - OpenTelemetry 추적이 나뉘던 문제 수정.
PreToolUse훅이 미뤄 둔 도구 실행이 새 추적을 시작하지 않고 원래 턴의 추적에서 이어집니다.
알아두면 좋은 점
- Bedrock을 프록시 뒤에서 쓰고 있었다면 지난 청구액을 확인해 볼 만합니다 — 응답의 Content-Type 헤더를 지우는 프록시 뒤에서는 매 턴이 스트리밍 없이 한 번 더 실행돼, 이 릴리스 전까지 API 호출이 두 배로 청구되고 있었습니다.
/cost숫자가 올라 보여도 요금이 오른 것은 아닙니다 — 데이터 레지던시 워크스페이스는 원래부터 1.1배 요금이었고, 이번 변경은 그 배수를/cost, 상태 표시줄,--max-budget-usd계산에 반영한 것입니다.- 전체 화면 안내는 세 번까지만 표시됩니다 — Bedrock, Vertex, Foundry에서는 이번 릴리스부터 이 안내가 처음 나타나며, 이 환경에 새로 설치한 경우 전체 화면으로 시작합니다.
- Windows에서도 세션 간 메시징을 쓸 수 있습니다 — macOS, Linux와 같은 방식으로
SendMessage와ListAgents가 동작합니다. - claude.ai에서 동기화된 플러그인은
name@synced로 다룹니다 — 켜고 끄려면claude plugin enable/disable <name>@synced를 사용합니다. 같은 이름으로 직접 설치한 플러그인은 덮어쓰이지 않습니다. CLAUDE_CODE_RETRY_WATCHDOG는 이제 한도 초과를 기다리지 않습니다 — 조직 지출 한도 초과와 크레딧 소진은 재시도 대상이 아니라 즉시 실패로 처리되므로, 결제나 한도 조정이 필요합니다.