Claude Code v2.1.300 업데이트 전에 볼 것: 훅 updatedInput 검증, 종료 시 백그라운드 강제 종료

Claude Code v2.1.300이 2026-10-15 03:24 KST(2026-10-14T18:24:25Z)에 공개되었다. 직전 릴리스는 v2.1.299(2026-10-14T02:49:42Z)와 v2.1.296(2026-10-09T19:28:59Z)이었다. 매일 이 도구를 사용하는 개발자라면 훅의 updatedInput 입력 검증 강화, 세션 종료 시 백그라운드 프로세스 강제 종료, 로컬 기록(transcript)에 시스템 프롬프트가 남는 변경 사항을 먼저 확인해야 한다.

무엇이 나왔나

GitHub anthropics/claude-code 릴리스 노트 v2.1.300(2026-10-15 확인)에 따르면 이번 버전의 변경 항목은 전체 88개다. 줄머리 첫 단어 기준으로 분류하면 Fixed 41개, [VSCode] 12개, Changed 11개, Added 8개, [Claude Tag] 5개, Improved 4개, 그 외 7개(Removed 1개, Self-hosted runner 1개, [Cloud sessions] 2개, [Remote Control] 1개, [Code Review] 2개)다. 줄머리가 Fixed인 항목이 41개로 전체의 절반에 조금 못 미친다.

훅을 쓰는 사람이 볼 것

이번 릴리스에서 훅 동작에 여러 변경과 수정이 포함되었다.

PreToolUse와 PermissionRequest 훅이 돌려주는 updatedInput을 Claude 자신의 입력처럼 검증하도록 바뀌었다. 알 수 없는 키는 버려지고, 도구가 거부하는 입력이면 호출 자체를 거부(deny)한다. 이전 글인 Claude Code 훅이 안 막는 이유 — 로컬 적용 범위와 deny 점검에서 다룬 훅 점검 흐름에 이어, 훅 스크립트가 반환하는 인자 형태를 다시 점검할 필요가 있다.

또한 agent 훅이 model을 무시하던 문제가 수정되었다. 이제 haiku 같은 별칭이 정상 해석되고 서브에이전트 모델이 이를 덮어쓰지 않으며, 사용할 수 없는 모델일 경우 동작 허용 대신 호출자 모델로 대체된다. 백그라운드 명령이 실행 중일 때 종료하면 SessionEnd 훅이 가끔 실행되지 않던 문제도 수정되었다. 한편 Cowork 클라우드 세션의 PermissionRequest 훅에서는 allow의 setMode 갱신이 무시되며 나머지 승인만 적용된다.

종료·백그라운드

세션 종료와 백그라운드 명령 제어 방식이 바뀌었다.

종료 시 정지 요청 후 1.5초가 지나도 실행 중인 백그라운드 명령을 강제 종료한다. 이전에는 전체 화면 모드에서 백그라운드 명령이 남아 있을 수 있었다.

또한 Claude가 백그라운드 명령의 출력 파일을 폴링하거나 sleep하던 문제가 수정되었다.

네트워크와 로컬 기록

네트워크 요청 압축과 세션 기록 방식에도 변경이 있다.

api.anthropic.com으로 전송되는 큰 요청은 텔레메트리를 꺼 두어도 gzip 압축이 적용된다. 이 동작을 끄려면 환경 변수 CLAUDE_CODE_GZIP_REQUEST_BODIES=0을 지정해야 한다.

로컬 세션 기록(transcript)에는 각 API 요청의 시스템 프롬프트, 도구, 매개변수가 함께 기록된다. 공유하기로 선택한 세션 기록으로 요청을 그대로 재현할 수 있도록 변경된 것이지만, 외부에 기록을 전달할 때는 시스템 프롬프트가 함께 포함된다는 점을 유의해야 한다.

MCP·도구 검색 수정

MCP 도구와 도구 검색과 관련된 세 가지 문제가 수정되었다.

첫째, API가 MCP 도구의 입력 스키마를 거부할 때 매 턴 400 오류로 대화가 실패하던 문제가 수정되었다. 이제 해당 도구를 대화 끝까지 매개변수 없이 보낸다.

둘째, 자동 도구 검색(ENABLE_TOOL_SEARCH=auto)이 대화 도중(예: 재개 후 MCP 서버 재연결 중) 꺼지던 문제가 수정되었다.

셋째, 압축(compaction) 뒤 MCP 서버가 연결을 마쳤을 때, 다음 도구 호출 때까지 그 서버의 도구와 지침을 Claude가 알지 못하던 문제가 수정되었다.

텔레메트리 새 필드

OpenTelemetry 관측 기능에 캐시 및 규약 속성이 추가되었다.

api_request 이벤트에 cache_creation_5m_tokens, cache_creation_1h_tokens 필드가 추가되어 캐시 쓰기량이 수명별로 분리된다. Claude Code 일주일 실측, API로 냈다면 1,899달러였다에서는 캐시 쓰기 5분과 1시간 구분을 로컬 로그에서 직접 셌다. 이제 OpenTelemetry 이벤트에도 같은 구분이 필드로 나온다.

트레이스 span에는 OpenTelemetry GenAI 시맨틱 규약 속성인 gen_ai.provider.name, gen_ai.conversation.id, gen_ai.tool.name, error.type 등이 추가되었다.

제거된 플래그

claude remote-control 명령어에서 동작 효과가 없었던 --sandbox와 --no-sandbox 플래그가 제거되었다. 이제 넘기면 오류로 종료된다. 세션 샌드박스는 설정의 sandbox.enabled로 제어한다. /sandbox 모드 옵션 문구는 "Sandbox BashTool"에서 "Sandbox commands"로 변경되었다.

그 밖의 수정

그 외에도 태그나 브랜치 이름이 커밋 ID처럼 생겼을 때 --worktree 세션이 가끔 잘못된 커밋에서 시작하던 문제와 git reftable 저장소에서 브랜치가 ".invalid"로 보이고 --worktree 재열기에 실패하던 문제가 수정되었다. 세션 재개와 관련해서는 비정상 종료로 기록 마지막 줄이 잘렸을 때 재개 후 첫 기록이 사라지던 문제와 출력 토큰 한도에서 끊긴 답 뒤에 압축이 일어났을 때 headless 및 Agent SDK 세션을 재개하면 압축이 남긴 최근 메시지를 잃던 문제(이 버전부터의 압축에 해당)가 수정되었고, /autocompact에서 작은 자동 압축 창을 고르면 높은 토큰 사용 경고가 뜨던 문제가 해결되었다. VS Code 환경에서는 에디터 선택 텍스트 첨부를 막는 claudeCode.attachSelection 설정이 추가되었고 크레딧 소진 후 fast mode 요청 거부·재전송 문제가 수정되었다. Claude Platform on AWS에서도 /advisor를 쓸 수 있게 됐다. /advisor, advisorModel, --advisor로 고르기 전에는 실행되지 않고, CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1로 끈다.

업데이트 전후 확인 체크리스트

항목확인 방법
훅 반환값 검증PreToolUse 및 PermissionRequest 훅이 updatedInput에 알 수 없는 키나 도구가 거부하는 입력을 반환하지 않는지 확인
백그라운드 종료세션 종료 시 정지 요청 후 1.5초 뒤 백그라운드 명령이 강제 종료되어도 문제가 없는지 확인
요청 본문 gzip큰 요청의 gzip 압축을 꺼야 하는 환경인지 확인(CLAUDE_CODE_GZIP_REQUEST_BODIES=0 필요 여부)
세션 기록 공유로컬 세션 기록(transcript)에 시스템 프롬프트가 남으므로 외부 공유 전 확인
자동 도구 검색ENABLE_TOOL_SEARCH=auto 설정 환경에서 세션 재개 및 재연결 후 검색 동작 확인
원격 제어 플래그claude remote-control 실행 스크립트에 --sandbox, --no-sandbox가 포함되어 오류가 발생하지 않는지 확인

직접 확인: 내 설치 버전과 CHANGELOG 차이, 내 훅 설정 점검

로컬 환경에서 현재 설치된 버전을 확인했다.

claude --version

확인 결과는 2.1.274 (Claude Code)였다. 이번 확인 과정에서 업데이트는 실행하지 않았다. 따라서 2.1.300의 동작을 직접 실행하지 않았고, API 호출이나 응답 품질 및 속도 측정 또한 진행하지 않았다.

리포지토리의 CHANGELOG(2026-10-15 확인)를 기준으로 내 설치 버전(2.1.274) 이후 추가된 절을 대조했다. 2.1.275부터 2.1.300까지 총 23개 버전 절이 존재했다(2.1.279 절은 CHANGELOG에 없음). 해당 항목은 총 2,044줄이었으며, 줄머리 분류 기준 상위 5개는 Fixed 1,051개, Improved 225개, Changed 188개, [VSCode] 173개, Added 133개였다.

로컬 설정에 등록된 훅을 점검했다. PreToolUse 4개, PostToolUse 6개, Stop 2개, SessionStart 1개, UserPromptSubmit 1개, TaskCompleted 1개로 총 15개 훅이 등록되어 있었다.

그러나 훅이 가리키는 스크립트 파일 14개 경로가 하나도 존재하지 않았다(훅 폴더 링크 대상이 없음). 앞서 AI 코딩 설정도 코드처럼 썩는다 — 가짜 보안 훅과 죽은 에이전트 11개에서 다룬 것처럼, 등록은 돼 있는데 가리키는 파일이 없는 훅이 다시 보였다. 파일이 존재하지 않아 PreToolUse 훅이 updatedInput을 사용하는지는 확인하지 못했다. 이 훅들이 실제로 어떻게 동작하고 실패하는지도 확인하지 않았다.

로컬 스크립트 중 remote-control --sandbox나 --no-sandbox를 사용하는 경우는 0건이었다. 설정 환경 변수에는 ENABLE_TOOL_SEARCH가 auto:5로 지정되어 있었으나, 릴리스 노트의 auto 수정이 이 값에도 해당하는지는 노트에 언급되지 않아 확인하지 못했다.

결론

Claude Code v2.1.300에는 훅 updatedInput 검증과 종료 시 백그라운드 명령 강제 종료처럼 기존 동작을 바꾸는 변경이 들어 있다. 도구를 업데이트하기 전에 로컬 훅의 유효성과 반환 파라미터 규격, 세션 종료 시 백그라운드 동작을 먼저 확인해 둘 필요가 있다. 로컬 세션 기록에 시스템 프롬프트가 함께 저장되므로 기록을 외부에 전달하기 전에 그 내용을 확인하려 한다.

댓글

이 블로그의 인기 게시물

AI 코딩 스킬, 많을수록 좋을까 — 자산이 부채로 바뀌는 손익분기

M4 Max 128GB 로컬 LLM 4종 속도 비교 — 실측 기록과 한계

Opus 5는 더 잘 쓰고, 더 AI답게 쓴다 — 세 모델 첫날 실측