# Changelog

Все важные изменения в проекте документируются в этом файле.

## [v0.0.6] - 2025-01-27

### Added
- Улучшено облако тегов для экономии места и лучшего UX
- Реализован компактный дизайн с показом только топ-5 тегов на десктопе и топ-3 на мобильных
- Добавлен элегантный разделитель с кнопкой "Показать все" в стиле горизонтальной линии с текстом по центру
- Реализована плавная анимация появления/скрытия тегов с использованием Vue 3 Transition
- Добавлена адаптивность - автоматическое переключение между мобильным и десктопным режимом
- Интегрирована иконка стрелки с анимацией вращения для кнопки "Показать все"
- Реализовано умное поведение - автоматическое скрытие тегов при выборе из скрытой части
- Добавлено отслеживание размера экрана с помощью Vue 3 Composition API
- Создан тестовый файл test-tags.html для демонстрации улучшений

### Changed
- Оптимизирован компонент TagCloud.vue для минималистичного дизайна
- Уменьшено вертикальное пространство, занимаемое облаком тегов
- Улучшена отзывчивость интерфейса на мобильных устройствах
- Сохранена вся функциональность фильтрации по тегам

### Improved
- **Адаптивное количество тегов**: Вместо фиксированного количества тегов теперь показывается максимум 1 строка тегов, которая автоматически адаптируется к ширине экрана
- **ResizeObserver интеграция**: Добавлено точное отслеживание размера контейнера для динамического расчета количества видимых тегов
- **Уменьшены отступы**: Убран большой отступ после кнопки "Показать все" для более компактного дизайна
- **Улучшенная адаптивность**: Количество тегов теперь рассчитывается на основе реальной ширины контейнера, а не фиксированных брейкпоинтов
- **Ограничение высоты**: Добавлено ограничение `max-h-10 overflow-hidden` для принудительного отображения тегов в одну строку
- **Оптимизированные отступы**: Уменьшены отступы разделителя с `my-2` на `my-1` и добавлен `mt-1` для скрытых тегов
- **Минимальные отступы**: Дальнейшее уменьшение отступов до `mb-1`, `my-0.5` и `mt-0.5` для максимально компактного дизайна
- **Убран нижний отступ**: Изменен padding контейнера с `p-6` на `p-6 pb-2` для устранения большого отступа между кнопкой "Показать все" и нижним краем блока
- **Исправлена фильтрация**: Исправлен синтаксис emit в функции handleTagClick для корректной работы фильтрации по тегам в основном приложении
- **Улучшен UX выбора тегов**: При выборе тега из скрытой части он автоматически перемещается в первую позицию видимой части, обеспечивая лучшую видимость выбранного тега
- **Автоматическое закрытие списка**: При выборе тега из скрытой части список автоматически закрывается для лучшего фокуса на выбранном теге
- **Упрощенная кнопка сброса**: Изменен текст кнопки сброса с "Показать мои ссылки" на "Сбросить" и убран разделитель для более чистого дизайна
- **Исправлены заголовки API**: Добавлен заголовок `Accept: application/json` для всех запросов к API, что решает проблему получения HTML ошибок вместо JSON при повторной отправке ссылок

## [v0.0.5] - 2025-01-27

### Added
- Интеграция с системой уровней пользователей из OpenAPI спецификации
- Добавлен композабл `useUserLevel` для работы с уровнями пользователей
- Создан компонент `UserLevelInfo.vue` для отображения информации об уровне пользователя
- Добавлены новые методы в API сервис: `getUserLevels()` и `getUserLevel()`
- Обновлена схема валидации API для новых эндпоинтов `/user-levels` и `/user-level`
- Создана отдельная страница профиля `/profile` с информацией об уровне пользователя
- Добавлен маршрут для страницы профиля в роутер
- Имя пользователя в навигации теперь кликабельно и ведет на страницу профиля
- Добавлено активное состояние для имени пользователя на странице профиля
- Обновлен дизайн кнопки "Выйти" - только иконка выхода в белой кнопке с тонкой рамкой и тенью
- Заменен блок последних ссылок на дашборде на компонент LinkList в режиме карточек
- Уменьшено количество отображаемых последних ссылок с 20 до 10
- Добавлены действия (повторный запуск, удаление) для ссылок на дашборде
- Редизайн блока статистики - компактные карточки с центрированным расположением текста (без иконок)
- Добавлена кнопка "Отправить" в формы добавления ссылок на дашборде и странице ссылок
- Улучшен UX - кнопка отключается при пустом поле
- Убраны иконки из полей ввода ссылок для более минималистичного вида
- Заменены модальные окна на уведомления для добавления и удаления ссылок
- Оптимизирована скорость добавления ссылок - уведомление показывается сразу, данные обновляются в фоне
- Добавлены индикаторы загрузки для кнопок отправки ссылок
- Добавлен счетчик лимитов в хедер (ссылки и токены) с цветовой индикацией
- Счетчик лимитов автоматически обновляется после добавления ссылок
- Логотип стал кликабельным и ведет на дашборд
- Улучшен компонент загрузки ссылок - подсказка клавиатурного сокращения перемещена в правый угол инпута
- Добавлена поддержка разных ОС для клавиатурных сокращений (⌘K для Mac, Ctrl+K для Windows/Linux)
- Увеличена иконка клавиатурного сокращения для лучшей видимости
- Исправлена работа кнопки удаления на дашборде - добавлены обработчики событий
- Добавлено подтверждение удаления ссылок на обеих страницах
- Отображение доступных функций и AI моделей для текущего уровня
- Визуальные индикаторы превышения лимитов токенов и ссылок
- Обновлена схема пользователя с новыми полями `user_level` и `user_level_display`

## [v0.0.4] - 2025-01-27

### Added
- Добавлено отображение тегов ссылок в интерфейсе
- Теги отображаются как синие бейджи в карточках ссылок и timeline режиме
- Создано облако тегов с подсчетом количества статей по каждому тегу
- Реализована фильтрация по тегам через клик на тег в облаке
- Добавлена кнопка "Показать все ссылки" для сброса фильтра по тегам
- Облако тегов отображается на странице списка ссылок
- Интеграция с новыми API endpoints для работы с тегами
- Серверная фильтрация по тегам через API параметр tags
- Оптимизация производительности - убрана загрузка всех ссылок для подсчета тегов
- Интеграция с новым API endpoint `/links/stats` для получения статистики
- Оптимизация загрузки статистики на главной странице - теперь используется специализированный endpoint
- Добавлено отображение количества тегов в статистике на главной странице
- Создана страница "Условия использования" с полным текстом условий
- Добавлен маршрут `/terms` для доступа к условиям использования
- Обновлен текст условий использования на подробную версию с 10 разделами
- Удален Vue компонент Terms.vue - используется статический HTML файл
- Добавлена ссылка "Вернуться на главную" на странице условий использования
- Обновлен текст политики конфиденциальности на подробную версию с 11 разделами
- Добавлена ссылка "Вернуться на главную" на странице политики конфиденциальности

## [v0.0.3] - 2025-01-27

### Added
- Улучшено отображение относительного времени с шагом в минутах
- Создана утилита `timeFormatter.js` для переиспользования форматирования времени
- Время теперь отображается как "только что" (менее минуты), "X минут назад", "X часов назад", "X дней назад"
- Добавлено правильное склонение для русского языка (1 минуту, 2 минуты, 5 минут и т.д.)
- Реализовано автообновление времени каждую минуту с помощью композабла `useAutoUpdateTime`
- Создан компонент `RelativeTime.vue` для отображения автообновляемого времени
- Добавлен tooltip с полной датой при наведении на время
- Реализовано автообновление статусов ссылок каждые 10 секунд с помощью композабла `useAutoUpdateStatus`
- Создан компонент `StatusIndicator.vue` с анимацией для обрабатывающихся статусов
- Статусы автоматически обновляются только для ссылок в процессе обработки (pending, queued, processing, parsing, converting, retrying)

### Changed
- Заменен фильтр по статусам на фильтр по типам ссылок на странице списка ссылок
- Добавлены типы: видео, статья, изображение, документ, аудио, другое

## [v0.0.2] - 2025-01-27

### Added
- Создан логотип Skleroznik - буква S в квадрате с закругленными углами
- Добавлен компонент Logo.vue с настраиваемым размером и опциональным текстом
- Логотип интегрирован в навигацию дашборда и страницу входа
- Используется SVG логотип с буквой S в квадратном контейнере
- Создан общий компонент Footer.vue с ссылками на политику и условия использования
- Footer добавлен на все страницы приложения (вход и дашборд)
- Добавлен копирайт © 2025 Skleroznik на всех страницах
- Создана система валидации API ответов согласно OpenAPI спецификации
- Добавлены автоматические предупреждения об ошибках API для команды разработки

### Fixed
- Добавлено временное решение для ошибки API - endpoint /links возвращает массив вместо объекта с полем data согласно OpenAPI спецификации

## [v0.0.1] - 2025-01-27

### Added
- Добавлена статистика ссылок по статусам на дашборде
- Реализовано отображение количества ссылок в разных статусах (завершенные, в обработке, ожидают, ошибки)
- Добавлен метод `getAllLinks()` для получения всех ссылок пользователя
- Создан красивый UI с карточками статистики и детальной таблицей
- Добавлена группировка статусов для удобного просмотра
- Реализована обработка ошибок и состояния загрузки
- Статистика подсчитывается на клиенте на основе данных API 