Skip to content

Releases

Отображения имен в сетке встреч

Choose a tag to compare

@MaxVolnov MaxVolnov released this 06 Sep 22:16
5083642
Merge pull request #171 from MaxVolnov/develop

Develop

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

Choose a tag to compare

@MaxVolnov MaxVolnov released this 06 Sep 19:21
0f3fefe

GroupMatch v0.14.0

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

Удаление аккаунта

Раньше удалить аккаунт было нельзя ни пользователю, ни администратору — только заблокировать. Теперь есть и то, и другое.

Удаление мягкое: аккаунт сразу становится недоступен, сессии прекращаются, вход не проходит. Данные хранятся 30 дней — в этот срок администратор может восстановить доступ. По истечении срока фоновая задача обезличивает запись: email и имя затираются, личная доступность удаляется, встречи остаются, потому что принадлежат группе, а не автору.

Пока аккаунт не обезличен, его адрес занят — повторная регистрация отвечает так же, как на любой уже зарегистрированный адрес, без намёка, что аккаунт удалён.

Передача владения группой

Владелец может передать права любому участнику. При удалении аккаунта владение переходит автоматически — участнику, вступившему раньше остальных. Если других участников нет, группа удаляется вместе со своими встречами и слотами.

Честные сообщения об ошибках

Шесть мест в интерфейсе при обрыве связи показывали выдуманные причины: «Неверный email или пароль» на входе, «Ссылка недействительна» при сбросе пароля, «Не удалось зарегистрироваться». Теперь отсутствие ответа от сервера называется отсутствием ответа.

Подробности проверки от сервера доходят до человека целиком — раньше вместо «пароль должен быть не короче 8 символов» показывалось «Invalid input».

Запросы получили таймаут в 10 секунд вместо тридцати секунд молчания. Операциям, повтор которых создал бы дубликаты — создание серии, перенос времени серии, массовая очистка, — оставлено 30.

Прочее

Модалка создания встречи переведена на русский: переводы для неё лежали в проекте с самого начала, но не были подключены.

Ответ на preflight-запрос кэшируется два часа — вдвое меньше обращений к API на каждой странице.

Подготовлена возможность включить проксирование Cloudflare перед API одним флагом. По умолчанию выключена, поведение не изменилось.

Служебное

Версия 0.13.0 не выпускалась, изменения вошли в 0.14.0.

Проведён аудит служебных файлов — 30 находок в docs/audit-2026-09.md. Из них закрыты: экспозиция /actuator/metrics гостевым токенам, отсутствие проверки JWT_SECRET при старте, отсутствие заголовков безопасности на фронтенде, молчаливые отказы при регистрации.

v0.12.0: Merge pull request #156 from MaxVolnov/develop

Choose a tag to compare

@MaxVolnov MaxVolnov released this 03 Sep 08:25
5dd4fcf
Develop

Первый экран группы, превью приглашений в мессенджерах и отметка своего времени протягиванием по сетке.

Choose a tag to compare

@MaxVolnov MaxVolnov released this 02 Sep 22:05
0458644

GroupMatch v0.11.0

Первый экран группы, превью приглашений в мессенджерах и отметка
своего времени протягиванием по сетке.

Первый экран группы

Приглашённый участник больше не попадает на теплокарту, где клик
для него ничего не делает. Вкладка по умолчанию теперь зависит от
роли: владелец открывает сводную картину, участник — свою
доступность. Вкладка «Теплокарта» переименована в «Когда все
свободны», пустые состояния предлагают действие, а кнопка
«Указать своё время» видна на всех вкладках и ведёт прямо к форме.

Превью приглашений

Ссылка-приглашение, вставленная в мессенджер, показывает, кто и
куда зовёт, вместо общего описания продукта. Рендерится
edge-функцией на Vercel: краулеры не исполняют JS и до сих пор
видели статичные теги из index.html. Публичный эндпоинт превью
отдаёт только имя пригласившего и название группы.

Со всех публичных страниц убран термин «тепловая карта» — он
расходился с названием вкладки в приложении. Заодно исправлен
og:image:alt: он описывал скриншот, которого на баннере никогда
не было.

Повторяющаяся доступность (API)

Миграция V23 добавляет series_id. Серия разворачивается в обычные
слоты при создании, поэтому подсчёт пересечений не изменился.
Ограничения: до 200 слотов на серию, горизонт до года. Удаление
принимает scope=single или series. Добавлена массовая очистка по
дням недели и окну времени с режимом предпросмотра; слоты,
пересекающие окно частично, не трогаются.

Интерфейса у серий и очистки пока нет — доступны только через API.

Отметка времени протягиванием

Во вкладке доступности появилась сетка своего времени: неделя,
получасовые ячейки. Мышью — зажать и потянуть. На тач-экранах —
тап, ручки в углах, подтверждение; проведение пальцем по ячейкам
по-прежнему прокручивает страницу.

Соседние ячейки склеиваются в один слот, а не в набор
получасовок. Протяжка поверх уже отмеченного времени ничего не
создаёт и не отправляет запрос.

Три вида слотов жестом не редактируются и помечены в сетке
отдельно: из серии, переходящие через полночь и заданные не по
получасам. Все три меняются через список — иначе жест молча
трогал бы время, которого в нём не было.

Прочее

Форма ввода точного времени и список слотов остались на месте:
сетка их дополняет, а не заменяет.