Claude Code 2.1.129 업데이트

💡

`--plugin-url`로 .zip 플러그인을 URL에서 바로 로드할 수 있고, Homebrew·WinGet 설치본이 백그라운드 자동 업그레이드를 지원합니다. Ctrl+R 히스토리가 다시 전체 프로젝트 검색으로 돌아왔고, Gateway `/v1/models` 자동 탐색은 환경변수 옵트인으로 바뀌었습니다. 1시간 프롬프트 캐시 TTL이 5분으로 강등되던 회귀와 OAuth 깨우기 후 로그아웃, `/context` 토큰 낭비 등 다수 버그도 함께 수정되었습니다.

🔗 공식 발표 →

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

무엇이 바뀌었나?

Claude Code 2.1.129가 2026년 5월 6일(현지 시간) 릴리스되었습니다. 플러그인 배포·설치 동선을 단순화하는 새 플래그·환경변수가 추가되었고, 2.1.124~2.1.128 사이에 들어간 몇몇 동작이 옵트인으로 되돌려졌습니다. 1시간 프롬프트 캐시 TTL이 조용히 5분으로 강등되던 회귀, 깨우기 후 OAuth refresh 레이스로 모든 세션이 로그아웃되던 문제, /context가 ASCII 그리드를 대화창에 덤프하며 토큰을 낭비하던 문제 등 운영 영향이 큰 버그들이 폭넓게 정리되었습니다.

새 기능

  • --plugin-url <url> — URL에서 .zip 플러그인을 바로 로드

    로컬 경로(--plugin-dir)나 마켓플레이스 등록 없이 시험해보고 싶은 경우, 압축 파일을 직접 내려받아 풀어두는 단계가 필요했습니다. 이제 --plugin-url.zip 아카이브 URL을 넘기면 현재 세션에서 그대로 가져와 로드됩니다.

  • CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 — 동기화 출력 강제 활성화

    Emacs eat처럼 자동 감지 로직이 놓치는 터미널에서는 동기화 출력(synchronized output)이 꺼진 채 동작해 화면 깜박임·중첩 출력이 발생했습니다. 이 환경변수를 1로 두면 자동 감지 결과를 무시하고 동기화 출력을 강제로 켭니다.

  • CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE — Homebrew·WinGet 자동 업그레이드

    Homebrew·WinGet으로 설치한 환경에서는 업그레이드를 사용자가 직접 실행해야 했습니다. 이 변수를 설정해두면 Claude Code가 백그라운드에서 패키지 매니저의 업그레이드 명령을 실행하고 완료 후 재시작 안내를 띄웁니다.

주요 개선

  • Gateway /v1/models 탐색이 옵트인으로 변경

    2.1.126~2.1.128에서는 /model 피커가 게이트웨이의 /v1/models를 자동 호출해 모델 목록을 가져왔습니다. 이번 릴리스부터는 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1을 명시적으로 설정한 경우에만 동작합니다.

  • Ctrl+R 히스토리 검색이 전 프로젝트 기본으로 복귀

    2.1.124에서 Ctrl+R 히스토리 피커가 기본적으로 현재 프로젝트만 검색하도록 바뀌면서 다른 프로젝트의 프롬프트가 보이지 않게 됐습니다. 이번 릴리스에서 2.1.124 이전처럼 모든 프로젝트의 프롬프트를 기본 검색하도록 되돌렸고, 현재 프로젝트나 세션으로 좁히고 싶을 때는 Ctrl+S를 누르면 됩니다.

  • 타사 배포에서 1st-party 안내 스피너 팁 차단

    Bedrock·Vertex·Foundry·ANTHROPIC_BASE_URL 게이트웨이로 운영하는 환경에서도 Anthropic 1st-party 기능(claude.com/plugins 등)을 가리키는 스피너 팁이 노출되던 문제가 정리되었습니다.

  • skillOverrides 설정이 실제 적용

    설정값이 정의돼 있었지만 실제 동작이 연결돼 있지 않았습니다. 이제 off는 모델과 / 피커 모두에서 숨김, user-invocable-only는 모델에서만 숨기고 /로는 호출 가능, name-only는 설명을 접어 이름만 노출합니다.

  • claude_code.pull_request.count OTel 메트릭이 MCP 경로도 집계

    PR·MR 생성 카운트가 셸 명령으로 만든 경우만 잡혀 MCP 도구로 만든 PR이 누락됐습니다. 이번 변경으로 MCP 도구를 통해 생성한 PR/MR도 함께 집계됩니다.

  • Policy refusal 오류에 API Request ID 포함

    정책으로 거부된 요청을 디버깅·서포트로 넘길 때 어떤 요청인지 식별할 수 없어 추적이 어려웠습니다. 이제 거부 메시지에 API Request ID가 함께 표시됩니다.

  • 플러그인 매니페스트의 themes·monitors"experimental": { ... } 아래로 이동 권장

    최상위 선언도 계속 동작하지만 claude plugin validate가 경고를 표시합니다. 향후 안정화 전까지는 실험적 영역에서 관리됩니다.

주요 버그 수정

세션·UI

  • 알 수 없는 400 상태 코드를 가진 API 오류가 원본 오류 메시지 대신 raw JSON으로 표시되던 문제 수정.
  • /clear가 대화 종료 후 터미널 탭 타이틀을 초기화하지 않던 문제 수정.
  • 권한 다이얼로그 등이 떠 있는 동안 /rename으로 만든 세션 타이틀 칩이 사라지던 문제 수정.
  • 서브에이전트 실행 중 프롬프트 아래 에이전트 패널이 가려지던 문제 — 2.1.122 회귀 수정.
  • 외부 에디터 핸드오프(Ctrl+G)가 프롬프트 위 대화 기록을 비워버리던 문제 수정.
  • /context가 ASCII 시각화 그리드를 대화창에 덤프하며 호출당 약 1.6k 토큰을 낭비하던 문제 수정.
  • /agents Library 목록에서 화살표 키로 이동할 때 강조 항목이 뷰포트를 벗어나 보이지 않던 문제 수정.
  • /branch 성공 메시지에 새 브랜치의 세션 id가 빠져 /resume으로 이어가기 어려웠던 문제 수정.
  • 풀스크린 모드에서 keycap·ZWJ·스킨톤 이모지가 포함된 굵은 헤더가 끝부분 문자를 잃던 문제 수정.
  • --debug 음성 모드에서 무해한 WebSocket 경고가 에러로 로깅되던 문제 수정.

권한·인증·정책

  • user:inference 스코프가 없는 OAuth 자격으로 저장된 엔터프라이즈·팀 사용자에게 server-managed settings 정책이 적용되지 않던 문제 수정.
  • 슬립에서 깨어난 직후 OAuth refresh 레이스로 실행 중인 모든 세션이 로그아웃되던 문제 수정.
  • Bash(mkdir *), Bash(touch *) 같은 allow 규칙이 프로젝트 내부 경로에서 인정되지 않던 문제 수정.
  • deniedMcpServers*:// 스킴 와일드카드가 대소문자 섞인 호스트명에 매칭되지 않던 문제 수정.

캐시·모델

  • 1시간 프롬프트 캐시 TTL이 조용히 5분으로 강등되던 문제 수정.
  • /clear 또는 압축 후 /effort·/model을 변경하면 cache-miss 경고가 잘못 뜨던 문제 수정.

VSCode

  • /clear가 대화 컨텍스트와 표시된 트랜스크립트를 비우지 않던 문제 수정.

알아두면 좋은 점

  • Gateway 모델 자동 탐색은 옵트인 — 2.1.126~2.1.128에서 자동으로 동작하던 /v1/models 호출이 더 이상 기본 동작이 아닙니다. 게이트웨이의 모델 목록을 /model 피커에 채우려면 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1을 환경변수로 설정해야 합니다.
  • Ctrl+R 기본 동작 복귀 — 현재 프로젝트만 검색하던 2.1.124~2.1.128의 기본값이 전체 프로젝트 검색으로 되돌아왔습니다. 좁힘이 필요하면 Ctrl+S로 토글하세요.
  • Homebrew·WinGet 자동 업그레이드는 옵트인CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE를 설정하지 않으면 기존처럼 수동 업그레이드 흐름을 그대로 유지합니다.
  • 플러그인 매니페스트 마이그레이션 권고 — 최상위에 선언된 themes·monitorsclaude plugin validate 경고가 뜨므로, 향후를 대비해 "experimental": { ... } 아래로 이동해두는 것이 좋습니다.
  • 1시간 프롬프트 캐시 TTL 정상화 — 1시간 TTL을 사용하도록 설정한 워크플로가 실제로는 5분으로 동작했을 가능성이 있습니다. 이번 수정 후 의도된 캐시 적중률·비용 곡선이 회복되는지 확인해보세요.