# Лог сессии 29 декабря 2025 ## Основные задачи ### 1. Оптимизация мониторинга n8n workflow ✅ **Проблема:** Постоянный мониторинг workflow засорял логи n8n экзекушенами. **Решение:** - Отключён постоянный мониторинг (`auto_restart_n8n_workflow.py`) - Реализована проверка workflow "по требованию" — при отправке формы пользователем - Если n8n не слушает Redis канал → сообщение буферизуется в Redis - В фоне запускается перезапуск workflow через n8n API - После перезапуска буферизованные сообщения отправляются повторно **Изменённые файлы:** - `backend/app/services/n8n_service.py` (новый) — работа с n8n API - `backend/app/services/redis_service.py` — добавлены методы буферизации - `backend/app/api/claims.py` — интеграция проверки/перезапуска workflow - `backend/app/config.py` — добавлены настройки n8n_url, n8n_api_key - `backend/.env` — добавлен N8N_API_KEY ### 2. Синхронизация dev и prod ✅ **Проблема:** Dev и prod сильно разошлись, в проде появлялись DEV-секции. **Решение:** - Скопированы файлы из работающего prod контейнера - Удалены все "DEV MODE" секции из frontend компонентов - Добавлен `terserOptions` в vite.config.ts для удаления console.log в проде - Создан `frontend/Dockerfile.prod` для правильной сборки **Изменённые frontend файлы:** - `Step1Phone.tsx` — убраны DEV кнопки - `Step3Payment.tsx` — убран DEBUG код SMS - `StepDescription.tsx` — useMockWizard=false в проде - `StepDocumentUpload.tsx` — убраны DEV секции - `ClaimForm.tsx` — убран DebugPanel, исправлена навигация - `vite.config.ts` — drop_console в production ### 3. Обработка out_of_scope событий ✅ **Проблема:** Когда n8n возвращает `out_of_scope`, фронтенд не обрабатывал это. **Решение:** - Добавлена обработка `event_type: "out_of_scope"` в `StepWizardPlan.tsx` - Показывается карточка с сообщением и suggested_actions - Кнопка "Связаться с поддержкой" отправляет webhook на n8n - После отправки — редирект на главную страницу **Webhook:** `https://n8n.clientright.pro/webhook/3ef6ff67-f3f2-418e-a300-86cb4659dbde` ### 4. Исправление навигации ✅ **Проблема:** Обе кнопки "← Изменить описание" и "Новое обращение" вели на начальный экран. **Решение:** - "← Изменить описание" → `onPrev()` → шаг описания проблемы - "Новое обращение" → `window.location.reload()` → начальный экран **Изменённый файл:** `ClaimForm.tsx` — исправлен `onPrev` для `StepWizardPlan` ### 5. User-friendly сообщения ✅ **Проблема:** Технические ошибки показывались пользователям. **Решение:** - Сообщение "План вопросов не получен..." → "Обработка занимает больше времени, чем обычно. Попробуйте ещё раз." --- ## Техническая информация ### N8N API - **URL:** https://n8n.clientright.pro - **Workflow ID:** b4K4u851b4JFivyD - **Header:** `X-N8N-API-KEY` (не Bearer!) ### Redis буферизация - **Ключ буфера:** `ticket_form:buffer:description` - **TTL:** 24 часа - **Методы:** `buffer_push()`, `buffer_get_all()`, `buffer_size()` ### Docker prod - **Frontend:** `ticket_form_frontend_prod` на порту 5176 - **Backend:** `ticket_form_backend_prod` на порту 8200 - **Dockerfile:** `frontend/Dockerfile.prod` (multi-stage build) --- ## Git Все изменения запушены в: - **origin** (erv-platform): http://147.45.146.17:3002/negodiy/erv-platform.git - **aiform_prod** (новый): http://147.45.146.17:3002/negodiy/aiform_prod.git **Commit:** `Production fixes: n8n workflow auto-restart, user-friendly messages, fixed navigation buttons` --- ## TODO на потом - [ ] Протестировать полный флоу с падением n8n workflow - [ ] Добавить алерты если workflow не поднимается после нескольких попыток - [ ] Логирование буферизованных сообщений для мониторинга