वेВедамритаWhats News AppНа главную
история обновлений

Whats News App

Здесь простым языком собраны новые версии приложения Ведамрита: что добавили, что улучшили и какие баги исправили.

текущая версия
1.52
5 мая 2026 г.

Версия 1.52

Админка: broadcast push, воронка онбординга, топ юзеров, Telegram-связки.

  • Раздел `/admin/broadcast` — массовая рассылка web-push на сегмент: все активные / только с подключенным Telegram / только без TG. Указываешь заголовок, текст, URL для перехода — отправка с подтверждением. Возвращает аудиторию и количество попыток отправки.
  • Раздел `/admin/funnel` — воронка онбординга: для каждого типа квеста (`telegram_link`, `profile_name`, `profile_birth`, `profile_city`) показывает счётчики pending/completed/skipped и конверсию в %.
  • Раздел `/admin/top` — топ-30 юзеров по балансу и топ-30 по тратам за последние 30 дней (с разделением списанное/пополненное).
  • Раздел `/admin/telegram` — список всех привязок юзеров к боту `@vedamrita_bot` с username, chat_id, статусом, датой verify.
  • Backend: новые endpoints `/api/admin/push/broadcast`, `/api/admin/telegram-links`, `/api/admin/users/top/balance`, `/api/admin/users/top/spending`. Публичный метод `AppPushService.sendDirect(userId, payload)`.
  • В NAV админки добавлены пункты «Broadcast», «Воронка», «Топ», «TG».
все версии

Новые версии сверху

1.52

Версия 1.52

Админка: broadcast push, воронка онбординга, топ юзеров, Telegram-связки.

  • Раздел `/admin/broadcast` — массовая рассылка web-push на сегмент: все активные / только с подключенным Telegram / только без TG. Указываешь заголовок, текст, URL для перехода — отправка с подтверждением. Возвращает аудиторию и количество попыток отправки.
  • Раздел `/admin/funnel` — воронка онбординга: для каждого типа квеста (`telegram_link`, `profile_name`, `profile_birth`, `profile_city`) показывает счётчики pending/completed/skipped и конверсию в %.
  • Раздел `/admin/top` — топ-30 юзеров по балансу и топ-30 по тратам за последние 30 дней (с разделением списанное/пополненное).
  • Раздел `/admin/telegram` — список всех привязок юзеров к боту `@vedamrita_bot` с username, chat_id, статусом, датой verify.
  • Backend: новые endpoints `/api/admin/push/broadcast`, `/api/admin/telegram-links`, `/api/admin/users/top/balance`, `/api/admin/users/top/spending`. Публичный метод `AppPushService.sendDirect(userId, payload)`.
  • В NAV админки добавлены пункты «Broadcast», «Воронка», «Топ», «TG».
1.51

Версия 1.51

Cron-tracker реальный, refund в credits, AI-анализ диалога.

  • `CronTrackerService` стал глобальным (`@Global` модулем), и существующие cron-задачи в `QuestsService` (раз в минуту watch TG verifications, раз в сутки remind sweep) теперь обёрнуты через `cronTracker.wrap()` — `/admin/cron` показывает реальные данные (количество запусков, длительность, статус, ошибки).
  • `/admin/credits` — у каждой debit-транзакции (delta < 0, кроме самих refund'ов) появилась кнопка «refund», которая через `POST /api/admin/credits/transactions/:id/refund` возвращает кредиты пользователю одним кликом.
  • `/admin/messages/conversation/:userId` — кнопка «AI-анализ»: backend через `gpt-4o-mini` проходит по последним 200 сообщениям диалога и возвращает JSON с суммаризацией на 3 строки, темами, тоном, тревожными флагами (суицид/насилие/депрессия — выводятся красной плашкой). Endpoint `POST /api/admin/users/:id/analyze`. Один запрос ≈ $0.001-0.005 в зависимости от длины диалога.
1.50

Версия 1.50

Админка: профиль 360°, ручная отправка сообщения от Амриты, заметки админа, refund одной кнопкой, cron-дашборд.

  • Раздел `/admin/users/<id>` — карточка профиля 360°: основные факты (баланс, score, последние действия), Telegram-связка, push-устройства, активные квесты, сгенерированные программы, последние транзакции — всё на одном экране.
  • «Отправить сообщение от Амриты вручную» прямо из карточки юзера: создаётся `kind=text, role=assistant, meta.module=admin_manual` + автоматически летит web-push. Полезно для саппорта и расследований.
  • Заметки админов на юзере (видны только админам, не юзеру). Новая таблица `user_admin_notes`, миграция `sql/20260505_user_admin_notes.sql`. Добавление и удаление прямо в карточке.
  • Refund одной кнопкой: `POST /api/admin/credits/transactions/:id/refund` использует `CreditsService.refundIfPossible`. UI кнопки появится в следующей итерации, endpoint уже готов.
  • Раздел `/admin/cron` — список cron-задач с количеством запусков, длительностью последнего выполнения, статусом ok/fail. Используется in-memory `CronTrackerService` (последние 100 запусков). Обновляется каждые 15 секунд.
  • В NAV админки добавлен пункт «Cron».
1.49

Версия 1.49

Большой апдейт админки: лента сообщений, диалоги, кредиты, push, программы.

  • Раздел `/admin/messages` — лента всех сообщений из чатов с фильтрами по email, роли (`user`/`assistant`/`system`), kind (`text`/`voice`/`quest`/...), `meta.module`, локали, диапазону дат и поиску по тексту. Пагинация по 50, ссылка «Диалог →» на каждой строке открывает полную беседу с этим пользователем.
  • Раздел `/admin/messages/conversation/:userId` — chronological просмотр диалога юзер↔Амрита bubble-стилем. Голосовые сообщения проигрываются прямо во встроенном плеере. Вверху ссылка на профиль 360°.
  • Раздел `/admin/credits` — таблица всех `credit_transactions` с фильтром по `reason`, агрегаты по причинам начислений/списаний (плашки кликабельны как быстрый фильтр), общая сумма балансов.
  • Раздел `/admin/push` — все web-push подписки всех юзеров: устройство (User-Agent), локаль, статус active/disabled, даты создания и последнего обновления. Сверху три плашки со сводкой.
  • Раздел `/admin/skill-programs` — список всех персональных программ навыков всех юзеров с фильтром по статусу (`draft`/`generating`/`active`/`completed`/`failed`), цветными бейджами и поиском.
  • Backend: добавлены 9 admin endpoints под `/api/admin/*` (messages, credits, push, quests, skill-programs, user 360°), вынесенные в отдельный `AdminInsightsService` + `AdminInsightsController` для чистоты.
  • В NAV админки добавлены пункты «Чаты», «Кредиты», «Push», «Программы».
1.48

Версия 1.48

Готовая программа навыка теперь приходит и в Telegram — с кнопкой возврата прямо к этой карточке в чате.

  • Когда фоновая генерация программы навыка завершается (`state=ready` в `app-chat.service.ts:finishSkillProgram`), помимо появления карточки в `/app` и web-push уведомления, юзеру с verified Telegram-связкой автоматически уходит сообщение от `@vedamrita_bot`: «Я закончила собирать тебе персональную практику навыка „X“. Открыть?» с inline-кнопкой «Открыть в Ведамрите».
  • Кнопка ведёт на `https://vedamrita.org/app?skill=<programId>` — фронт читает query-параметр при загрузке `/app`, авто-прокручивает к карточке этой программы и подсвечивает её золотым ring-эффектом на 3.5 секунды.
  • Текст сообщения переведён на ru/en/hi/id; локаль берётся из `program.locale`. Если у юзера TG не подключён — этап молча пропускается, web-push при этом отрабатывает как обычно.
  • Новый публичный метод `MessengersService.notifySkillReady(userId, skillTitle, programId, locale)` — точка интеграции для будущих фоновых процессов, которым нужно дёрнуть юзера в TG (например, ежедневные напоминания о практике, реминды о незавершённых днях).
1.47

Версия 1.47

Починили самостоятельное удаление аккаунта и Telegram-бот.

  • Применена пропущенная миграция `sql/20260505_russian_compliance.sql` — таблица `user_consent_events` теперь есть в проде. До этого `DELETE /api/auth/me` (самостоятельное удаление аккаунта пользователем) падал с 500 при попытке зачистки истории согласий, и операция фактически не работала. Теперь возвращает 200, аккаунт удаляется корректно.
  • Telegram-бот `@vedamrita_bot` снова принимает обновления. Webhook был зарегистрирован на нерабочий домен `vedamrita.ru/api/webhooks/telegram` (домен 301-редиректит на `.org`, Telegram через redirect не ходит). Перевешен на `https://vedamrita.org/api/webhooks/telegram`, добавлен обязательный `secret_token` (`TELEGRAM_WEBHOOK_SECRET` в .env) — чужие POST'ы на webhook теперь отбиваются 403.
1.46

Версия 1.46

Запустили цепочку онбординг-квестов: первый шаг — подключение Telegram с подарком 200 кредитов.

  • Новый тип сообщений в чате — `quest`-карточки с особым визуальным стилем (тёплая золотая карточка с подарком, не похожая на обычные сообщения от Амриты). При первом заходе в `/app` создаются недостающие онбординг-квесты в зависимости от состояния профиля юзера.
  • Первый квест — `telegram_link`: подключение Telegram через `@vedamrita_bot`. После успешной верификации `verifiedAt` в `user_messengers` автоматически кладётся 200 кредитов на счёт через `credit_transactions` (новый `reason=quest_reward`), а в чат прилетает благодарственное сообщение от Амриты.
  • Дополнительные квесты заполнения профиля — `profile_name` / `profile_birth` / `profile_city` (по 50 кредитов каждый), хук на `PATCH /api/auth/me` автоматически закрывает их когда соответствующее поле становится непустым.
  • Автоматический реминд: cron `0 11 * * *` (Europe/Moscow) проходит по всем pending-квестам и, если прошло >48 часов с последнего напоминания, создаёт новую quest-карточку в чат + push-уведомление. Лимит — 2 напоминания, после чего квест переводится в `skipped`.
  • Новые endpoints: `GET /api/app/quests` (список квестов юзера), `POST /api/app/quests/:id/start-telegram` (получить linkCode + ссылку на бота), `POST /api/app/quests/:id/skip` (вручную помечает skipped).
  • Тексты квестов и наград написаны на ru/en/hi/id в негромком, ведическом стиле — без рекламной патетики.
  • Новая таблица `user_quests` (миграция `sql/20260505_user_quests.sql`); UNIQUE на `(user_id, type)` исключает дубли. Защита от двойного начисления — поле `reward_claimed_at`.
1.45

Версия 1.45

Сменили голос приветственного голосового от Амриты — стало мягче и ровнее на русском.

  • Welcome voice (`module=amrita_welcome`) теперь генерируется голосом `coral` (OpenAI `gpt-4o-mini-tts`) вместо `shimmer`. shimmer обучен преимущественно на английском и заметно «спотыкался» на русской просодии и ударениях; coral держит русский тембр ровнее при тех же стилевых инструкциях («тёплая, мягкая старшая сестра»).
  • Голос управляется ENV-переменной `OPENAI_TTS_VOICE` в `backend/.env` (текущее значение — `coral`) и продублирован дефолтом в `backend/src/app-chat/app-chat.service.ts` — если переменная когда-нибудь потеряется при чистом деплое, регрессии не будет.
  • Существующие сгенерированные welcome-mp3 (со старым голосом) не перегенерируются — защита от дублей в `maybeQueueOnboardingVoiceMessage` остаётся прежней. Новый голос услышат только новые пользователи.
1.44

Версия 1.44

Закрыли вторую SEO-волну: публичная страница карточек-пожеланий, похожие навыки, видимые breadcrumbs, локализованный 404, схема Амриты.

  • Появилась индексируемая публичная страница карточки-пожелания: `/wish/<code>` (и `/en|hi|id/wish/<code>`) с текстом, фоновой картинкой, 4-абзацным размышлением, JSON-LD `CreativeWork`, корректным `og:image` и кнопками «Открыть чат» / «Создать персональный портрет». До этого `/wish/<code>` возвращал 404 — это били 2336 ссылок в sitemap.
  • Skill landing получил блок «Похожие навыки» (6 карточек) на основе нового публичного `GET /api/skills/<slug>/related?locale=&limit=`. Логика: сначала тот же `category`, затем сортировка по пересечению `tags`, fallback на любой не-archived из других категорий.
  • На skill landing и wish detail добавлены **видимые** breadcrumbs (`<nav aria-label="Breadcrumbs">`) — Google рендерит rich-сниппет хлебных крошек только когда в DOM есть и `BreadcrumbList` JSON-LD, и видимая хлебная крошка.
  • Файл `app/not-found.tsx` — брендовый 404 с локализованными «Страница не найдена» / «Page not found» / «पृष्ठ नहीं मिला» / «Halaman tidak ditemukan» и CTA на главную и каталог навыков. До этого Next отдавал дефолтный английский 404 на любой неизвестный URL — это считалось thin content и било SEO.
  • В layout добавлена JSON-LD схема `Person` для Амриты — `knowsAbout` перечисляет источники (Гита, Бхагаватам, Чанакья-нити, ведическая астрология). Поисковики начнут ассоциировать имя «Амрита/Amrita/अमृता» с брендом.
  • OG-картинки skill landing увеличены до 1200×900 — это формат который Google Discover принимает в карусель.
  • `manifest.webmanifest` теперь динамический и зависит от локали (BCP-47 `lang`, локализованные `description` и `shortcuts.name`).
  • `lastmod` в sitemap для главной и `/skills` берётся как максимум `updatedAt` по всему контенту, для статических legal-страниц — фиксированная дата деплоя. Раньше всё было `new Date()` и поисковики могли решить что sitemap «шумит».
1.43

Версия 1.43

Подключили Google Tag Manager (GTM-K53B482G) на все страницы сайта.

  • GTM-инициализатор живёт в `<head>` каждой публичной и приватной страницы (главная, навыки, кабинет, /app, /admin, /login — все 4 локали), `<noscript>`-iframe — сразу после `<body>`, как и просит официальная Google-инструкция.
  • ID счётчика читается из `NEXT_PUBLIC_GTM_ID`; если переменная пустая — теги не вставляются. Файл `frontend/.env.production` уже содержит `NEXT_PUBLIC_GTM_ID=GTM-K53B482G`.
  • CSP в nginx (`/etc/nginx/snippets/security-headers.conf`) расширена под GTM/GA4/Yandex.Metrica: в `script-src` добавлены `googletagmanager.com`, `google-analytics.com`, `analytics.google.com`, `mc.yandex.ru`, `mc.yandex.com`, `yastatic.net`; в `frame-src` — `googletagmanager.com` (для noscript-iframe) и `mc.yandex.ru/com`.
  • Через GTM теперь можно подключать GA4, Google Ads, Yandex.Metrica, события e-commerce и conversion-теги без выкладки кода — все управляется в интерфейсе GTM.
1.42

Версия 1.42

Включили полноценный мультиязычный SEO под Яндекс и Google.

  • Добавили `/robots.txt` и `/sitemap.xml` с автогенерацией: ~1300 URL (216 навыков × 4 локали + 584 карточек × 4 локали + статика), у каждой записи `hreflang` на все 4 версии и `x-default`.
  • Метаданные `<title>`, `description`, `og:locale`, `og:title`, `og:description` и `<html lang>` теперь зависят от текущей локали (ru/en/hi/id) — раньше нерусские страницы отдавали русские мета-теги.
  • Skill landing-страницы получили `alternates.languages` со всеми 4 локалями, JSON-LD `Article` + `BreadcrumbList` + `FAQPage`, и собственный `opengraph-image` с заголовком навыка и категорией.
  • В layout добавлен JSON-LD `Organization` + `WebSite` (с `SearchAction`).
  • Поля верификации Yandex.Webmaster / Google Search Console + Yandex.Metrica / GA4 подключаются через env-переменные `NEXT_PUBLIC_YANDEX_VERIFICATION`, `NEXT_PUBLIC_GOOGLE_VERIFICATION`, `NEXT_PUBLIC_YANDEX_METRICA_ID`, `NEXT_PUBLIC_GA4_ID` (на админке/кабинете/`/app`/`/login` счётчики не подключаются).
  • Backend пушит обновления навыков и карточек в IndexNow (Yandex + Bing) — для этого ключ хранится в `INDEXNOW_KEY` и публикуется по `/<key>.txt`.
1.41

Версия 1.41

Перенесли инфраструктуру на новый dedicated-сервер DigitalOcean (Amsterdam).

  • Vedamrita теперь работает на новой машине DigitalOcean (AMS3, Ubuntu 24.04 LTS, 4 vCPU / 8 GB RAM / 154 GB NVMe), что должно слегка снизить задержку для европейских и российских пользователей.
  • Перенесены все данные: пользователи, навыки, программы, корпус знаний, истории чата, кредиты, согласия, audit-лог, файлы storage (turbo / app-voice / knowledge / generated-videos).
  • Усилены systemd-правила автозапуска (`Restart=always`, `RestartSec=5`): сервисы lk-frontend, lk-backend, astro поднимаются после краша или ребута без ручного вмешательства.
  • Включён swap 4 GB и UFW (firewall: открыты только 22/80/443).
  • Выпущен новый SSL-сертификат Let's Encrypt для vedamrita.org / www.vedamrita.org с автообновлением через certbot.timer.
1.40

Версия 1.40

Добавили РФ-compliance слой для трафика из России.

  • На сайте появились страницы политики ПДн, cookies/storage и удаления данных, а юридические ссылки и cookie-баннер показываются только для российского трафика.
  • В публичных wizard регистрации для skill QR и wish QR добавлены обязательные согласия на политику и обработку персональных данных для пользователей из России.
  • Backend сохраняет историю согласий в `user_consent_events`, пишет audit trail с версией документа, IP и страной и поддерживает self-service удаление аккаунта через `DELETE /api/auth/me`.
  • Для production добавлен SQL-файл `backend/sql/20260505_russian_compliance.sql` и документирован заголовок `X-Veda-Country`.
1.39

Версия 1.39

Убрали экспериментальную self-hosted сборку видео.

  • Удалён временный admin API модуль `video` и внутренний loopback-сервис `video-engine`.
  • Публичные demo-файлы reels и служебные артефакты видеогенерации больше не раздаются с сайта.
  • Из документации и production-конфигов убраны ссылки на video-engine и его env-переменные.
1.38

Версия 1.38

Добавили self-hosted video-engine для автоматической сборки reels.

  • Появился новый admin API модуль `video`: можно создать задачу на рендер, посмотреть статус и забрать готовый MP4/preview.
  • Backend теперь сохраняет video_jobs в MySQL и сам превращает prompt + список клипов в детерминированный render_spec.
  • Добавлен отдельный подпроект `/srv/lk-platform/video-engine` на Node.js + ffmpeg/ffprobe для loopback-рендера вертикальных видео 9:16.
  • Готовые ролики сохраняются в `/srv/lk-platform/storage/generated-videos`, превью — в `previews/`, временные файлы — в `tmp/`.
1.37

Версия 1.37

Исправили язык голосовых сообщений в чате Амриты.

  • Распознавание голосовых теперь получает правильный язык пользователя для ru/en/hi/id, а не сваливается в русский для всех неанглийских локалей.
  • Ответ Амриты после голосового сообщения теперь принудительно формируется на языке текущей локали пользователя, включая случаи неуверенного распознавания.
  • Служебный текст голосового сообщения в чате тоже локализован для всех четырёх языков.
1.36

Версия 1.36

Перевели страницу инструкции Push на все языки Ведамриты.

  • Страница `/app/push-guide` теперь использует общий i18n и показывает инструкцию на ru/en/hi/id.
  • Ссылка «Вернуться в чат» и переходы на push-guide из приложения сохраняют текущую локаль пользователя.
  • Тексты определения устройства, инструкций iPhone/iPad и Android больше не остаются русскими на локализованных URL.
1.35

Версия 1.35

Долокализовали первое знакомство с Амритой и форму QR-пожеланий.

  • Welcome voice (`module=amrita_welcome`) теперь генерируется на языке текущего пользователя для ru/en/hi/id.
  • Первое hero-сообщение в `/app` создаётся на языке пользователя, а не всегда на русском.
  • В регистрационной форме страницы пожелания переведены шаги, поля, placeholder пароля, повтор пароля, дата/время/место рождения и кнопка автоопределения.
1.34

Версия 1.34

Добавили генерацию печатной PDF-колоды карточек пожеланий.

  • Добавлена команда `npm run wishes:pdf` для сборки карточек 70×120 мм, 300 DPI.
  • Каждая карточка собирается как двухстраничный PDF: лицевая сторона — закреплённая картинка пожелания, оборот — тёмно-синий фон, золотая рамка, текст пожелания и QR.
  • QR-код ведёт на короткую страницу `/wish/:publicCode/qr` с учётом языка (`/en`, `/hi`, `/id`) и рисуется белыми круглыми модулями на тёмном фоне.
  • Скрипт формирует финальный ZIP со структурой `ru/eng/hi/ind`, внутри `bg/support`, внутри отдельные PDF-файлы карточек.
1.33

Версия 1.33

Уточнили сценарий первого сообщения на QR-странице пожелания.

  • На `/wish/:publicCode/qr` текст пожелания теперь сразу виден как уже отправленное сообщение пользователя.
  • Пауза и typing-индикатор начинаются после пожелания, перед первым ответом Амриты.
  • Первое предложение комментария Амриты появляется примерно через 3-4 секунды, следующие сообщения сохраняют паузу 4-5 секунд.
1.32

Версия 1.32

Голосовое знакомство Амриты теперь приходит при первом входе в чат.

  • Welcome voice (`module=amrita_welcome`) больше не зависит от первой подписки на навык.
  • При первом открытии `/app` backend ставит голосовое знакомство в очередь, если оно ещё не отправлялось этому пользователю.
  • Frontend короткое время опрашивает чат после входа, чтобы голосовое появилось без ручной перезагрузки страницы.
  • Защита от дублей оставлена: повторно `amrita_welcome` одному пользователю не генерируется.
1.31

Версия 1.31

Доработали QR-чат карточек пожеланий по живому сценарию.

  • Для карточек добавлен короткий публичный код: QR-ссылки теперь выглядят как `/wish/100001/qr`, а не как длинный UUID.
  • Из QR-чата убрана иллюстрация карточки: первым сообщением показывается только текст пожелания.
  • Шапка больше не выводит техническую категорию (`support`, `БГ`), а чат показывает комментарий строго по одному предложению с паузами 4-5 секунд.
  • Перед первым сообщением виден индикатор набора примерно 3-4 секунды.
  • CTA и регистрационный мастер переписаны под знакомство с Амритой, без упоминаний навыков и персонального плана; авторизованный пользователь сразу уходит в `/app`.
1.30

Версия 1.30

У карточек пожеланий появилась QR-страница с чат-сценарием Амриты.

  • Добавлен публичный маршрут `/wish/:id/qr` с поддержкой локалей (`/en/wish/:id/qr`, `/hi/...`, `/id/...`).
  • Страница открывается как чат: сначала сообщение пользователя с пожеланием, затем комментарий показывается частями с паузами и индикатором набора.
  • Финальное сообщение мягко знакомит человека с Амритой и приглашает продолжить диалог.
  • Нижний CTA запускает тот же сбор профиля, что и QR-навыки: имя, email, пароль, дата/время/место рождения; для существующих пользователей спрашиваются только недостающие birth-данные.
  • После регистрации или дозаполнения профиля запускается построение AI-астропортрета (`POST /api/me/astro-profile`) и пользователь переходит в чат `/app` на выбранном языке.
1.29

Версия 1.29

Начали генерацию мистических изображений для карточек пожеланий.

  • Для wish_cards добавлены поля image_url, image_has_text, image_check_notes и image_checked_at.
  • Иллюстрации генерируются через OpenAI gpt-image-2 по фиксированному tarot-промпту: тёмный luxury blue, медальон достижений, древние ведические конструкции, без текста.
  • После генерации отдельный validator на gpt-5.4-mini проверяет, что на картинке нет букв, слов, цифр, водяных знаков и читаемых надписей.
  • Добавлены CLI-команды `npm run wishes:images` и `npm run wishes:images:validate`; картинки сохраняются в `/wish-card-images/...` и привязываются ко всем локалям карточки.
1.28

Версия 1.28

Комментарии к карточкам пожеланий переведены на все поддерживаемые языки.

  • Все 146 русских комментариев переведены на английский, хинди и индонезийский через OpenAI gpt-5.4-mini.
  • Теперь у всех 584 карточек (`ru`, `en`, `hi`, `id`) заполнено поле commentary.
  • Перевод сохраняет смысл, обращение ко второму лицу, мягкий терапевтичный тон и структуру из 4 абзацев.
  • Добавлена CLI-команда `npm run wishes:commentary:translate` для повторных и инкрементальных переводов комментариев.
1.27

Версия 1.27

Каждая карточка пожелания теперь сопровождается тёплым комментарием.

  • Все 146 русских карточек получили личный комментарий из 4 абзацев — мягкий, человеческий, светский тон.
  • Тексты сгенерированы через OpenAI gpt-5.5 по фиксированному системному промпту (без религиозной лексики, без эзотерики, без клише «всё будет хорошо»).
  • В админке появилось редактируемое поле «Комментарий» и колонка-индикатор «есть/нет».
  • Добавлена CLI-команда `npm run wishes:commentary` (флаги `--locales`, `--limit`, `--concurrency`, `--overwrite`, `--category`, `--model`).
1.26

Версия 1.26

Карточки пожеланий теперь доступны на четырёх языках.

  • Все 146 русских карточек переведены на английский, хинди и индонезийский.
  • Перевод выполнен через OpenAI gpt-5.4-mini с сохранением тёплого личного тона.
  • В каталоге wish_cards теперь 584 строки (146 × 4 локали), категория и порядок сортировки сохранены.
  • Добавлена CLI-команда `npm run wishes:translate` для повторных и инкрементальных переводов.
1.25

Версия 1.25

Добавили карточки пожеланий по мотивам «Бхагавад-гиты» в новой категории «БГ».

  • Создана новая категория карточек «БГ» (80 уникальных фраз).
  • Существующие карточки категории «support» (66 шт.) сохранены без изменений.
  • Всего в каталоге wish_cards теперь 146 карточек.
1.24

Версия 1.24

Загрузили новый набор поддерживающих карточек пожеланий.

  • В каталоге wish_cards теперь 66 уникальных тёплых пожеланий-поддержек.
  • Каждая строка из присланного списка добавлена как отдельная карточка (категория «support»).
  • Старые карточки очищены, новые подняты при перезапуске backend.
1.23

Версия 1.23

Полностью очистили каталог карточек пожеланий перед загрузкой нового списка.

  • Все карточки пожеланий удалены из таблицы wish_cards.
  • Стартовый seed карточек пуст: автоматическое восстановление старого набора отключено.
  • Готовы загрузить новый список, как только он будет передан.
1.22

Версия 1.22

Карточки пожеланий пересобраны: в каталоге остался только духовный набор (300 фраз).

  • Удалены прежние карточки encouragement, оставлен только spiritual-набор.
  • В seed теперь 300 уникальных русских фраз духовной направленности.
  • Добавлен админ-эндпоинт /api/admin/wish-cards/reset-to-seed для контролируемого пересева.
1.21

Версия 1.21

Добавили админ-инструмент для управления карточками пожеланий.

  • В админке появился раздел «Пожелания» с поиском и фильтрами.
  • Можно создавать, редактировать, отключать и удалять карточки пожеланий.
  • Добавлены admin API-эндпоинты /api/admin/wish-cards для CRUD.
1.20

Версия 1.20

Добавили ежедневный push-ремайндер практики на 09:00 МСК для пользователей с незавершённым днём навыка.

  • Каждое утро в 09:00 (Europe/Moscow) backend отправляет push-напоминание открыть /app и завершить текущий день практики.
  • Ремайндер уходит независимо от открытия нового дня: если день не завершён, пользователь всё равно получает утренний push.
  • После выката выполнена ручная разовая отправка ремайндера по текущим активным подпискам для немедленной проверки.
1.19

Версия 1.19

Добавили отписку от навыков в разделе «Навыки» и исправили цикл переадресаций для /en/app, /hi/app и /id/app.

  • Во вкладке «Навыки» теперь можно отписаться от навыка: программа ставится на паузу, ежедневные сообщения по ней больше не отправляются, карточка исчезает из списка активных.
  • Добавлена кнопка отписки как в списке навыков, так и в деталке навыка.
  • Исправлен редирект-луп в PWA-маршрутах локалей: /en/app, /hi/app, /id/app теперь открываются без ошибки «слишком много попыток переадресации».
1.18

Версия 1.18 — карты, картинки навыков и пояснения

Обновили визуальную часть навыков и печатных материалов: единый стиль иллюстраций, готовые колоды для печати и свежие тексты-объяснения к картинкам.

  • Все 216 иллюстраций навыков обновлены: стиль «сакральных линий» с шагами практики; картинки согласованы с сутью вопроса.
  • Собраны и выложены печатные колоды (3×72 карты + бонусы) на русском, английском, хинди и индонезийском.
  • Бонусные карточки переведены и сверстаны на четырёх языках.
  • Для хинди на обороте печатных карт подключены шрифты с деванагари.
  • Текст «объяснение картинки» у навыков перезаполняется под новый рисунок.
1.17

Главная страница теперь объясняет сервис

Лендинг полностью переписан и переведён на 4 языка.

  • Hero объясняет позиционирование Амриты как ИИ-наставницы.
  • Добавлены секции «Не просто чат-бот», «Как это работает», блок источников и FAQ.
  • Полные переводы для русского, English, हिन्दी и Bahasa Indonesia.
  • Контекст i18n определяет локаль по URL → query → cookie.
1.16

Версия 1.16 — запиненные практики стали удобнее

Закреплённый бар незавершённых практик в шапке чата стал адаптивнее и показывает количество.

  • В круглой иконке появился красный бейдж со счётчиком незавершённых практик.
  • Дополнительная пилюля 1/N показывает текущую позицию из общего числа.
  • Добавлена кнопка-стрелка для переключения между несколькими практиками.
  • Бар стал компактнее на маленьких экранах.
  • Иконки платёжных методов отображаются в окне пополнения и инвойсе.
1.15

Версия 1.15 — мультиязычность сайта и приложения

Добавили полноценную поддержку 4 языков для App: русский, английский, हिन्दी, Bahasa Indonesia.

  • Модалка выбора языка при первом визите с автоопределением по браузеру.
  • Сохранение языка в cookie и localStorage на 2 года.
  • App полностью переведён на 4 языка.
  • Локализованные редиректы для /app и /login.
1.14

Версия 1.14 — пополнение кредитов криптой

В профиле появилось полноценное пополнение баланса через USDT TRC-20, BTC и ETH.

  • Пакеты пополнения: 100, 300, 1000 и 3000 кредитов.
  • Автопересчёт валюты по языку пользователя.
  • К сумме автоматически добавляется 4% сетевой комиссии.
  • Уникальная сумма для матчинга инвойсов и автоначисление через blockchain watcher.
1.13

Версия 1.13 — голосовое приветствие Амриты

При первой подписке на навык приходит голосовое приветствие Амриты на языке пользователя.

  • Добавлено первое приветственное голосовое сообщение.
  • Убрано лишнее системное сообщение про подгрузку истории чата.
  • Исправлено поведение длинной строки birth-данных в профиле.
1.12

Версия 1.12 — каталог навыков и скролл деталей

Каталог навыков стал компактнее, появился фильтр по категориям и исправлен скролл в карточке навыка.

  • Каталог показывает все 216 навыков.
  • Добавлен фильтр по категориям с количеством доступных навыков.
  • Поиск и фильтр работают вместе с корректным empty-state.
  • Починен скролл до нужного сообщения в деталке навыка.
1.11

Версия 1.11 — новый раздел «Навыки»

Раздел «Навыки» переделан под карточки и отдельный экран деталей с быстрым переходом в чат.

  • Компактные карточки навыков с круговым прогрессом.
  • Выделение непрочитанных/незавершённых навыков.
  • Отдельный экран деталей навыка.
  • Кнопка быстрого перехода к последнему сообщению в чате.
1.10

Версия 1.10 — стабильнее в чате

Починили внезапные ошибки Too Many Requests в чате Амриты.

  • Лимиты считаются отдельно по пользователю.
  • Спокойные chat-endpoints выведены из общего жёсткого лимита.
  • Фронт добавляет аккуратные ретраи с возрастающей паузой.
1.9

Версия 1.9 — навыки, баланс и тон беседы

Большое обновление: раздел «Навыки», кредитный баланс и более тонкая настройка диалога с Амритой.

  • Добавлен раздел «Навыки» с каталогом и подпиской.
  • Ограничение: один навык = одна программа на пользователя.
  • Добавлен кредитный баланс, история и пополнение.
  • Амрита адаптирует тон под vaishnav_score.
1.8

Версия 1.8

Полностью отключили дублирование практик в Telegram.

  • Ежедневные практики приходят только в приложение /app.
  • Старые программы переведены на доставку в /app.
1.7

Версия 1.7

Усилили безопасность.

  • Закрыт прямой доступ к внутренним сервисам.
  • Включены security-заголовки (CSP, HSTS и др.).
  • Ограничены попытки входа: 5 в минуту с IP.
  • Закрыта публичная документация API в продакшне.
1.6

Версия 1.6

Добавили закрепление невыполненной практики в чате.

  • Если день не выполнен, показывается закреплённое напоминание.
  • По нажатию чат возвращает к нужному сообщению.
1.5

Версия 1.5

Пофиксили ошибку входа в приложение.

  • При неверном пароле ошибка показывается на месте без лишних редиректов.
1.4

Версия 1.4

Упростили вход в приложение и убрали лишний переход на главную.

  • Со страницы входа убрана ссылка возврата на главную.
  • После входа пользователь сразу попадает в приложение.
1.3

Версия 1.3

Немного улучшили кнопку отправки голосового сообщения.

  • Во время записи голосового кнопка отправки стала зелёной.
1.2

Версия 1.2

Улучшили голосовые сообщения и индикатор ответа в чате приложения.

  • У голосовых сообщений появилась длительность рядом со временем отправки.
  • Индикатор «Пишет сообщение» отображается в шапке и ленте.
1.1

Версия 1.1

Добавили публичную страницу истории обновлений приложения.

  • В подвале главной страницы появилась ссылка Whats News App.
  • На отдельной странице видны текущая версия и история релизов.
1.0

Версия 1.0

Сбросили версию и завели публичную историю обновлений Ведамриты.

  • Сбросили версию проекта до 1.0.
  • Добавили отдельную историю обновлений.