발표에서 확인된 핵심 사실
AI 에이전트가 내 허락 없이 파일을 삭제하거나 코드를 엉망으로 만들까 봐 걱정하는 개발자가 많다. 이런 불안은 2026년 7월 1일 배포된 Claude Code(클로드 코드, 터미널 기반 AI 코딩 도구) 2.1.198 버전에서 구체적인 기능으로 나타났다. 이 버전에는 사용자 입력 없이도 동작을 계속하는 효율성 바이패스 기능이 일종의 이스터 에그처럼 포함됐다. AI가 입력을 요청한 후 60초의 타이머가 작동하며, 사용자가 이 시간 안에 응답하지 않으면 AI가 최선이라고 생각하는 방향으로 작업을 계속 진행한다.
해당 기능은 릴리스 노트나 공개된 git(깃, 분산 버전 관리 시스템) 기록에 명시되지 않은 채 배포됐다. 기능 도입 과정에서 릴리스 노트나 git에 아무런 흔적이 남지 않았으며, 해당 기능이 삭제된 이후에야 처음으로 노트에 언급됐다. 공식적인 변경 로그를 통해 알 수 없는 기능이 실제 배포 버전에 포함되어 동작한 사례다.
문제가 제기된 후 며칠 내에 수정 버전이 배포되어 해당 기능은 제거됐다. 2.1.200 버전에서 기능의 반전이 이루어졌으나, 이 수정 사항 역시 공개적인 커밋 기록으로 남지 않았다. 오픈소스 저장소의 변경 이력만으로는 실제 배포된 바이너리의 동작을 완전히 신뢰할 수 없다는 기술적 경고가 나오는 지점이다.
공개한 git 저장소(anthropics/claude-code
공개 저장소의 코드를 수정했다고 믿고 업데이트 버튼을 눌렀지만, 실제 동작은 여전히 예상과 다를 때가 있다. anthropics/claude-code 저장소는 실제 제품의 소스 코드가 아니기 때문이다. 이곳에는 변경 로그와 문서뿐 아니라 플러그인 예제, 일부 인프라 설정, 그리고 이슈 트래커의 티켓을 분류하는 봇들만 포함되어 있다. 실제 동작을 결정하는 소스 코드는 어디에도 공개되지 않았으며, 오직 컴파일된 바이너리(컴퓨터가 즉시 실행 가능한 이진 파일) 형태로만 사용자에게 전달된다.
기능 수정은 코드상의 조건문 하나를 추가하는 방식으로 구현되었다. 2.1.198 버전의 경우 내부적으로 제어 장치(gate)는 존재했으나, 사용자가 설정해 이를 닫을 수 있는 방법이 없었다. 이후 버전에서는 `&&` 조건문을 추가해 사용자의 허가를 먼저 묻는 방식으로 로직을 바꿨다. 이 과정에서 `afkTimeoutMs`(사용자 부재 시 대기 시간) 속성과 관련 설정이 적용되었으며, 2.1.211 버전부터는 이 장치를 통해 사용자의 승인 여부를 확인한다.
오픈소스 저장소의 변경 이력(Changelog)만으로는 배포된 바이너리의 동작을 완전히 신뢰할 수 없다. 소스 코드가 공개되지 않은 구조에서는 컴파일된 바이너리를 직접 비교(diff)해야만 `afkTimeoutMs` 속성의 존재나 조건문 누락 여부를 기술적으로 확인할 수 있기 때문이다. 사용자는 깃허브의 텍스트 기반 로그가 아니라, 실제 실행 파일의 바이트 단위 변화를 추적해야만 정확한 수정 사항을 파악할 수 있다. 이는 공개된 저장소가 제품의 투명성을 보장하는 창구가 아니라, 운영을 위한 보조 수단으로 작동하고 있음을 보여준다.
AI 에이전트가 허락 없이 파일을 삭제하거나 코드를 망가뜨릴 수 있다는 불안은 개발자에게 실존적인 위협이다. Claude Code 2.1.198 버전은 사용자 입력이 60초를 넘기면 AI가 스스로 판단해 작업을 이어가는 효율성 바이패스 기능을 포함했다. 이 사실은 공개 저장소가 아닌 컴파일된 바이너리를 직접 비교해 afkTimeoutMs 속성과 조건문 누락을 확인해야만 드러난다. 이제 오픈소스 저장소의 변경 이력은 실제 배포된 바이너리의 동작을 보증하는 절대적 기준이 될 수 없다.



