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

Claude Code 2.1.229

플러그인 마켓플레이스를 로컬 명령으로 지정할 수 있게 됐습니다. 명령이 플러그인 폴더 경로를 출력하면 세션마다 다시 확인해 재시작 없이 반영합니다. Vertex와 Bedrock 연결에서는 모델이 오래 생각하는 동안 keepalive 신호를 보내 대기 시간 초과로 끊기던 문제를 막고, 셀프호스티드 러너 세션도 관리형 환경과 같은 방식으로 서버가 내려주는 훅을 받습니다. 크래시 수정이 여러 건 포함됐습니다. 좁은 터미널에서 진행 막대나 표를 그릴 때, 도구 호출 값이 문자열이 아닐 때, Windows에서 특수 형식 경로를 참조할 때 발생하던 크래시가 수정됐고, 긴 응답이 스트리밍 도중 일부 사라지고 두 번 출력되던 문제도 함께 고쳐졌습니다. `/commit-push-pr`은 `--force`, `--amend`, `--no-verify` 같은 위험한 플래그가 붙은 명령을 더 이상 자동 승인하지 않습니다.

공식 발표 →

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

무엇이 바뀌었나?

Claude Code 2.1.229가 2026년 8월 12일 출시됐습니다. 분량이 큰 릴리스로, 추가 5건과 수정 18건, 그 밖의 변경 9건으로 이뤄져 있습니다. 새로 들어온 기능은 플러그인 배포와 원격 실행 환경에 몰려 있고, 수정은 크래시와 화면 출력 오류에 집중돼 있습니다. /commit-push-pr의 위험한 git 명령 자동 승인이 중단되고 Windows 셀프호스티드 러너에 --base-dir이 필수가 되는 등, 기존 사용 방식이 달라지는 변경도 두 건 포함됐습니다.

새 기능

  • 플러그인 마켓플레이스를 로컬 명령으로 지정

    마켓플레이스는 고정된 경로나 원격 저장소를 가리켜야 했습니다. 플러그인이 놓이는 위치가 사람마다 다르거나 IDE 같은 다른 프로그램이 관리하는 경우에는, 그 경로를 설정 파일에 직접 적어 두고 위치가 바뀔 때마다 고쳐야 했습니다. 이제 마켓플레이스 소스로 command 방식을 쓸 수 있습니다. 지정한 로컬 명령이 플러그인 폴더 경로를 출력하면 Claude Code가 세션을 시작할 때마다 그 명령을 다시 실행해 경로를 확인하고, 재시작 없이 반영합니다. mode: "link"를 지정하면 플러그인을 복사하지 않고 그 위치에 있는 것을 그대로 사용합니다.

  • 셀프호스티드 러너 세션에서도 서버가 내려주는 훅 적용

    관리형 환경(managed environment)에서는 서버가 훅을 내려보내 세션에 적용할 수 있었지만, 직접 운영하는 러너에서 돌아가는 세션에는 이 방식이 적용되지 않았습니다. 조직 차원의 훅 정책을 러너 쪽에 따로 심어 두어야 했습니다. 이제 셀프호스티드 러너 세션도 관리형 환경과 같은 방식으로 서버가 제공하는 훅을 받습니다.

  • 긴 사고 구간에서 연결이 끊기지 않도록 keepalive 신호 전송

    Vertex와 Bedrock을 거쳐 스트리밍 응답을 받을 때, 모델이 오래 생각하는 동안에는 데이터가 흐르지 않습니다. 그 사이 중간 구간이 연결을 놀고 있는 것으로 판단해 대기 시간 초과로 끊어 버리는 일이 있었습니다. 이제 게이트웨이의 스트리밍 응답에 SSE keepalive ping(연결이 살아 있음을 알리는 빈 신호)을 보내 이런 끊김을 막습니다.

  • claude remote-control --continue로 최근 세션 재개

    가장 최근에 쓰던 Remote Control 세션을 다시 이어 갈 수 있는 --continue 옵션이 문서에 명시됐습니다. 세션을 고르지 않고 바로 직전 것을 이어 받을 때 사용합니다.

  • VS Code 사이드바의 세션 그룹

    세션이 늘어나면 사이드바 목록에서 원하는 것을 찾기 어려웠습니다. 이제 사이드바에서 세션을 그룹으로 묶을 수 있습니다. 오른쪽 클릭으로 그룹을 만들고 이름을 바꾸거나 지울 수 있으며, Cmd 또는 Ctrl 클릭과 Shift 클릭으로 여러 세션을 한 번에 옮길 수 있습니다.

주요 개선

  • ListAgents가 끊긴 세션과 클라우드 세션을 구분해 표시

    ListAgents 목록에는 이미 연결이 끊긴 Remote Control 세션도 그대로 남아 있어서, 살아 있는 세션과 구분되지 않았습니다. 이제 연결이 끊긴 Remote Control 세션은 offline으로 표시되고, 내 클라우드 세션에는 cloud 라벨이 붙습니다.

  • 워크플로 팬아웃에서 프롬프트 앞부분 캐시 재사용

    동적 워크플로가 앞부분이 같은 형제 에이전트를 한꺼번에 띄우면, 첫 에이전트가 캐시를 만들기 전에 나머지도 함께 출발해 각자 같은 앞부분 비용을 다시 냈습니다. 이제 앞부분이 같은 형제 에이전트는 시간차를 두고 출발하므로, 뒤따르는 에이전트가 캐시된 프롬프트 앞부분을 읽습니다. CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0으로 끌 수 있습니다.

  • “prompt is too long” 오류에 이유 설명 추가

    이 오류는 /compact를 실행해 보라는 안내만 보여 줬습니다. 자동 압축이 이미 시도됐지만 실패한 경우에도 같은 안내가 나와서, 무엇을 해야 하는지 알기 어려웠습니다. 이제 자동 압축이 왜 복구하지 못했는지를 함께 설명합니다.

  • 샌드박스의 IPv6 주소 표기 처리

    샌드박스 네트워크 도메인 목록에 IPv6 주소를 적을 때, 주소 안의 콜론과 포트 구분 콜론이 섞여 해석이 갈릴 수 있었습니다. 이제 IPv6 리터럴은 대괄호로 감싸 표기하고([::1]:443), 해석이 갈리는 표기는 통과시키지 않고 막는 쪽으로 처리하며 /doctor가 해당 항목을 표시합니다.

  • /login 이후에도 CLAUDE_CODE_OAUTH_TOKEN 경고 반복

    CLAUDE_CODE_OAUTH_TOKEN이 설정돼 있으면 로그인 결과보다 이 토큰이 우선 적용됩니다. 로그인에 성공하면 경고가 사라져, 실제로는 방금 로그인한 계정이 쓰이지 않는데도 그 사실을 놓치기 쉬웠습니다. 이제 로그인에 성공한 뒤에도 이 경고를 다시 표시합니다.

  • /commit-push-pr의 위험한 플래그 자동 승인 중단

    /commit-push-pr은 실행하는 git과 gh 명령을 자동 승인했습니다. 여기에는 --force, --amend, --no-verify처럼 되돌리기 어려운 결과를 만드는 플래그가 붙은 명령도 포함됐습니다. 이제 이런 플래그가 포함된 명령은 자동 승인되지 않습니다.

  • Windows 셀프호스티드 러너에 --base-dir 필수

    Windows에는 러너가 저장소를 내려받을 기본 체크아웃 폴더가 정해져 있지 않습니다. 이제 Windows에서 셀프호스티드 러너를 시작할 때 --base-dir을 직접 지정해야 합니다.

  • VS Code 피드백 경로와 /btw 패널 크기 조절

    “Report a problem” 메뉴와 /bug 명령은 지금은 운영하지 않는 설문 링크를 열었습니다. 이제 둘 다 내장 피드백 대화상자를 엽니다. 그리고 /btw 곁가지 질문 패널은 경계를 끌어 크기를 조절할 수 있게 됐습니다. 옆에 붙인 배치와 위아래로 쌓은 배치 모두에서 동작합니다.

주요 버그 수정

크래시와 화면 출력

  • 긴 응답이 스트리밍 도중 일부 사라지고, 터미널에 두 번 출력되던 문제 수정.
  • 도구 호출의 glob, file_path, command 값이 문자열이 아닐 때 오류 화면으로 크래시하던 문제 수정. 해당 세션을 --resume으로 다시 열 때도 같은 크래시가 발생했습니다.
  • 아주 좁은 터미널 창에서 진행 막대나 마크다운 표가 그려질 때 RangeError로 크래시하던 문제 수정. claude --continueclaude --resume이 시작 단계에서 크래시하는 원인이 되기도 했습니다.
  • Windows에서 도구 호출이나 메시지가 확장 길이 경로(\\?\로 시작하는 형식)나 UNC 경로로 파일을 가리킬 때 크래시하던 문제 수정.
  • IDE 확장이 연결된 상태에서 진단 메시지가 수천 건 있는 파일을 편집한 뒤 화면이 몇 초씩 멈추던 문제 수정.

모델 연결과 API

  • 작성자 표시 헤더를 CLAUDE_CODE_ATTRIBUTION_HEADER로 끈 사용자에게 auto 모드가 모든 도구 호출에서 실패하던 문제 수정. Anthropic API에 직접 연결하는 경우에 해당했습니다.
  • 커스텀 ANTHROPIC_BASE_URL 게이트웨이를 쓰는 claude.ai 구독자에게 /model이 Sonnet과 Opus의 1M 컨텍스트 선택을 거부하던 문제 수정.
  • 엄격한 authorization server를 쓰는 MCP OAuth 인증이 실패하던 문제 수정. redirect URI에 localhost 대신 127.0.0.1을 사용하도록 바뀌었습니다.
  • SDK와 --input-format stream-json 세션에서 공백만 있는 메시지를 보내면 400 API 오류가 나던 문제 수정.
  • 메시지만으로 API의 32MB 요청 한도를 넘는 대화가 압축 재시도를 반복하던 문제 수정. 제거할 이미지나 문서가 없어 압축으로는 줄일 수 없는 상황이었습니다. 이제 반복하지 않고 명확한 메시지와 함께 한 번에 실패합니다.
  • Claude Desktop 세션의 OpenTelemetry 내보내기가 거부되던 문제 수정. Desktop이 관리하는 게이트웨이가 동시에 텔레메트리 수신 주소인 경우에 발생했습니다.

Remote Control과 GitHub 연동

  • 노트북 터미널에서 슬래시 명령을 입력한 뒤 Remote Control 클라이언트에 작업 중 표시가 멈춘 채 남아 있던 문제 수정.
  • /install-github-app이 만들어 준 Claude Code Review 워크플로가 리뷰를 PR에 남기지 않은 채 완료되던 문제 수정.

셀프호스티드 러너와 원격 세션

  • managed-mcp.json이 배포돼 있고 서버가 MCP 서버를 내려주면 셀프호스티드 러너와 그 밖의 원격 세션이 시작 단계에서 종료되던 문제 수정. 이제 서버가 내려준 MCP 서버는 경고를 남기고 건너뜁니다.
  • 셀프호스티드 러너의 저장소 준비 단계가 Git Credential Manager 입력창에서 멈춰 있던 문제 수정. 이제 자격 증명이 없으면 git이 기다리지 않고 곧바로 실패합니다.

플러그인과 백그라운드 작업

  • 일회성 claude plugin 명령이 남긴 실행 표시 파일 때문에 오래된 플러그인 버전이 정리되지 않던 문제 수정.
  • CPU가 제한된 컨테이너 안에서 동적 워크플로가 컨테이너에 할당된 CPU 한도가 아니라 호스트 컴퓨터의 코어 수를 기준으로 동작하던 문제 수정.
  • 원자적 파일 교체 뒤 파일 감시 핸들이 정리되지 않고 쌓이던 문제, 그리고 Windows에서 예약 작업 감시가 네트워크 드라이브나 가상 파일 시스템에서 실패할 때 처리되지 않은 오류가 나던 문제 수정.

알아두면 좋은 점

  • /commit-push-pr은 이제 위험한 플래그마다 확인을 요구--force, --amend, --no-verify 등이 붙은 git과 gh 명령은 자동 승인되지 않습니다. /commit-push-pr을 사람 개입 없이 돌리던 흐름이 있다면 확인 단계가 생깁니다.
  • Windows 셀프호스티드 러너는 --base-dir 없이 시작되지 않음 — Windows에는 기본 체크아웃 폴더가 없으므로, 기존 러너 실행 스크립트에 --base-dir 지정을 추가해야 합니다.
  • MCP OAuth의 redirect URI가 127.0.0.1로 바뀜 — authorization server 쪽에 등록해 둔 redirect URI가 localhost 형식만 허용하고 있다면, 127.0.0.1 주소도 등록돼 있는지 확인이 필요합니다.
  • 32MB를 넘는 대화는 이제 반복 재시도 없이 실패 — 메시지 자체가 한도를 넘는 대화는 압축으로 줄일 수 없으므로 한 번에 실패 처리됩니다. 대화를 나누거나 새 세션에서 이어 가야 합니다.
  • 워크플로 시간차 출발은 끌 수 있음 — 앞부분이 같은 형제 에이전트를 시간차 없이 동시에 띄우려면 CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0으로 설정합니다.
  • 플러그인 command 소스는 세션마다 다시 확인됨 — 경로를 출력하는 명령이 세션 시작 때마다 실행되므로, 명령이 실패하거나 느리면 세션 시작에 영향을 줄 수 있습니다.