diff --git a/docs/SESSION_LOG_2025-12-29.md b/docs/SESSION_LOG_2025-12-29.md new file mode 100644 index 0000000..a09da39 --- /dev/null +++ b/docs/SESSION_LOG_2025-12-29.md @@ -0,0 +1,105 @@ +# Лог сессии 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 не поднимается после нескольких попыток +- [ ] Логирование буферизованных сообщений для мониторинга +