Files
aiform_dev/SESSION_LOG_2025-12-29.md

106 lines
5.0 KiB
Markdown
Raw Permalink Normal View History

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