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

5.0 KiB
Raw Blame History

Лог сессии 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

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

Все изменения запушены в:

Commit: Production fixes: n8n workflow auto-restart, user-friendly messages, fixed navigation buttons


TODO на потом

  • Протестировать полный флоу с падением n8n workflow
  • Добавить алерты если workflow не поднимается после нескольких попыток
  • Логирование буферизованных сообщений для мониторинга