### 🚨 Исправлено - **Лимит топиков API**: Убрано жесткое ограничение в 100 топиков, теперь поддерживается до 1000 топиков - Обновлен лимит функции `get_topics_with_stats` с 100 до 1000 - Обновлен лимит по умолчанию резолвера `get_topics_by_community` с 100 до 1000 - Это решает проблему, когда API искусственно ограничивал получение топиков ### 🧪 Исправлено - **Тест-сьют**: Исправлены все падающие тесты для достижения 100% прохождения - Исправлено утверждение теста уведомлений для невалидных действий (fallback к CREATE) - Исправлены тесты публикации черновиков путем добавления обязательных топиков - Исправлен контекст авторизации в тестах черновиков (добавлены роли и токен) - Установлены браузеры Playwright для решения проблем с браузерными тестами - Все тесты теперь проходят: 361 пройден, 31 пропущен, 0 провален ### 🔧 Техническое - Улучшены тестовые фикстуры с правильным созданием топиков для черновиков - Улучшено тестовое мокирование для GraphQL контекста с требуемыми данными авторизации - Добавлена правильная обработка ошибок для требований публикации черновиков
This commit is contained in:
51
CHANGELOG.md
51
CHANGELOG.md
@@ -1,80 +1,101 @@
|
||||
# Changelog
|
||||
|
||||
## [0.9.12] - 2025-08-26
|
||||
|
||||
### 🚨 Исправлено
|
||||
- **Лимит топиков API**: Убрано жесткое ограничение в 100 топиков, теперь поддерживается до 1000 топиков
|
||||
- Обновлен лимит функции `get_topics_with_stats` с 100 до 1000
|
||||
- Обновлен лимит по умолчанию резолвера `get_topics_by_community` с 100 до 1000
|
||||
- Это решает проблему, когда API искусственно ограничивал получение топиков
|
||||
|
||||
### 🧪 Исправлено
|
||||
- **Тест-сьют**: Исправлены все падающие тесты для достижения 100% прохождения
|
||||
- Исправлено утверждение теста уведомлений для невалидных действий (fallback к CREATE)
|
||||
- Исправлены тесты публикации черновиков путем добавления обязательных топиков
|
||||
- Исправлен контекст авторизации в тестах черновиков (добавлены роли и токен)
|
||||
- Установлены браузеры Playwright для решения проблем с браузерными тестами
|
||||
- Все тесты теперь проходят: 361 пройден, 31 пропущен, 0 провален
|
||||
|
||||
### 🔧 Техническое
|
||||
- Улучшены тестовые фикстуры с правильным созданием топиков для черновиков
|
||||
- Улучшено тестовое мокирование для GraphQL контекста с требуемыми данными авторизации
|
||||
- Добавлена правильная обработка ошибок для требований публикации черновиков
|
||||
|
||||
## [0.9.11] - 2025-08-25
|
||||
|
||||
### 📦 Added
|
||||
### 📦 Добавлено
|
||||
- **Автоматическое определение главного топика**: Система автоматически назначает главный топик при публикации
|
||||
- **Валидация топиков при публикации**: Проверка наличия хотя бы одного топика перед публикацией
|
||||
|
||||
### 🏗️ Changed
|
||||
### 🏗️ Изменено
|
||||
- **Исправлена логика публикации черновиков**: Теперь автоматически устанавливается главный топик при отсутствии
|
||||
- **Обновлена логика создания статей**: Гарантируется наличие главного топика во всех публикациях
|
||||
|
||||
### 🐛 Fixed
|
||||
### 🐛 Исправлено
|
||||
- **Исправлена критическая ошибка с публикацией статей**: Статьи теперь корректно появляются в фидах после публикации
|
||||
- **Гарантирован главный топик**: Все опубликованные статьи теперь обязательно имеют главный топик (`main=True`)
|
||||
|
||||
## [0.9.10] - 2025-08-23
|
||||
|
||||
### 🐛 Fixed
|
||||
### 🐛 Исправлено
|
||||
- **Исправлена ошибка инициализации MuVERA**: Устранена ошибка `module 'muvera' has no attribute 'Client'`
|
||||
- **Создан MuveraWrapper**: Реализован простой wrapper вокруг `muvera.encode_fde` для обеспечения ожидаемого интерфейса
|
||||
- **Добавлена зависимость numpy**: Установлен numpy>=1.24.0 для векторных операций в поисковом сервисе
|
||||
|
||||
### 🏗️ Changed
|
||||
### 🏗️ Изменено
|
||||
- **Рефакторинг SearchService**: Заменен несуществующий `muvera.Client` на `MuveraWrapper`
|
||||
- **Упрощена архитектура поиска**: Поисковый сервис теперь использует доступную функциональность FDE кодирования
|
||||
- **Обновлен requirements.txt**: Добавлен numpy для поддержки векторных вычислений
|
||||
|
||||
### 📦 Added
|
||||
### 📦 Добавлено
|
||||
- **MuveraWrapper класс**: Простая обертка для `muvera.encode_fde` с базовой функциональностью поиска
|
||||
- **Поддержка FDE кодирования**: Интеграция с MuVERA для кодирования многомерных векторов в фиксированные размерности
|
||||
- **Базовая функциональность поиска**: Простая реализация поиска по косинусному сходству
|
||||
|
||||
### 🧪 Tests
|
||||
### 🧪 Тесты
|
||||
- **Проверена инициализация**: SearchService успешно создается и инициализируется
|
||||
- **Проверен базовый поиск**: Метод search() работает корректно (возвращает пустой список для пустого индекса)
|
||||
|
||||
### 🐛 Fixed
|
||||
### 🐛 Исправлено
|
||||
- **Исправлена критическая ошибка с уведомлениями**: Устранена ошибка `null value in column "kind" of relation "notification" violates not-null constraint`
|
||||
- **Исправлен возвращаемый формат publish_draft**: Теперь возвращается `{"draft": draft_dict}` вместо `{"shout": shout}` для соответствия GraphQL схеме
|
||||
- **Фронтенд получает корректные данные**: При публикации черновика фронтенд теперь получает ожидаемое поле `draft` вместо `null`
|
||||
- **Исправлена ошибка GraphQL**: Устранена ошибка "Cannot return null for non-nullable field Draft.topics" при публикации черновиков
|
||||
|
||||
### 🏗️ Changed
|
||||
### 🏗️ Изменено
|
||||
- **Обновлена функция save_notification**: Добавлено обязательное поле `kind` для создания уведомлений
|
||||
- **Исправлена типизация**: Поле `kind` теперь корректно преобразуется из `action` в `NotificationAction` enum
|
||||
- **Убрано неиспользуемое значение PUBLISHED**: Из enum `NotificationAction` убрано значение, которое не использовалось
|
||||
- **Рефакторинг кода**: Создана вспомогательная функция `create_draft_dict()` для избежания дублирования в `publish_draft` и `unpublish_draft`
|
||||
|
||||
### 📦 Added
|
||||
### 📦 Добавлено
|
||||
- **Добавлен fallback для нестандартных действий**: Если `action` не соответствует enum, используется `NotificationAction.CREATE`
|
||||
- **Созданы тесты для уведомлений**: Добавлены тесты проверки корректного создания уведомлений
|
||||
- **Созданы тесты для publish_draft**: Добавлены тесты проверки правильного возвращаемого формата
|
||||
|
||||
### 🧪 Tests
|
||||
### 🧪 Тесты
|
||||
- **test_notification_fix.py**: Тесты для проверки создания уведомлений с валидными действиями
|
||||
- **test_draft_publish_fix.py**: Тесты для проверки возвращаемого формата в `publish_draft`
|
||||
|
||||
## [0.9.9] - 2025-08-21
|
||||
|
||||
### 🐛 Fixed
|
||||
### 🐛 Исправлено
|
||||
- Исправлена ошибка публикации черновиков: убран недопустимый аргумент 'draft' из создания Shout
|
||||
- Изменена архитектура связи Draft-Shout: теперь Draft.shout ссылается на опубликованную публикацию
|
||||
- Добавлено поле `shout` в модель Draft для хранения ссылки на опубликованную публикацию
|
||||
- Исправлена логика обновления и очистки поля `shout` при публикации/снятии с публикации
|
||||
|
||||
### 🏗️ Changed
|
||||
### 🏗️ Изменено
|
||||
- Модель Draft теперь имеет поле `shout` типа ForeignKey к Shout
|
||||
- Функция `create_shout_from_draft` больше не передает недопустимый аргумент
|
||||
- Функции `publish_draft` и `unpublish_draft` корректно работают с новой архитектурой
|
||||
|
||||
### 📦 Added
|
||||
### 📦 Добавлено
|
||||
- Добавлена зависимость alembic>=1.13.0 для управления миграциями
|
||||
- Создана миграция для добавления поля `shout` в таблицу `draft`
|
||||
- Добавлены тесты для проверки исправленной функциональности
|
||||
|
||||
### 🧪 Tests
|
||||
### 🧪 Тесты
|
||||
- Создан тест `test_draft_publish_fix.py` для проверки исправлений
|
||||
- Тесты проверяют отсутствие поля `draft` в модели Shout
|
||||
- Тесты проверяют наличие поля `shout` в модели Draft
|
||||
|
||||
Reference in New Issue
Block a user