
Claude Code v2.1.199〜v2.1.200|서브 에이전트가 조용히 실패하지 않게 됨|매일 Changelog 해설
요약
Claude Code v2.1.199 및 v2.1.200 업데이트를 통해 서브 에이전트의 실패 처리 방식이 개선되었습니다. 레이트 리미트나 서버 에러 발생 시 조용히 실패하던 버그를 수정하고, 자동 재시도 로직을 강화하여 안정성을 높였습니다.
핵심 포인트
- 서브 에이전트 실패 시 부모 에이전트에게 에러 보고 및 부분 결과 반환
- 429 에러에 대한 자동 재시도 및 백오프 로직 강화
- Permission Mode 명칭이 'default'에서 'Manual'로 변경
- 백그라운드 세션 정지 및 스택된 slash-skill 로드 관련 버그 수정
v2.1.199에서, 레이트 리미트 (Rate Limit)로 중단된 서브 에이전트가 성공한 것처럼 빈 결과를 반환하던 버그가 수정되었다. 다단계 구성에서는 중간의 실패가 부모에게 전달되지 않으면 결과를 통째로 신뢰할 수 없다. 백그라운드 에이전트의 침묵 버그도 두 버전에서 한꺼번에 해결되었다.
서브 에이전트의 에러 무시 수정: 레이트 리미트 (Rate Limit)나 서버 에러로 인한 중단을 성공 처리가 아닌 부모에게 에러 보고 및 부분 결과 반환으로 변경 (v2.1.199)
429 자동 재시도 및 재시도 상한 완화: 사용량 제한과 무관한 429 에러를 백오프 (Backoff)를 포함하여 자동 재시도. CLAUDE_CODE_RETRY_WATCHDOG는 기본 재시도를 300으로 상향 (v2.1.199)
permission mode의 "default"가 "Manual"로 개명: CLI, --help, VS Code, JetBrains에서 표기 변경. --permission-mode manual과 "defaultMode": "manual"도 수용 (v2.1.200)
아이들 타임아웃 (Idle Timeout): AskUserQuestion이 기본적으로 자동 계속되지 않도록 변경되었으며, /config를 통한 옵트인 (Opt-in) 방식으로 변경 (v2.1.200)
스택된 slash-skill이 전부 로드됨: /skill-a /skill-b do XYZ에서 상위 5개까지의 스킬을 읽어들임 (v2.1.199)
백그라운드 세션 정지 버그 다수 수정: sleep/wake 시의 중단, stale한 daemon.lock, Linux에서 약 50초마다 발생하는 자기 종료 등 (v2.1.199 / v2.1.200)
다단계 에이전트를 실행하던 중, 중간의 서브 에이전트가 에러로 종료되어도 알아차릴 수 없었던 문제에 대한 대처. 두 버전 모두 서브 에이전트 및 백그라운드 에이전트의 실패 처리가 통합적으로 수정되었습니다.
v2.1.199에서는 서브 에이전트의 실패 처리를 두 가지 수정했습니다.
- 레이트 리미트 (Rate Limit)나 서버 에러로 중단된 서브 에이전트가, 조용히 실패하지 않고 부분 결과를 부모에게 반환하도록 함
- 사용량 제한 등의 API 에러를 "성공한 결과"로 부모에게 보고하던 것을 에러로 전달하도록 함
v2.1.200에서도 추가 조치가 이루어졌습니다. 레이트 리미트 (Rate Limit)로 인해 한 글자도 출력하기 전에 끊긴 서브 에이전트가, 깔끔하게 실패하지 않고 빈 결과를 반환하던 동작을 수정했습니다. 스트리밍 중에 서버가 오버로드 (Overload)를 반환한 케이스에서도, 부분 출력을 버리지 않고 "불완전한 응답"이라는 주석과 함께 남기게 되었습니다.
CLAUDE_CODE_RETRY_WATCHDOG의 기본 재시도 횟수가 용량 원인이 아닌 일시적 에러의 경우 300으로 올라갔습니다. 이와 함께 CLAUDE_CODE_MAX_RETRIES의 상한인 15도 철폐되었습니다. 재시도가 길어질 것을 전제로 한 값이므로, CI 등 시간 제한이 있는 곳에서 실행한다면 명시적으로 제한하는 것이 안전합니다.
구독 사용자에게는 사용량 제한과 무관한 429 (일시적인 서버 측 레이트 리미트)가 백오프 (Backoff)를 포함하여 자동 재시도되도록 변경되었습니다. 턴마다 즉시 실패하던 것이, 이제는 알아서 버팁니다.
{
"permissions": {
"defaultMode": "manual"
...
v2.1.200에서 퍼미션 모드 (Permission Mode)의 명칭이 "default"에서 "Manual"로 바뀌었습니다. CLI, --help, VS Code, JetBrains의 표기가 전반적으로 업데이트되었으며, --permission-mode manual과 "defaultMode": "manual"이 새롭게 수용됩니다. 기존의 default도 계속 통용되므로, 설정 파일을 지금 바로 수정할 필요는 없습니다.
동일한 v2.1.200에서 AskUserQuestion의 동작도 변경되었습니다.
AskUserQuestion 다이얼로그가 기본적으로 자동 계속되지 않게 되었습니다. 이전처럼 타임아웃으로 자동 진행하고 싶다면, /config에서 아이들 타임아웃 (Idle Timeout)을 옵트인 (Opt-in) 방식으로 활성화하십시오. 자동 응답을 전제로 설계된 플로우는 동작이 달라지므로 확인이 필요합니다.
v2.1.199의 작지만 효과적인 변경 사항. /skill-a /skill-b do XYZ
처럼 슬래시 스킬 (slash skill)을 나열했을 때, 기존에는 맨 앞의 1개만 로드되었으나 이제는 맨 앞의 5개까지 모두 로드되도록 변경되었습니다. 맨 앞에 여러 스킬을 나열한 뒤 지시 사항을 작성하면, 최대 5개까지 모두 적용됩니다.
| 버전 | 카테고리 | 변경 사항 | 개요 |
|---|---|---|---|
| v2.1.200 | 수정 | .claude.json의 비배열 (non-array) MCP 설정 시 크래시 발생 | disabledMcpServers / enabledMcpServers에 배열 이외의 값을 넣으면 실행 시 종료되던 문제 |
| v2.1.200 | 수정 | worktree 상의 project 스코프 plugin | 동일 리포지토리의 git worktree에서 plugin을 올바르게 읽어오지 못하던 문제 |
| v2.1.200 | 수정 | claude agents --plugin-dir 플래그 순서 | agents 뒤에 플래그를 배치하면 plugin의 에이전트/스킬이 목록에 나타나지 않던 문제 |
| v2.1.200 | 개선 | tmux 3.4+의 깜빡임 | 동기식 출력 (synchronous output)을 활성화하여 렌더링 플리커 (flicker) 현상 해결 |
| v2.1.200 | 개선 | 스크린 리더 (screen reader) 출력 | 장식용 글리프 (glyph)를 숨기고, 중첩된 표를 제목: 값. 형식으로 읽어줌 |
| v2.1.199 | 개선 | SSL 인증서 에러의 즉시 실패 처리 | TLS 검사 프록시나 NODE_EXTRA_CA_CERTS 부족 시, 재시도 (retry)를 소모하지 않고 즉시 해결 방법과 함께 표시 |
| ... | v2.1.199 | 수정 | |
| v2.1.199 | 수정 | Linux 백그라운드 데몬의 자가 파괴 | 비정상 종료 후 약 50초마다 데몬이 자신과 모든 에이전트를 kill 하던 문제 |
v2.1.199~v2.1.200의 핵심은 서브 에이전트와 백그라운드 에이전트가 "조용히 죽는" 경로를 하나씩 차단한 것입니다. 에러는 부모에게 전달되고, 429 에러는 자동으로 재시도하며, 부분적인 결과가 버려지지 않게 되었습니다. permission mode는 "Manual"로 개명되었으며, AskUserQuestion은 자동 지속을 중단하고 명시적 옵트인 (opt-in) 방식으로 변경되었습니다. 다단계 에이전트 (multi-step agent)를 자주 사용하는 경우, 서브 에이전트가 조용히 빈 결과를 반환하여 놓치게 되는 상황이 이 두 릴리스를 통해 줄어들 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기