← Blog

Что мы исправили в MurMur: обычный девлог

2026-10-21 · MurMur team

MurMur — молодой проект, и он ведёт себя соответствующе: иногда что-то ломается, мы это замечаем и чиним. Этот текст — обычный девлог о серии недавних исправлений: в чём была проблема и что мы поменяли. Без номеров версий, без обещаний на год вперёд — только то, что уже работает.

Сообщения, отправленные офлайн, теперь действительно доходят

Самая неприятная ошибка, которая у нас была: если отправить сообщение без сети или при нестабильном соединении, оно могло застрять в исходящих и больше никогда не уйти. У вас оно выглядело отправленным. Собеседник его не видел. Для мессенджера это худший сценарий из возможных: обе стороны уверены, что переписка в порядке.

Мы переписали работу с исходящими. Теперь всё, что вы отправляете офлайн, хранится на устройстве и автоматически уходит, как только связь вернётся. Логика доставки больше не предполагает, что в момент нажатия «отправить» у вас было стабильное соединение — на телефоне это, честно говоря, редкость. Заодно закрылся бытовой сценарий: написать пару сообщений в метро и вспомнить о них через час.

Push-уведомления о пропущенных вызовах

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

Теперь пропущенный вызов приходит пуш-уведомлением. Видно, кто звонил, и можно перезвонить прямо из уведомления. Работает это через тот же конвейер шифрованных уведомлений, что и обычные сообщения: релей, который доставляет пуши, не может прочитать вашу переписку, и о звонках он знает не больше, чем нужно для доставки самого уведомления.

Переключение камеры во время звонка

Мелочь, но заметная: во время звонка можно переключиться с фронтальной камеры на основную и обратно, не сбрасывая вызов. Раньше, чтобы что-то показать основной камерой, приходилось завершать звонок и набирать заново. Исправлено.

Дубликаты фото и текстов после переподключения

Ещё одна ошибка из семейства «нестабильная сеть»: после переподключения некоторые фото и текстовые сообщения могли появиться в чате дважды, а то и трижды. Отправляющий клиент не всегда был уверен, ушла ли предыдущая попытка, и повторял её, а принимающая сторона не распознавала повтор как то же самое сообщение.

Мы добавили дедупликацию при переподключении. Клиент теперь помнит, что уже получил, и повторные доставки одного и того же фото или текста схлопываются в одно сообщение. История переписки остаётся такой, какой должна быть: одно сообщение — одна запись, даже если сеть отвалилась три раза посреди разговора.

Обновления без переустановки

MurMur — это PWA: приложение ставится на iPhone и Android прямо из браузера, без App Store и Google Play. У этого есть приятный побочный эффект в отношении обновлений: переустанавливать нечего. Когда мы выпускаем исправление, приложение подхватывает его из сети само, как обычный сайт. Открываете MurMur в следующий раз — вы уже на актуальной версии.

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

Чего мы не будем приукрашивать

MurMur — проект с открытым исходным кодом, молодой, с небольшой аудиторией. Независимого аудита безопасности не было. Личность в MurMur — это криптографический ключ (npub), без телефона и почты при регистрации. Из этого следует жёсткое правило: потеряли ключ — потеряли аккаунт. Восстановления по SMS нет, и это осознанно: восстанавливать нечем, номера же нет. Это реальные ограничения, а не мелкий шрифт.

Зачем тогда вообще писать такие ченджлоги? Отчасти потому, что небольшой проект зарабатывает доверие конкретикой: что поменялось и что может пойти не так. Если мы отчитываемся о починке доставки — значит, доставка раньше была сломана. Мы предпочитаем говорить об этом прямо.

FAQ

Я отправил сообщение без сети. Что теперь с ним будет?

Оно останется в исходящих и уйдёт автоматически, когда связь появится. Пересылать его заново или держать чат открытым не нужно.

Видно ли в уведомлении о пропущенном звонке содержание переписки?

В уведомлении видно, кто звонил. Звонки и сообщения шифруются сквозным шифрованием, релей не может их прочитать.

Как обновить приложение?

Ничего делать не нужно. MurMur — PWA, установленный из браузера: обновления приходят из сети сами, без сторов и переустановок.

Что делать, если я потерял ключ?

Доступ к аккаунту будет потерян. Восстановления по SMS или почте нет, потому что при регистрации не используются ни номер, ни почта. Делайте резервную копию ключа аккуратно.

MurMur бесплатный и открытый — попробуйте на murmurchat.org или посмотрите код на GitHub.

Try MurMur — no phone, no email →