Skip to content

v0.2.0 — Mobile-ready core

Choose a tag to compare

@oxso1teee oxso1teee released this 02 Sep 06:48
· 108 commits to main since this release
6197c2c

Mobile-ready core: security hardening, testing, mobile wrapper scaffold

По мотивам docs/release-2026-08-22/ (00–11) — большого аудита состояния проекта перед попыткой мобильного релиза, и PR #24–#48, которые он породил.

Безопасность и приватность

  • Атомарный rate-limit перевода (fix/atomic-translate-rate-limit, #26) — закрыта race condition через pg_advisory_xact_lock в supabase/migrations/0045_atomic_translate_rate_limit.sql.
  • Валидация магических байт при загрузке файлов (fix/storage-magic-byte-validation, #27).
  • Идемпотентность Stripe-вебхука (fix/stripe-webhook-idempotency, #30).
  • npm-audit как отдельный CI-gate (ci/npm-audit-gate, #31).
  • Честная секция support-контакта в Privacy/Terms (fix/security-and-support-contact, #25).

Тестирование

  • e2e на удаление/экспорт аккаунта (#28), RLS cross-user isolation (#29).
  • 386 unit-тестов на момент аудита (сейчас — 403, см. #54).

Продукт

  • Импорт видео в Ридер v2 (#24).
  • Wow-анимации и визуальный проход (#33), theme toggle (#34), page transitions (#35, #38), icon system (#36), landing hero (#37).
  • NGSL стартовые колоды (#39), Language Twin — визуальный аватар и share-карточка (#40, #41).
  • Персональный API-токен + тап-перевод на любой странице через браузерное расширение (#42, #43).
  • Недельная лига/лидерборд с opt-in приватностью (#44), живые дуэли по словарю 1-на-1 (#45, #46).
  • PWA-манифест + честная privacy policy для магазинов (#47).
  • Capacitor: нативные Android/iOS-обёртки поверх того же Next.js-приложения (#48).

Известный пробел (честно, не скрываю)

docs/release-2026-08-22/11_CHEKLIST_ZAPUSKA_V_STORY.md описывает PR 3–5/N мобильного релиза (иконки/сплэши, сборка и живая проверка Android APK, подготовка iOS-проекта, скриншоты и текст листинга сторов, финальный чек-лист) — они существуют только на неслитой ветке feat/mobile-capacitor-setup и не входят в этот тег, т.к. не попали в main. Конфигурация публикации в App Store/Google Play — намеренно вне скоупа текущей работы.