[1] major Файл: src/app/layout.tsx Строка: 29-32 Тип: bug Описание: Сейчас `NotificationsProvider` всегда получает `isAuthenticated` без проверки сессии, а сам провайдер передаёт флаг `enabled = true` в `useNotifications`. Это приводит к тому, что на всех страницах (включая `/login`, `/register` и отказавшихся от авторизации пользователей) сразу выполняются запросы `/api/notifications/unread`, `/api/notifications/mark-seen` и т.д., и эти маршруты требуют авторизации (`requireRequestAuth`). В итоге гости получают постоянные 401/403, логируются ошибки и выполняются бессмысленные обращения к БД. Рекомендуется сделать `RootLayout` асинхронным, получить контекст авторизации через `getServerUser`/`getServerAuth`, вычислить `const isAuthenticated = Boolean(await getServerUser())` и передавать именно этот флаг в `NotificationsProvider`. Так провайдер будет активироваться только когда сессия действительно есть. [2] major Файл: src/app/layout.tsx Строка: 33-34 Тип: bug Описание: `PushPermissionPrompt` монтируется независимо от состояния авторизации и сервисных возможностей браузера, поэтому на страницах входа/регистрации и у незалогиненных посетителей он отобразится через 3 секунды и попытается вызвать `subscribe`, который отправит POST на `/api/notifications/subscribe` (тоже защищённый `requireRequestAuth`). Пользователь увидит предложение, которое не может выполнить, а сервер получит 401. Нужно рендерить компонент только когда `isAuthenticated` истинно (например, `{isAuthenticated && }` внутри провайдера или прокинув туда флаг), чтобы запрос на подписку происходил только уже аутентифицированному пользователю.