Files
markclean-doc/changelog.md
T
2026-09-25 12:36:08 +03:00

6.5 KiB
Raw Blame History

[0.8.6-beta] - 2026-09-25

Добавлено

  • Credit-Based Billing: Полная переработка биллинга — переход от подписок к системе кредитов. Платные кредиты не сгорают и не имеют срока действия, бесплатный дневной лимит (5 запросов/сутки) сбрасывается каждые 24 часа.
  • Priority Deduction Logic: Двухуровневое списание с приоритетом — сначала расходуются платные кредиты, затем бесплатный дневной лимит. Атомарные SQL-операции гарантируют корректность при конкурентных запросах.
  • Credit Packages: Три пакета кредитов для покупки — Старт (1 000 за 99 ₽), Оптимальный (3 000 за 199 ₽, −33%), Профи (8 000 за 399 ₽, −50%).
  • Billing API v2: Новые эндпоинты GET /api/billing/credits (баланс), GET /api/billing/packages (каталог пакетов), POST /api/billing/purchase (покупка).
  • Test Endpoints: Отладочные эндпоинты POST /api/billing/test/add-credits (+100 кредитов) и POST /api/billing/test/reset-daily (сброс дневного лимита) для упрощения разработки.
  • Skeleton Loaders: Плавные скелетон-загрузчики в QuotaBadge и UserDropdown при ожидании данных биллинга.
  • i18n Expansion: Новые ключи переводов (RU/EN) для кредитной системы: баланс кредитов, дневной лимит, пакеты, покупка, цена за запрос, процент выгоды.

Изменено

  • Database Schema: Удалены таблицы subscriptions и user_current_usage. Добавлена таблица user_credits (credits, daily_used, daily_reset_at) с CHECK-ограничениями и каскадным удалением.
  • Domain Layer: Полная замена Subscription/PlanLimits/UsageStats на UserCredits/CreditPackage/PackagesConfig с хелпер-методами (CanUseCredit, ShouldResetDaily, DeductCredit).
  • QuotaService: Переписан с нуля — убрана логика подписок и автопродления, добавлен автоматический сброс дневного лимита при проверке квоты (lazy reset через time.Since).
  • Frontend Billing Store: BillingStore теперь хранит CreditsResponse вместо SubscriptionResponse, оптимистичное обновление корректно обрабатывает приоритет (кредиты → дневной лимит).
  • QuotaBadge Component: Адаптивное отображение — ⚡ 1 234 при наличии кредитов, 📅 2/5 при использовании дневного лимита. Мини-прогресс-бар показывается только при отсутствии кредитов.
  • UserDropdown: Новый блок квоты с прогресс-баром дневного использования, таймером сброса и кнопкой «Купить кредиты» с градиентным стилем.
  • Pricing Page: Полная переработка — карточки пакетов вместо тарифных планов, отображение цены за запрос (в копейках), бейджи выгоды.
  • Error Handling: Обновлён HTTP 402 ответ quota_exceeded — сообщение теперь учитывает обе причины (нет кредитов + дневной лимит исчерпан).
  • Cache Strategy: Кэш баланса кредитов (TTL 5 мин) вместо кэша подписок (TTL 10 мин) — более агрессивная инвалидация для часто меняющихся данных.
  • Removed: Удалены устаревшие SubscriptionRepository, UsageRepository, feature flags инфраструктура, все эндпоинты тестового апгрейда планов.

[0.7.4-beta] - 2026-09-22

Добавлено

  • Billing & Subscriptions: Модуль управления тарифными планами (Free, Basic, Pro) с ежемесячными квотами и атомарным трекингом использования (usage tracking).
  • Auth & Security: Полноценный цикл аутентификации на HttpOnly cookies, сброс пароля по OTP на email и защита от брутфорса.
  • Rate Limiting: Многоуровневое ограничение запросов (суточное для анонимных пользователей, месячное по тарифам для авторизованных).
  • History & Logs: Пагинируемая история конвертаций в API и интерфейсе с разделением хранения логов и лимитов.
  • UX & Frontend Integration: Уведомления об исчерпании лимитов, модальные окна регистрации и повторное использование сохраненных URL.

Изменено

  • API v2: Переход бэкенда на новую версию архитектуры (Clean Architecture).
  • Database Architecture: Миграция хранилища на PostgreSQL (управление миграциями через Goose) и Redis для кэширования и лимитов.
  • CI/CD Pipeline: Автоматизация сборки Docker-образов и деплоя через приватный registry Gitea.

[0.5.0-alpha] - 2026-06-15

Добавлено

  • Базовый API конвертации HTML в чистый Markdown для LLM.
  • Поддержка первичного веб-интерфейса на SvelteKit.
  • Базовая обработка ошибок и первичная валидация входных URL.

[0.1.0-alpha] - 2026-03-01

Добавлено

  • Инициализация проекта MarkClean, MVP мотора конвертации текста.