# Changelog ## 2025-10-10 - Улучшения UI и функционала ### ✨ Новые возможности #### 1. Модальные окна - **Создан компонент `Modal`** - универсальное модальное окно с типами: info, success, error, warning - **Создан компонент `ConfirmModal`** - модальное окно подтверждения с кнопками действий - **Заменены все `alert()` и `confirm()`** на красивые модальные окна - Добавлена анимация появления модалок #### 2. Повторное ревью - **Добавлена кнопка "🔄 Повторить ревью"**: - Отображается для завершенных ревью - Отображается для упавших ревью (с ошибками) - **Backend endpoint** для повторного запуска: `POST /api/reviews/{review_id}/retry` - Модальное подтверждение перед повторным запуском #### 3. Улучшенные промпты AI - **Более строгий системный промпт** - агент теперь внимательнее к деталям - **Детальный diff review промпт** с конкретными примерами: - Находит опечатки (например, `'shmapplication/json'`) - Находит незакрытые скобки в JSX - Находит неправильное использование React key - Находит нарушения синтаксиса #### 4. Улучшенные комментарии в PR - Агент **ВСЕГДА оставляет комментарий** в PR: - Если нашел проблемы: подробный список с severity - Если не нашел: "✅ Серьезных проблем не найдено!" - **Красивый summary** с подсчетом: ``` 🤖 AI Code Review завершен Найдено проблем: 3 - ❌ Критичных: 2 - ⚠️ Важных: 1 Проанализировано файлов: 2 ``` ### 🐛 Исправления #### 1. Исправлена критическая ошибка с токенами - **Проблема**: API токены передавались в зашифрованном виде в Git сервисы - **Решение**: Добавлена расшифровка токенов перед использованием в `ReviewerAgent._get_git_service()` - **Результат**: Gitea/GitHub/Bitbucket API теперь принимают токены (401 ошибка исправлена) #### 2. Исправлена ошибка парсинга CORS - **Проблема**: `pydantic-settings` не мог распарсить `cors_origins` - **Решение**: Добавлен validator для поддержки разных форматов: - Через запятую: `http://localhost:5173,http://localhost:3000` - JSON массив: `["http://localhost:5173"]` - Одиночная строка: `http://localhost:5173` ### 📁 Новые файлы - `frontend/src/components/Modal.tsx` - Компоненты модальных окон - `START_PROJECT.md` - Упрощенная инструкция по запуску - `CHANGELOG.md` - Этот файл ### 🔄 Измененные файлы **Backend:** - `backend/app/config.py` - Добавлен validator для cors_origins - `backend/app/utils.py` - Добавлена обработка ошибок расшифровки - `backend/app/agents/reviewer.py` - Расшифровка токенов, улучшенная логика комментариев - `backend/app/agents/prompts.py` - Улучшенные промпты для AI - `backend/app/api/repositories.py` - Обработка ошибок расшифровки - `backend/.env` - Правильный формат конфигурации **Frontend:** - `frontend/src/index.css` - Анимация для модалок - `frontend/src/pages/Repositories.tsx` - Использование модалок - `frontend/src/pages/Reviews.tsx` - Функционал повторного ревью + модалки - `frontend/src/components/ReviewList.tsx` - Кнопка "Повторить ревью" - `frontend/src/api/client.ts` - Добавлен метод `retryReview()` ### 🎨 UI/UX улучшения 1. **Модальные окна** вместо системных alert/confirm 2. **Индикаторы загрузки** в модалках подтверждения 3. **Кнопка повторного ревью** для упавших/завершенных ревью 4. **Анимированное появление** модалок 5. **Цветовая индикация** типа модалки (success/error/warning/info) ### 🧪 Как протестировать #### Модальные окна: 1. Добавьте репозиторий - увидите success модалку 2. Удалите репозиторий - появится confirm модалка 3. Попробуйте сканировать - появится confirm модалка #### Повторное ревью: 1. Перейдите в **Ревью** 2. Найдите завершенное или упавшее ревью 3. Нажмите **🔄 Повторить** (или **🔄 Повторить ревью**) 4. Подтвердите в модалке 5. Ревью запустится заново #### Улучшенный AI: 1. Создайте PR с ошибками: - Опечатка в строке (например, `'shmapplication/json'`) - Незакрытая скобка в JSX - Неправильный `key` в React списке 2. Запустите ревью 3. Агент должен найти ВСЕ эти проблемы и прокомментировать ### 📊 Метрики - **Добавлено**: ~500 строк кода - **Изменено**: ~15 файлов - **Новых компонентов**: 2 (Modal, ConfirmModal) - **Новых API методов**: 1 (retryReview) - **Исправлено критических багов**: 2 ### 🚀 Следующие шаги Потенциальные улучшения: - [ ] Добавить настройки агента (temperature, model) - [ ] Webhook автоматическое создание при добавлении репозитория - [ ] Фильтрация файлов для ревью (ignore patterns) - [ ] Кастомные правила ревью - [ ] История изменений репозитория - [ ] Email уведомления о завершении ревью