Files
aiform_prod/SESSION_LOG_2025-12-29.md
2025-12-29 01:28:24 +03:00

106 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лог сессии 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 не поднимается после нескольких попыток
- [ ] Логирование буферизованных сообщений для мониторинга