심야에 작동하는 무인 실행 로그를 보고 있다가, idle compaction이 실행된 직후 대화 내용이 깨져 있는 경우가 있었다. 스크립트 자체는 '성공'을 반환했지만, 다음 날 아침의 결과물은 의미가 없었다. v2.1.318 버전을 확인해 보니, 이것이 수정된 항목 중 하나였다.
이 글에서 알 수 있는 내용:
- v2.1.318 (2026-11-04 릴리스)에서 수정된 항목 중 무인 배치 및 네트워크 공유 환경에 직결되는 5가지 부분
claude auth status
에 추가된 loginExpiresAt (만료일 사전 확인이 용이해짐) - 2.1.314 버전에서 도입됨
--continue의 회귀(regression) 확인 절차
이번 릴리스 v2.1.318은 Added 4건, Fixed 35건 이상, Improved 10건 이상의 대규모 패치다. 모든 변경 사항은 공식 릴리스 페이지에서 확인할 수 있다 (https://github.com/anthropics/claude-code/releases/tag/v2.1.318). 내용이 많기 때문에, 대기업 내에서 Claude Code를 무인 실행 및 네트워크 공유 환경으로 운영하는 입장에서 특히 주목할 만한 5가지 부분만 정리했다.
수정 내용: Fixed idle compaction replacing a conversation with a reply that was not a summary
idle compaction은 컨텍스트 창(context window)이 길어졌을 때 Claude Code가 백그라운드에서 대화를 자동으로 요약하고 압축하는 메커니즘이다. 장시간 세션이나 무인 실행으로 --continue를 반복적으로 사용하는 상황에서는 필수적인 기능이다.
문제는 compaction이 '요약(summary)'이 아닌 답변으로 전체 대화 내용을 대체할 수 있었다는 점이다. 요약을 하는 대신, 예를 들어 직전 턴의 답변이 그대로 삽입되어 시각적으로는 대화가 계속되는 것처럼 보이지만 내용 자체가 이상한 상태가 되는 경우가 발생했다.
무인 실행 환경에서는 사람이 실시간으로 확인하지 않는다. compaction이 작동하는 타이밍을 제어할 수 없기 때문에, 이 문제가 발생해도 '로그를 읽을 때까지 알아차리기 어렵다'는 문제가 있었다. 솔직히 처음 이 문제를 접했을 때는 원인을 특정하는 데 시간이 오래 걸렸다.
v2.1.318 버전 이후부터는 compaction 시 적절한 요약이 포함되도록 수정되었다.
확인 절차: claude -p
의 JSON 출력으로 세션의 일관성을 확인할 때, 대화 흐름이 갑자기 이상해지는 턴이 있었다면, 직전의 compaction 로그와 비교해보는 것이 좋다.
수정 내용: Fixed --continue sometimes losing the earlier conversation after a malformed tool call's retries ran out (regression in 2.1.314)
v2.1.314 버전에서 발생한 회귀(regression) 문제였다. 도구 호출(tool call)이 잘못된 형태(malformed)였을 경우, 재시도(retry)가 최대치에 달한 후 --continue로 다시 시작하려고 하면 이전 대화 내용이 손실되는 경우가 있었다.
무인 실행 스크립트에서는 에러 재시도를 구성하는 경우가 많다. 도구 호출 오류가 지속되어 재시도 상한선에 도달한 후 --continue를 사용하면, 해당 회차의 대화 기록 전체가 사라지는 동작이었다.
v2.1.313 이전 버전을 사용했거나, 2.1.314~2.1.317 사이에서 이 문제에 직면했던 경우라면, v2.1.318로 업데이트하여 수정할 수 있다.
확인 절차: 도구 호출의 재시도가 빈번한 세션을 --continue로 다시 시작하여 대화 기록이 남아 있는지 확인한다.
수정 및 개선 내용 (주요 항목):
Fixed jobs exiting with Not logged in when another terminal or host signs in again to the same account
Fixed sessions being refused at startup by an allowedProviders list that another login had stored
Improved how ~/.claude.json, settings files and the stored login survive saves on shared network home directories
네트워크 공유 홈 디렉터리에서 저장된 로그인 정보와 설정 파일이 백업 시에도 유지되도록 개선되었습니다.
Improved sessions on network file systems to look again when the configuration file is wrongly reported as missing
설정 파일이 잘못 '누락'되었다고 보고될 경우, 네트워크 파일 시스템 상의 세션에서 재확인하도록 개선되었습니다.
기업 환경에서는 여러 대의 컴퓨터나 여러 사용자가 동일한 네트워크 홈 디렉터리를 참조하는 경우가 있습니다. 이 경우 ~/.claude.json이나 설정(settings) 파일이 저장 및 로드되는 과정에서 손상되거나 사라지는 문제가 발생하곤 했습니다.
구체적으로 발생하던 문제:
- 다른 컴퓨터나 터미널이 로그인한 직후, 기존 세션이 '로그아웃됨 (Not logged in)' 상태로 종료됩니다.
- 설정 파일이 '찾을 수 없음'으로 보고되어 MCP 서버나 신뢰 폴더가 반영되지 않은 채로 실행됩니다.
- 설정 파일이 저장되는 시점에 비어 있거나 오래된 버전으로 대체됩니다.
v2.1.318에서는 배타적 제어(exclusive control)와 재시도 메커니즘을 강화했습니다. 설정 파일이 잘못 '찾을 수 없음'으로 보고될 경우, 시스템이 다시 확인하도록 변경되었습니다.
대기업 내부에서 작업 스케줄러를 통해 Claude Code를 실행하는 경우, 설정이 네트워크 홈에 위치하는 경우가 많습니다. 본 수정 사항은 실무 환경에 큰 영향을 미칠 것으로 판단됩니다.
수정 내용: Fixed the "Now using usage credits" notice reappearing about every 30 seconds while a background subagent is running
백그라운드에서 서브 에이전트(subagent)가 실행되는 동안, '현재 사용량 크레딧을 사용 중입니다 (Now using usage credits)'라는 알림이 약 30초 간격으로 반복해서 표시되었습니다.
무인 실행 로그에 동일한 문자열이 대량으로 기록되어 로그 모니터링 도구의 노이즈가 되었습니다. 또한, 실제로는 아무 문제도 발생하지 않았음에도 불구하고 너무 많은 알림 때문에 비정상적으로 보이는 상태였습니다. v2.1.318 이후부터는 이 노이즈가 해소됩니다.
로그 모니터링을 운영하는 팀에게 특히 관련성이 높습니다. 오탐지(false positive) 경보가 줄어드는 것만으로도 운영상의 수고를 덜 수 있습니다.
수정 내용: Fixed a running Claude Code process owned by another user (for example one left by sudo claude) being treated as dead by version cleanup, which could delete its binary
작업 스케줄러나 다른 사용자 권한으로 실행된 Claude Code 프로세스(예: sudo claude로 남겨진 프로세스)를 버전 정리(version cleanup) 기능이 '종료된 프로세스'로 오판하여 바이너리를 삭제할 수 있는 문제가 있었습니다.
이 문제가 발생하면, 이후 실행 시 '바이너리 파일을 찾을 수 없음' 오류가 발생합니다. 이 경우 바이너리를 다시 가져와야 합니다.
여러 사용자가 동일한 머신에서 Claude Code를 실행하는 환경, 또는 sudo를 사용하여 설치 및 실행이 혼재된 환경에서는 확인해 볼 가치가 있습니다.
추가 내용:
Added the date a stored claude.ai sign-in ends to claude auth status (loginExpiresAt) and to claude -p JSON results (credential_expires_at)
claude auth status를 실행하면, loginExpiresAt 필드로서 만료 날짜와 시간이 표시되도록 추가되었습니다. claude -p의 JSON 출력에도 credential_expires_at으로 포함됩니다.
또한, 만료일 10일 전부터는 claude -p의 stderr에 한 줄 경고 메시지가 나오도록 추가되었습니다.
무인 실행 환경에서는 인증 만료를 인지하지 못한 채 계속 실행되는 경우가 있습니다. 아침 요약 알림 시에 'claude auth status'를 통해...
결과를 저장해 두면 기한이 다가왔을 때 미리 대응할 수 있습니다.
확인 명령어(예):
claude auth status --json | jq '.loginExpiresAt'
기한 10일 전부터 stderr에 경고 메시지가 나오게 되었으므로, 로그 모니터링에서 이 메시지를 포착하는 설정을 해두면 안심입니다.
v2.1.318 버전은 양 자체는 많지만, 무인 실행 및 네트워크 홈 환경과 직결되는 수정 사항이 여러 개 포함되어 있었습니다.
특히 idle compaction의 오작동 방식은 "스크립트가 성공으로 반환했지만 실제 내용은 이상한" 조용한 오류였기 때문에 로그만으로는 알아차리기 어려웠습니다.
같은 현상이 발생했을 때의 문제 분리(切り分け) 방법:
idle compaction
이후 턴에서 대화의 일관성이 이상함 → v2.1.318 이후 버전인지 확인 -
--continue
나중에 대화가 사라짐 → 2.1.314~317을 사용하지 않았는지 확인 - MCP 서버나 신뢰 폴더가 반영되지 않음 → 네트워크 홈 설정 파일 문제일 가능성
- 로그에 "Now using usage credits"가 대량으로 나열됨 → v2.1.318 이후에서 해결됨
관련 실전 이야기:
Copilot으로 회의록을 작성할 때 사전에 할 일
Copilot, Power Automate, AI 도구 도입 및 활용 상담은 코코나라에서 받고 있습니다.