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