1 сентября 2026 г.
Кнопка «Сообщить о проблеме», оценка качества звонков и приближение демонстрации экрана
Обновление про обратную связь и надёжность. В приложении появилась кнопка «Сообщить о проблеме»: форма требует только описание, а версию, платформу, экран, сеть и последние действия прикладывает сама, и к обращению сразу прилагается снимок экрана — его можно обвести, показать стрелкой и замазать чужую переписку до отправки. Работает в веб-версии, десктопном и мобильном приложении. Качество звонков теперь измеряется само: по каждому завершённому звонку клиент отправляет сводку по потерям, задержке и замираниям, а часть людей после разговора видит короткий вопрос «как прошёл звонок» — не после каждого звонка и не чаще раза в несколько дней. Демонстрацию экрана можно приближать щипком или Ctrl+колесом и разворачивать на весь экран — мелкий текст в чужой презентации больше не приходится угадывать. Оплата перестала зависеть от уведомления платёжного сервиса: подписка активируется сверкой, даже если уведомление не дошло. Починен авто-статус «отошёл», который мог остаться в профиле навсегда, и выход из аккаунта теперь действительно завершает звонок. Отдельно закрыты все блокирующие замечания аудита безопасности перед публичным запуском.
Добавлено
- Кнопка «Сообщить о проблеме»: в веб-версии и на десктопе — на левой панели рядом с пространствами, в мобильном приложении — в настройках, в разделе «О приложении». Обязательное поле одно: описание. Всё остальное, что нужно для разбора — версия, устройство, платформа, открытый экран, тип подключения и последние действия, — приложение собирает само. Человек, у которого только что что-то сломалось, не обязан быть хорошим составителем баг-репортов.
- Снимок экрана прикладывается автоматически и снимается до открытия формы, поэтому на нём видно проблему, а не саму форму. К обращению можно добавить до пяти изображений: выбрать файлом, перетащить на форму или вставить из буфера.
- Редактор снимка перед отправкой: обвести рамкой, показать стрелкой и замазать лишнее. Замазка здесь главное — на экране мессенджера почти всегда видна чужая переписка, и без возможности её скрыть скриншот просто не приложат. Отмена работает пошагово, исходный снимок не портится, пока не нажата «Готово».
- Перед отправкой можно раскрыть блок с собранной диагностикой и посмотреть её целиком. Содержимое полей ввода, текст сообщений и токены доступа в неё не попадают.
- Обращение можно отметить как ошибку, идею или вопрос и указать, насколько оно мешает работать — от мелочи до «не могу продолжать».
- Оценка качества звонка. После части звонков в углу появляется карточка с пятью звёздами; при низкой оценке можно отметить, что именно мешало, — рвался звук, эхо, задержка, замирало видео, выбрасывало из звонка. Карточка в углу, а не поверх экрана: звонок закончился, человек уже вернулся к работе.
- Телеметрия качества по всем звонкам: по завершении разговора клиент отправляет сводку за сессию — потери пакетов, задержка, замирания видео, переподключения и время в плохом состоянии. От человека это не требует ничего и работает в веб-версии, на десктопе и в мобильном приложении.
- Приближение демонстрации экрана: щипок двумя пальцами на телефоне и трекпаде, Ctrl+колесо мышью, двойное касание — возврат к обычному масштабу. Пока кадр не приближён, жесты не перехватываются и всё работает как раньше. Пометки, нарисованные поверх демонстрации, едут вместе с картинкой и остаются на своих местах кадра.
- Кнопка «На весь экран» на демонстрации — в конференциях, в личных звонках и в голосовых каналах. Элементы управления звонком и панель рисования при этом остаются доступны.
- В админке появились два раздела: инбокс обращений — список слева, разбор справа, статусы, внутренняя заметка, фильтры по типу и важности, просмотр приложенных картинок во всплывающем окне и выгрузка — и сводка по качеству звонков со средними метриками за период, разрезом по платформам и списком жалоб с названными причинами.
Улучшено
- Активация подписки больше не зависит от уведомления платёжного сервиса. Сервер сам сверяет статус платежа: страница возврата после оплаты проверяет его сразу, фоновая сверка добирает подвисшие платежи каждые несколько минут, а в админке есть проверка вручную. Раньше потерянное уведомление означало «деньги списаны, подписки нет», и узнать об этом можно было только из жалобы.
- Страница возврата после оплаты перестала обещать, что «скоро всё обновится», и показывает настоящее состояние: подписка активирована, платёж ещё обрабатывается, платёж отменён или незавершённых платежей нет.
- Список выбора микрофона больше не двоится. Windows отдаёт один и тот же микрофон несколькими записями — реальное устройство плюс служебные «по умолчанию» и «связь» с тем же названием; теперь в списке одна строка на физическое устройство, отметка «выбрано» встаёт на нужную, а из названия убран служебный префикс.
- Микрофон восстанавливается сам, если его физически отключили и подключили снова. Приложение отличает «выключил я» от «устройство пропало» и возвращает захват на прежний микрофон, когда тот появляется. Сохранённый выбор при этом не стирается: выдернутый микрофон остаётся выбранным.
- Длительность звонка в переписке считается по-человечески: разговор длиннее часа показывается как «1 ч 20 мин.», а не сотнями минут. Одинаково в веб-версии, на десктопе и в мобильном приложении.
- Плашка входящего звонка на десктопе появляется в углу того монитора, где сейчас курсор, поднимается над полноэкранными приложениями — видео, презентацией, игрой — и на macOS видна на любом рабочем столе. Раньше «плашки нет» чаще всего означало, что она вышла на другом экране или оказалась под чужим окном.
- Пропущенный входящий звонок больше не теряется из-за обрыва связи. При восстановлении соединения — в том числе после выхода машины из сна и перезагрузки окна — приложение спрашивает сервер, не звонит ли кто-то прямо сейчас, и поднимает карточку. Зависшая карточка звонка, который уже приняли на другом устройстве, наоборот снимается.
- Кнопка «Принять» на плашке звонка на десктопе больше не бывает мёртвой. Приложение сначала открывает нужный чат, потом подключается к звонку — join занимает секунды, и всё это время человек должен видеть переписку, а не экран, с которого его выдернул звонок. Свёрнутое окно при этом разворачивается, а не остаётся в панели задач.
Изменено
- Опрос о качестве спрашивают не после каждого звонка: решение принимает сервер — часть случайных звонков плюс все, где телеметрия увидела деградацию, и не чаще раза в несколько дней на человека. На вопрос после каждого звонка отвечают единицы, и в основном недовольные, — данные от этого перекашивает. Короткие разговоры не спрашивают вовсе.
- Оценка отправляется сразу по нажатию на звезду: если карточку закрыть, не уточняя причин, главное уже получено. Причины уточняются только у низких оценок — у остальных уточнять нечего.
- Причины плохой оценки выбираются из списка, свободного текста в них нет: по фиксированным причинам сразу видно, чинить эхо или битрейт видео.
- Авто-«отошёл» больше не записывается в профиль. Выбранный статус — «в сети», «отошёл», «не беспокоить», «невидимка» — остаётся тем, что человек выбрал сам, а простой живёт только на время подключения. Другим «отошёл» показывается, когда простаивают все устройства человека, и только при выбранном «в сети»: «не беспокоить» и «невидимку» простой не перебивает.
- Простой считается по-разному на разных платформах, и это осознанно: на десктопе — по системному простою, блокировке экрана и сну, потому что работа в другой программе не значит «человека нет за компьютером»; в веб-версии — по отсутствию действий в окне; в мобильном приложении — по свёрнутому приложению, иначе телефон в кармане не давал бы уйти в «отошёл» на компьютере.
- Раздел on-premise на сайте переписан: развёртывание в закрытом контуре мы ведём как проект вместе с администраторами компании, а не по инструкции для самостоятельной установки. Убраны неверные обещания про цену и перенос данных, добавлено честное объяснение про push-уведомления на телефоны в сети без доступа в интернет — их доставляют сервисы Apple и Google, и это ограничение платформ, а не Atlas.
- Ответ на обращение внутри Atlas в это обновление сознательно не вошёл: пока обращение получает статус и внутреннюю заметку, переписка с автором — следующий шаг.
Исправлено
- Выход из аккаунта во время звонка не завершал звонок. Человек уходил на экран входа, а соединение с микрофоном продолжало жить в уже закрытой сессии: свёрнутый звонок и конференция переживают любой переход по приложению, и выход обязан закрывать их явно. Исправлено в веб-версии, на десктопе и в мобильном приложении, в том числе при принудительном завершении сессии.
- Авто-«отошёл» мог остаться в профиле навсегда: приложение, закрытое в простое, не успевало вернуть статус, и на следующий день человек заходил «отошедшим», хотя выбирал «в сети». Такие зависшие статусы сброшены.
- Двойной звук уведомления на macOS: системное уведомление звонило своим сигналом, а приложение параллельно играло свой — на одно сообщение приходило два звука.
- Индикатор «печатает» в мобильном приложении показывал не тех. Сообщение «перестал печатать» игнорировалось и заново поднимало индикатор ещё на три секунды, а печатающие различались по имени — двух человек с одинаковым именем нельзя было развести. При переключении чата печатающие больше не переносятся из предыдущего.
- Свайп «назад» из личной переписки в мобильном приложении уводил в пространство вместо списка переписок, если в неё попали не из списка ЛС, а из уведомления, поиска или списка участников канала. Холодный старт тоже больше не подменяет открытый раздел ЛС последним пространством.
- Раздел конференций в админке отвечал ошибкой, а метрика личных подписок и вовсе не открывалась: при выборках с фильтрами проверка права на безлимит подхватывала чужой параметр запроса.
- Повторное уведомление об одном и том же платеже могло начислить лишний месяц подписки. Активация теперь однократная, дата оплаты берётся из момента реального списания, а в чеке на годовую оплату больше не написано «1 месяц».
- Громкость и шумовой гейт микрофона переживают пересборку обработки звука: при возврате микрофона после отключения настройки не сбрасываются, а собеседники не теряют дорожку.
Для администраторов
- Обновлена схема базы данных: перед запуском нового backend примените миграции (обращения пользователей, метрики качества звонков, сброс зависших авто-статусов).
- Закрыты все блокирующие замечания аудита безопасности, проведённого перед публичным запуском. Три защиты были написаны, но фактически не работали: лимит размера тела запроса не применялся ни к одной ручке, политика безопасности контента и HSTS доходили только до ответов API и не доставались страницам приложения, а защита исходящих запросов от обращений во внутреннюю сеть стояла лишь на одном из трёх мест. Всё подключено.
- Вложение переписки отдавалось по прямой ссылке любому, кто её знал: проверка доступа не умела работать с файлами, не привязанными к пространству или проекту. Теперь проверяется доступ к каналу сообщения, а по умолчанию доступ запрещён.
- Блокировка пользователя больше не оставляет живой доступ: отзываются сессии, push-токены и открытые соединения, а обновление токена для заблокированного не срабатывает.
- Обновлены зависимости: вызываемых уязвимостей в backend — с 36 до нуля, в клиентских пакетах ноль. Backend запускается под непривилегированным пользователем, а образы в конфигурациях развёртывания зафиксированы по версии вместо плавающего тега.
- Заголовки безопасности задаются в конфигурации веб-серверов приложения и сайта. Если конфигурация панели развёртывания переопределяет их, правку нужно перенести туда — иначе на сайте она не применится. После обновления стоит проверить реальные заголовки ответа.
- Уведомление платёжного сервиса остаётся быстрым путём активации подписки, но больше не единственным: фоновая сверка сама доводит подвисшие платежи. Если уведомление не настроено в личном кабинете платёжного сервиса, подписка активируется за несколько минут вместо секунд.
- Обращения пользователей и метрики качества звонков лежат в админке в отдельных разделах и выгружаются файлом. Приложенные к обращениям картинки хранятся в файловом хранилище — при планировании объёма это стоит учесть.
- Мобильное и десктопное приложения обновлены: новые сборки нужны для формы обращения, приближения демонстрации и сбора метрик качества звонка.