Files
2025-10-13 14:18:37 +03:00

128 lines
6.8 KiB
Markdown

# 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 уведомления о завершении ревью