code-review-agent/docs/CHANGELOG.md

128 lines
6.8 KiB
Markdown
Raw 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.

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