Claude Code молча стирает логи сессий через 30 дней

Claude Code по умолчанию стирает расшифровки сессий старше 30 дней. Делает он это фоновой чисткой и ничего не сообщает, напоминает автор блога Brycewatson в разборе, обновлённом 30 сентября. Если в ~/.claude/settings.json нет ключа cleanupPeriodDays, сессии из терминала и IDE хранятся 30 дней, а увеличенный срок защитит только то, что ещё не удалено.
Старая сессия просто пропадает из /resume. У автора не уцелело ни одной расшифровки раньше начала мая, хотя в Claude Code он работал и в январе-апреле.
Одна строка в settings.json
Проверка занимает секунды: откройте ~/.claude/settings.json и найдите cleanupPeriodDays. Число в этом ключе и есть срок хранения в днях. Самый коварный случай - ключа нет вовсе. Автор замечает, что «у меня нет такой настройки» звучит как «у меня всё в порядке», а на деле означает «меня чистят каждые 30 дней».
Исправление занимает одну строку:
{ "cleanupPeriodDays": 3650 }
3650 дней - это около десяти лет, фактически хранение навсегда. Тем, кому не нужны завалы расшифровок за десятилетие, автор предлагает осознанный потолок вроде 365. Отключить чистку совсем нельзя: минимум равен 1, а значение 0 не проходит валидацию. Ключ работает в пользовательских настройках, в проектных .claude/settings.json и в локальных .claude/settings.local.json. Но если cleanupPeriodDays задан в managed settings вашей организации, побеждает её значение.
Поручить правку можно и самому Claude: в августе об этом писал автор Paul's Blog. Однако про срок хранения модель уже ошибалась. В январском посте a327ex описал, как Claude сначала ответил, что локальные файлы в ~/.claude/projects/ автоматически не удаляются, спутав их с хранением на серверах Anthropic.
У длинного срока есть цена. Первая - диск: у автора набралось около 7 000 файлов расшифровок на 1,58 ГБ, и объём только растёт, а загруженная установка, по его грубой оценке, порождает от сотен до нескольких тысяч файлов в неделю. Вторая - секреты. Автор Classmethod ссылается на документацию: расшифровка хранит весь разговор вместе с вызовами инструментов и их результатами в виде незашифрованного текста. Если инструмент прочитал .env или в выводе команды оказались ключи, они тоже попадают в файл, и при значении 3650 пролежат на диске в открытом виде столько же, сколько сама расшифровка. В качестве защиты он называет более короткий срок или переменную окружения CLAUDE_CODE_SKIP_PROMPT_HISTORY, которая отключает запись расшифровок.
Что попадает под чистку
В основном это расшифровки: файлы .jsonl в ~/.claude/projects/, по одному на сессию, плюс файл в subagents/ на каждый запуск сабагента. С версии 2.1.117 под чистку попали также tasks/, shell-snapshots/ и backups/. Документация называет ещё file-history/, где Claude Code хранит записи о своих правках, plans/, отладочные логи, кэш вставок и осиротевшие worktree. Папку автопамяти projects/<project>/memory/ чистка не трогает. Правда, до версии 2.1.228 она принимала вложенные в неё папки за данные сессий и могла удалить из них старые файлы.
С версии 2.1.248 расшифровки сессий, которые вы начали или последний раз продолжили в Claude Desktop или Cowork, хранятся при любом возрасте. В changelog это названо исправлением для сессий, которые «исчезали через 30 дней». Исправление коснулось только этих двух приложений: сессии из терминала и IDE по-прежнему живут по cleanupPeriodDays. Для десктопных сессий есть отдельный ключ desktopSessionCleanupPeriodDays, который возвращает им срок хранения, но не короче cleanupPeriodDays. Значение из managed settings действует и на них.
Шрам до начала мая
Автор давно поднял у себя срок до 3650 и проверил, держится ли настройка. На 25 июня на диске лежали 1 324 файла расшифровок старше 31 дня, из них 647 - сессии верхнего уровня. При умолчании все они ушли бы в чистку. Самая старая уцелевшая расшифровка последний раз менялась 7 мая.
Возраст файла чистка, по наблюдению автора, отсчитывает от времени его последнего изменения, и сам он просит считать это замером со своей машины. Первое сообщение внутри самой старой расшифровки датировано 5 мая, примерно на два дня раньше времени изменения файла, так что эти две метки расходятся. Все замеры сделаны на одной машине, а список удаляемых папок взят из документации: свежую чистку на настройке по умолчанию автор не запускал.
Каталог shell-snapshots/, который чистится по тем же часам, обрывается примерно там же, где и расшифровки. Значение 3650 стояло у автора уже к 11 июня, позже этой границы, и всё удалённое до неё на диск не вернулось. Восемь папок проектов в projects/ автор завёл с января по апрель 2026 года, и ни в одной нет расшифровки старше 5 мая.
Дальше
Конституция Claude запрещает даже ложь из вежливости
Даже белую ложь про нелюбимый подарок Anthropic запретила Claude в его конституции, и планка честности там выше обычной человеческой. Промолчать о своём мнении Claude при этом можно, а солгать нельзя.
Читайте также
- Claude Code 2.1.318: срок входа, логи раннера и шлюз AWS
- intent-lens объясняет команды Claude Code до их запуска
- Codedict срезал токены Claude Code на 63%, а счёт на 26%
- Дерево файлов покажет, что читает и правит Claude Code
- В маркетплейсе Cursor лежал Claude Code 2.1.313 с бэкдором
- Claude Code 2.1.312 перестал затирать большие CLAUDE.md
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

