[BUG] Duplicate "security-guidance" hook-failure notification loops indefinitely across sessions
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The official security-guidance plugin's hook fails once with:
(likely a race condition — the file exists on disk when checked afterward, so the hook probably fired before the plugin bundle finished staging).
After this single failure, the exact same "Background security review found issues" task-notification keeps being redelivered to the session repeatedly (dozens+ times), even across:
restarting the app
opening a brand new chat
fully quitting via tray and reopening
This persists at the OS/account level, not per-conversation. No user action so far has stopped the redelivery loop.
What Should Happen?
Expected: a hook failure should surface once, not loop indefinitely.
Error Messages/Logs
(дубликат — жду вас)
Steps to Reproduce
Открыть Claude Code (desktop app) на Windows.
Начать любую сессию/диалог в любом проекте — плагин security-guidance подключается автоматически, отдельно ничего включать не нужно.
В какой-то момент (похоже, срабатывает при первом использовании инструмента после запуска приложения) хук плагина security_reminder_hook.py не находит свой файл:
(Файл при этом реально существует на диске при проверке постфактум — похоже на гонку при старте, хук стартует раньше, чем плагин полностью распакован во временную папку сессии.)
После этого единичного сбоя одно и то же уведомление task-notification / "Background security review found issues" с этой же ошибкой начинает приходить в сессию повторно, десятки и сотни раз подряд, без остановки.
Проблема сохраняется даже после:
открытия нового чата,
перезапуска приложения (закрытие окна),
не сохраняется — не проверено полное завершение через трей + все процессы claude.exe в диспетчере задач (возможный workaround, не подтверждён).
Ожидаемое поведение: ошибка хука должна показываться один раз, а не зацикливаться на повторной доставке.
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.110.0.0
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
Дополнительный контекст, собранный при диагностике:
Файл security_reminder_hook.py физически присутствует по указанному пути (проверено после первого сбоя) — то есть ошибка не связана с отсутствием файла как таковым, а скорее с моментом обращения к нему.
Проверены и исключены как источник повторной отправки:
scheduled-tasks.json в папке сессии (%AppData%\Claude\claude-code-sessions\<sessionId>\<subId>\scheduled-tasks.json) — пуст.
sentry/queue/queue-v2.json — пуст.
config.json в корне %AppData%\Claude — не содержит ссылок на зависшее уведомление.
Удаление папки %AppData%\Claude\.claude\sessions (файл блокировки текущего процесса) не помогло — папка автоматически пересоздаётся при перезапуске, а уведомление продолжает приходить.
Открытие нового чата/диалога не помогает — ошибка появляется и там, то есть проблема не привязана к конкретной сессии разговора.
Похоже, логика повторной доставки держится в памяти уже запущенного процесса приложения (не в файле на диске), поэтому её нельзя сбросить редактированием конфигов — только полным завершением всех процессов claude.exe через Диспетчер задач (не проверено на 100%, требует подтверждения).
Окружение: Windows 11, путь к Python — C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\python3.11.exe.
<img width="403" height="458" alt="Image" src="https://github.com/user-attachments/assets/2257caed-d67c-42b2-9b5c-85178baf3f7a" />