В Claude Code нашли серьезный баг — он молча сбрасывает код каждые 10 минут
Разработчик обнаружил, что Claude Code версии 2.1.87 на macOS каждые 10 минут выполняет скрытую операцию git fetch origin + git reset --hard origin/main в рабочем репозитории проекта. Это молча уничтожает все незакоммиченные изменения в отслеживаемых файлах. В git reflog автор нашел 95+ таких записей за 4 сессии на протяжении ~36 часов — с точным интервалом в 600 секунд.
Баг подтвержден живым воспроизведением: измененный отслеживаемый файл откатился к состоянию из удаленного репозитория на следующей 10-минутной отметке, тогда как неотслеживаемый файл выжил. Результат повторился четыре цикла подряд. Мониторинг файловой системы зафиксировал характерный паттерн операций с .git/ — создание lock-файлов для refs/remotes/origin/HEAD и refs/heads/main — при этом ни одного внешнего процесса git не вызывалось. Операции выполняются программно внутри самого процесса Claude Code, предположительно через библиотеку libgit2.
Автор провел детальное расследование и исключил все внешние причины: git-хуки, cron-задачи, облачную синхронизацию, IDE, Time Machine, file watchers и плагины самого Claude Code. Единственным процессом с доступом к репозиторию оказался сам Claude Code, запущенный с флагом --dangerously-skip-permissions. Смещение секунд в reflog одинаково внутри сессии, но различается между сессиями — это указывает на внутренний таймер, привязанный к моменту запуска. Косвенно существование такого механизма подтверждает свежий CHANGELOG Claude Code: в нем появилась переменная окружения CLAUDE_CODE_DISABLE_CRON, которая отключает "запланированные периодические задачи внутри сессии".
Коварность бага в том, что он невидим при обычном рабочем процессе. Если разработчик регулярно коммитит — а Claude Code к этому подталкивает,
Читать на habr.com