NeyLivo Русский

Changelog

Changelog

Every version of NeyLivo and what changed in it. The list is generated from the project’s own history, so it matches what the app shows in its “What’s new” window.

Current version: 1.563.0

Release notes are written in Russian, the language the project is developed in. Versions and dates are the same in both.

NeyLivo 1.563.1 2026-08-17

  • Исправлено: снимок «вид с телефона» на официальном сайте показывал то, чего на телефоне не бывает — открытый список участников накрывал переписку больше чем наполовину и обрезал текст сообщений на полуслове, потому что признак телефона считается по устройству, а не по ширине окна, и стенд снимков шёл по настольной ветке

NeyLivo 1.563.0 2026-08-17

  • Исправлено: приложение не говорило, что сервер остановлен за перерасход трафика — на экране входа человек видел английский ответ Supabase и решал, что сломан его аккаунт, а внутри приложения висело «нет связи», хотя связь была в порядке и обновлять было бесполезно
  • Исправлено: вложения и аватарки перекачивались заново каждый час у каждого открытого приложения — файлу по неизменному адресу разрешалось лежать в кэше всего час, хотя содержимое там не меняется никогда
  • Исправлено: подписанная ссылка на вложение жила час и при каждом обновлении получала новый хвост — для браузера это другой адрес, поэтому вся видимая лента скачивалась заново после каждой перезагрузки страницы, теперь ссылки живут сутки и переживают перезапуск
  • Исправлено: светлая тема на стенде снимков не включалась вовсе — настройки затирали её сразу после запуска, поэтому снимок «светлой темы» на официальном сайте был тёмным, а проверка кривостей вёрстки светлую тему никогда и не видела
  • Добавлено: в проверку кривостей вошли девять светлых экранов — сервер, личные сообщения, настройки, телефон, меню у края и крошечное окно
  • Исправлено: список участников сервера называл группу вошедших «Участник — N» рядом с «Не в сети — N» — противопоставлялись разные вещи, а на любом числе кроме единицы выходило «Участник — 5»
  • Исправлено: кольцо вокруг кружка статуса было жёстко одного цвета и в нижней полосе с именем светилось ободком светлее самой полосы, выедая пятно из аватарки
  • Добавлено: миграция 112 убирает заметку Advisor про Security Definer View — обход правил доступа вынесен из представления в функцию с закрытым списком колонок, поэтому дописать в него секретное поле молча больше нельзя

NeyLivo 1.562.1 2026-08-13

  • Добавлено: проверка кривостей смотрит длинные имена, крошечное окно 420×360 и большое 2560×1400 — на длинных именах подписи чаще всего и вылезают из своих коробок
  • Исправлено: проба считала наложением кнопку шапки и кнопку, уехавшую под неё при прокрутке — теперь элементы из разных прокруток не сравниваются, потому что они законно проезжают друг под другом

NeyLivo 1.562.0 2026-08-13

  • Добавлено: кнопка «Официальный» у логотипа приложения — взятый ею логотип обновляется сам вместе с приложением, поэтому смена официального знака доезжает до человека без единого действия, а загруженный своим файлом никто не трогает
  • Исправлено: в манифесте приложения оставалось прежнее имя продукта, из-за чего установленное на телефон и в браузере приложение подписывалось по-старому

NeyLivo 1.561.0 2026-08-13

  • Исправлено: экран «Не удалось загрузить этот раздел» появлялся после выхода новой версии, потому что файлов со старыми именами больше нет — теперь приложение один раз повторяет загрузку, а потом само перезагружает страницу с новым содержимым, и человек этого экрана не видит
  • Убрано: приветствие в консоли при каждом запуске — отладочный вывод в готовом приложении
  • Добавлено: в проверку кривостей вошли контекстные меню у самого края окна, настройки в маленьком окне и лишняя прокрутка вбок, а каждый шаг теперь подтверждает, что экран действительно открылся — иначе «чисто» означало бы, что разбирать было нечего
  • Исправлено: переменная высоты полосы заголовка объявлена в теме — без этого её не видела проверка тем

NeyLivo 1.560.0 2026-08-13

  • Исправлено: значок окна, панели задач, трея и установщика остался старым — build/icon.ico лежит отдельно от остальных значков и менялся отдельно, а теперь собирается той же командой, что и все прочие, в семи размерах
  • Исправлено: верхний ряд просмотра картинки ложился ровно на кнопки заголовка окна, два крестика рядом и оба наполовину — просмотр больше не накрывает полосу заголовка
  • Добавлено: проверка на кривости вёрстки, npm run test:crooked ищет наложения кнопок, вылеты за окно, обрезанные без многоточия подписи и наложения на полосу заголовка, на настоящем приложении и на шести экранах
  • Добавлено: стенд умеет поднимать весь каркас приложения с настоящей полосой заголовка, а не только основной экран
  • Изменено: проба отсеивает задуманное — уехавший за край список каналов на телефоне и прокрученные списки больше не считаются кривостями

NeyLivo 1.559.0 2026-08-12

  • Добавлено: свой пароль для копии ключа переписки — пароль аккаунта проходит через сервер входа, и тот, кто им управляет, мог открыть копию, а отдельный пароль не используется больше нигде
  • Добавлено: вход и выход больше не перезаписывают копию, запертую своим паролем, иначе защита снималась бы молча и человек терял бы прежнюю переписку
  • Добавлено: переключатель «Эмодзи картинками» — картинки берутся с чужого сервера, и он видит адрес устройства всякий раз, когда на экране есть эмодзи, а выключенный переключатель означает системные эмодзи и ни одного запроса на сторону
  • Изменено: в аудите безопасности проставлено состояние каждой находки — что закрыто кодом, что частично и что не менялось
  • Изменено: записано состояние зависимостей — в том, что уезжает людям, известных дыр нет, а найденные живут в сборочных инструментах и чинятся ломающим обновлением, которое перед выпуском делать нельзя

NeyLivo 1.558.0 2026-08-12

  • Изменено: продукт называется NeyLivo — новое имя и новый логотип во всём, что видит человек: окно, значок приложения, значок на телефоне, экран запуска, сайт, документы
  • Изменено: значок собран из присланного логотипа одной командой (electron scripts/make-icon.cjs), значки Android пересобраны, знак сайта обведён из того же файла
  • Изменено: объект плагина называется neylivo, старое имя работает как псевдоним — ни один уже написанный плагин не сломался
  • Изменено: файлы плагинов сохраняются с расширением .neylivo, прежние принимаются наравне
  • Изменено: ссылки на сообщения теперь neylivo://, прежние продолжают открываться
  • Изменено: мост рабочего стола называется neylivoDesktop, прежнее имя оставлено рядом
  • Изменено: переменные оформления стали --neylivo-*, прежние имена оставлены псевдонимами ради чужих стилей
  • Изменено: адреса репозитория и сайта переехали на новую учётную запись GitHub
  • Исправлено: определитель разрешений плагина узнаёт оба имени объекта — иначе каждый старый плагин получил бы замечание ни за что
  • Исправлено: скрипт объекта в мастерской получает объект под обоими именами

NeyLivo 1.557.0 2026-08-12

  • Добавлено: вложения показываются по подписанной ссылке вместо вечной публичной — путь берётся из самого старого адреса, поэтому в базе не меняется ни строки и старые сообщения не ломаются
  • Добавлено: миграция supabase/111_storage_private.sql закрывает бакет вложений — применять НЕ сразу, сначала обновление должно разойтись, иначе у старых версий осыпятся все картинки
  • Добавлено: окно Electron больше не уходит на чужой адрес — will-navigate и will-redirect отменяются, ссылка отдаётся системному браузеру, а webview запрещён
  • Добавлено: живая проверка этого настоящим окном — npm run test:nav, 29 проверок, включая нарочный слом SABOTAGE=nav
  • Добавлено: Content-Security-Policy на странице — закрыты object-src, base-uri и form-action, а script-src нет намеренно, потому что его наследуют окна плагинов и он убил бы их все
  • Добавлено: приложение не запускается внутри чужой рамки — сначала честная попытка выйти наверх, иначе отказ с объяснением, потому что frame-ancestors в мете браузер игнорирует, а заголовки на GitHub Pages не задать
  • Добавлено: свой порог пароля в восемь символов с подсказкой прямо в форме, раньше приложение только переводило ошибку сервера про шесть
  • Добавлено: экран установки плагина отличает «автор забыл строку @permissions» от «автор написал звёздочку» — прав это не меняет, но означают они разное
  • Добавлено: снимки для официального сайта снимаются НАСТОЯЩИМ приложением, подменён только клиент базы, рисуют настоящие компоненты
  • Изменено: «Скопировать ссылку» копирует постоянный адрес, а не подписанный на час
  • Изменено: README больше не рассказывает, как выкачать и собрать исходник — это страница для тех, кто пользуется Ponoi

NeyLivo 1.556.1 2026-08-12

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

NeyLivo 1.556.0 2026-08-12

  • Добавлено: приложение больше не попадает в снимки и записи экрана — система сама отказывается отдавать окно, и «Ножницы», OBS и демонстрация экрана в звонке видят на его месте чёрное
  • Добавлено: на телефоне снимок экрана не делается вовсе, а в списке недавних задач вместо переписки пустая карточка
  • Добавлено: «Скрывать сообщения» — текст размыт, пока не наведёшь мышь или не коснёшься, это против съёмки со стороны и взгляда через плечо
  • Добавлено: живая проверка защиты настоящим захватом экрана — npm run test:capture, она сначала убеждается, что видит окно, и только потом что перестала
  • Изменено: в настройках прямо написано, чего не может ни одно приложение — помешать снять экран другим телефоном, потому что пока текст виден глазу, он виден и камере
  • Исправлено: заглушки Android пополнены FLAG_SECURE, SharedPreferences и runOnUiThread — без них нативный код не собирался, и это поймала проверка test:java

NeyLivo 1.555.0 2026-08-11

  • Добавлено: в мастерскую можно принести готовую 3D-модель файлом .glb или .obj — она лежит внутри проекта и доезжает до того, кому проект отдали
  • Добавлено: объекты сцены двигаются мышью — тянешь объект и он едет по полу, Shift тянет вверх-вниз, пустое место облетает камерой
  • Добавлено: загрузчики GLTFLoader и OBJLoader встроены в three — документация обещала их с v1.473.0, а в собранной библиотеке их не было вовсе
  • Добавлено: модель вписывается в заданный рост и ставится на пол, потому что приходят они в каких угодно единицах
  • Добавлено: приложение выкладывается в каталог прямо из мастерской, без похода в раздел плагинов и выбора своего среди чужих
  • Добавлено: живая проверка сцены на настоящем glTF — npm run test:scene, она же ловит слом вписывания
  • Исправлено: содержимое сцены хранилось в файле приложения дважды — с моделями по три мегабайта это упиралось в место хранилища браузера
  • Изменено: в шапке мастерской два действия словами вместо четырёх значков без подписи, остальное в меню
  • Изменено: подсказка про мышь ушла из заголовка вида, где шла заглавными в две строки, а пустая консоль сжимается в строку
  • Изменено: у модели в свойствах нет цвета и блеска — они на неё не действуют, вместо них файл, вес и рост

NeyLivo 1.554.1 2026-08-11

  • Исправлено: проверка записи экрана падала на исправном клипе — движок изредка отказывается открыть файл с первого раза, и одна такая осечка на двадцать одну запись выглядела как поломка
  • Изменено: отказ движка теперь называется его кодом, а не «готовность -1» — по прежней записи нельзя было понять, битый клип или осечка декодера
  • Добавлено: слом на месте — тот же клип без начала обязан не открыться, и проверяется он тем же путём с повтором, иначе повтор прятал бы настоящую поломку

NeyLivo 1.554.0 2026-08-11

  • Добавлено: сплошной обход нажимаемости — по каждой кнопке, ссылке и полю на всех экранах проверяется, что она видна, внутри экрана, не накрыта чужим слоем и не мельче пальца
  • Исправлено: смайлик в строке ввода на телефоне ловил палец полем 32 на 32 — теперь вид прежний, а нажатие ловится шире, потому что растить сам смайлик нельзя, под него подогнан отступ текста
  • Исправлено: крестик закрытия окна на телефоне был 40 на 40 вместо пальца
  • Исправлено: стрелки выбора микрофона и камеры в звонке шириной 22 пикселя ловят нажатие шире себя — широкая стрелка съела бы место у кнопок и полоса перестала бы помещаться
  • Изменено: обход отличает спрятанное намеренно от потерянного — прозрачная кнопка отправки и закрытая шторка это не поломка, а правило
  • Изменено: обход меряет НАСТОЯЩУЮ цель, а не рамку — прозрачное поле вокруг кнопки ловит палец, и щупать надо его

NeyLivo 1.553.0 2026-08-11

  • Добавлено: «Любимые» в Трекотеке — звёздочка прямо на карточке трека и отдел со всем отмеченным
  • Изменено: отметка личная и видна только тому, кто её поставил — Трекотека общая, и превращать отметку в публичный счётчик это отдельное решение, которого никто не принимал
  • Добавлено: отдел «Исполнители» — треки сгруппированы по полю, которое у них уже есть, нажатие подставляет имя в поиск вместо второго экрана
  • Изменено: отметки хранятся там же, где плейлисты и закреплённые диалоги — эти настройки уже ездят между устройствами и переживают переустановку
  • Изменено: отметка на трек, который ещё не приехал со склада, не теряется — склад общий и подгружается частями
  • Добавлено: пустой отдел «Любимые» говорит, что делать, а не «ничего не нашлось по запросу» — запроса там нет
  • Добавлено: 12 проверок к этому, включая старый вид настроек и порядок исполнителей
  • Убрано: «Альбомы» из макета не сделаны намеренно — у треков нет альбома, и отдел был бы пустым

NeyLivo 1.552.0 2026-08-11

  • Исправлено: имена участников звонка пропадали на светлой теме — экран звонка чёрный при любой теме, а текст в нём считался от темы приложения и становился почти чёрным по чёрному, разница 1,66 при нужных трёх
  • Исправлено: подписи быстрого ряда в звонке падали до 2,61 по той же причине
  • Изменено: экран звонка объявляет свою палитру целиком, и каждый потомок читает её сам — тем же способом уже вылечена карточка входа, правок по месту не потребовалось
  • Изменено: прогнан весь набор проверок целиком, 38 наборов

NeyLivo 1.551.0 2026-08-11

  • Исправлено: круглые кнопки звонка на телефоне были тремя разными овалами — 36 на 52, 37 на 52 и 40 на 52 вместо одинаковых кругов, общий вид кнопки добавлял им отступ, а полоса их сжимала
  • Исправлено: полоса звонка не помещалась в экран и кнопка «выйти» уезжала за правый край — из звонка нечем было выйти
  • Исправлено: стрелка выбора микрофона и камеры раздувалась с 22 до 52 пикселей — правило ровняло под один размер ВСЕ кнопки полосы, включая узкие стрелки и кнопки внутри группы
  • Изменено: полоса звонка на узком экране переносится, а не вылезает
  • Изменено: подписи быстрого ряда стали читаемыми и не мельче пальца — серое по серому давало разницу 3,2 при высоте 33
  • Добавлено: проверка test:call — размеры кнопок, их одинаковость, узость стрелок и то, что ничего не уходит за край, на экранах 412 и 320
  • Исправлено: стенд рисовал корень звонка классом, которого в приложении нет

NeyLivo 1.550.0 2026-08-11

  • Исправлено: кружок «плюс» в поле ввода на телефоне был овалом 42 на 44 — общее правило про палец задаёт min-height всем кнопкам и перебивало заданную высоту, поймала проверка круга
  • Исправлено: в стилях использовалась переменная --btn-quiet, которой никто не объявлял — правило с ней просто отбрасывалось, и подложка бралась запасная
  • Изменено: прогнан весь набор проверок целиком, все 37 наборов: шифрование, правила доступа на настоящем Postgres, плагины вживую, песочница, музыка, звонки, телефон, темы, вёрстка, сборка

NeyLivo 1.549.1 2026-08-11

  • Изменено: стенд настоящих компонентов поднимает их внутри настоящих провайдеров настроек и входа, а не сам по себе
  • Добавлено: в стенде записано прямо, каких экранов он НЕ снимает и почему — список бесед падает на user.id, а подставная сессия не помогает, клиент базы её проверяет и отбрасывает
  • Исправлено: адрес страницы стенда собирался ручной заменой слэшей и разваливался на Windows — теперь через pathToFileURL

NeyLivo 1.549.0 2026-08-11

  • Добавлено: проверка test:stand — каждый класс, который рисуют стенды, обязан встречаться в исходниках приложения
  • Исправлено: стенды рисовали двадцать пять классов, которых в приложении нет вовсе — заголовки каналов, названия участников, список друзей и сама аватарка, поэтому снимки выходили аккуратнее жизни, и владелец увидел это первым
  • Исправлено: аватарка в стендах рисовалась классом .av, которого не существует — в приложении это .av-wrap с картинкой внутри
  • Убрано: экран телефона со снятой рейкой разделов из стенда — приложение её больше не рисует, а стенд показывал
  • Изменено: подпорки стендов переведены на настоящие классы, чтобы кружок рисовался там же, где он в приложении

NeyLivo 1.548.0 2026-08-11

  • Убрано: перекройка мобильной навигации из v1.546.0 откачена — список экраном и переписка поверх него на настоящем телефоне оказались нерабочими, вернулась прежняя шторка по кнопке меню и рейка с серверами
  • Добавлено: настройки на телефоне по макету — разделы карточками по группам, у каждого подпись о том, что внутри, слева значок, справа стрелка
  • Добавлено: у семнадцати разделов настроек появилась подпись — половина названий сама по себе не говорит ничего, и «а это про что» выяснялось нажатием
  • Исправлено: название группы прилипало к карточке сверху вместо того, чтобы стоять над ней — скругление считалось от первого блока, а им оказывалась сама подпись
  • Исправлено: подпись раздела на тёмной теме читалась с разницей 2,92 при нужных трёх
  • Добавлено: стенд настоящих компонентов npm run look:real — снимки делались с разметки, написанной руками по мотивам, и она всегда аккуратнее настоящей, теперь на страницу монтируется настоящий React со своими обёртками
  • Исправлено: стенд рисовал настольный вид в узком окне, потому что приложение решает «это телефон» по опознавателю браузера — теперь стенд представляется телефоном
  • Изменено: беседы карточками, «…» вместо крестика на наведении и ряд раздела в палец — из откаченной перекройки осталось то, что ничего не двигает

NeyLivo 1.547.0 2026-08-11

  • Изменено: Трекотека на телефоне по макету — крупное название с подзаголовком, число треков подписью, вкладки таблетками, поиск отдельной строкой во всю ширину
  • Изменено: треки стали строками с картинкой 48, названием, исполнителем и длительностью вместо плотной сетки — на узком экране рядом с картинкой помещается название, и трек узнаётся по нему, а не по обложке
  • Изменено: число треков перестало быть плашкой во всю ширину — она выглядела полосой непонятного назначения

NeyLivo 1.546.0 2026-08-11

  • Изменено: главный экран телефона перекроен по макету — слева постоянная рейка разделов с подписями, справа «Сообщения» с поиском, чипами и беседами карточками, внизу своя карточка с кнопками
  • Изменено: навигация поменялась местами — раньше экраном была переписка, а список выезжал шторкой по бургеру, теперь экран это список, а переписка выезжает поверх и закрывается кнопкой «назад»
  • Добавлено: экран «Главная» со списком серверов — на телефоне рейку заняли разделы, и серверы переехали туда целиком, а не пропали
  • Изменено: «…» в строке беседы вместо крестика, который показывался только при наведении — на телефоне наведения нет вовсе, и он был недоступен в принципе
  • Исправлено: два раздела рейки не делали ничего — слали событие, которого никто не слушал, теперь «Приложения» открывают плагины, а «Настройки» открываются откуда угодно
  • Добавлено: проверка на события без единого слушателя с потолком в ноль — это и есть кнопка-обманка, найденная числом, а не на ощупь
  • Исправлено: переписка поверх экрана уводила содержимое под боковой вырез и накрывала строку ввода панелью эмодзи — оба случая поймал обход
  • Изменено: проверки телефона переписаны под новую навигацию: рейка видна сразу, переписки не видно пока не открыли, «назад» возвращает к списку

NeyLivo 1.545.0 2026-08-11

  • Исправлено: файлы больше предела хранилища не отправлялись вовсе — приложение разрешало сорок гигабайт, а сервер отказывал в конце загрузки, и клип на сотню мегабайт пропадал
  • Добавлено: большой файл уходит кусками по 45 МБ, рядом кладётся опись с именем, типом, размером и списком кусков — в хранилище больше нет ни одного объекта, который ему велик, и это работает на любом тарифе без единой настройки на сервере
  • Добавлено: получатель собирает файл обратно по описи и сверяет размер — недокачанный кусок теперь честная ошибка, а не битое видео
  • Добавлено: отправка, упавшая ИМЕННО на размере, сама переходит на куски — предел у каждого проекта свой, а отказ по правам или сети кусками не лечится и повторяться не будет
  • Добавлено: карточка большого вложения — имя, вес, число частей, кнопки «показать» и «скачать», сборка только по нажатию
  • Изменено: опись, пришедшая из сети, проверяется как чужие данные — куски обязаны лежать на том же хосте, число кусков обязано сходиться с размером
  • Добавлено: проверка test:bigfile на настоящем HTTP — файл в 94 МБ уезжает тремя кусками и возвращается побайтно тем же, а сервер при этом отказывает целому файлу
  • Добавлено: 20 проверок разбора описи и границ кусков, включая слом на перестановку кусков

NeyLivo 1.544.0 2026-08-11

  • Исправлено: заголовок «Друзья» пропадал на светлой теме — белым по белому, цвет был вписан жёстко
  • Исправлено: имя автора сообщения на телефонах читалось с трудом — чистый цвет темы на тёмной подложке даёт разницу 2,8 при нужных трёх, теперь он подмешивает цвет текста и светлеет на тёмной, темнеет на светлой
  • Исправлено: подписи на карточке входа тонули на светлой теме — карточка синяя при любой теме, а текст в ней считался от темы приложения, теперь карточка объявляет свою палитру и каждый потомок читает её сам
  • Изменено: 40 жёстко вписанных цветов текста заменены переменными — на тёмной теме это те же самые цвета, поэтому вид не изменился ни на пиксель, а светлая перестала показывать светло-серое по белому
  • Исправлено: белый текст на подложке, которая зависит от темы, в двух местах
  • Добавлено: обход тринадцати экранов на обеих темах — каждый кусочек текста меряется пикселями снимка, а не по стилям
  • Добавлено: две проверки в перепись вида — жёсткие цвета из палитры и белый текст на подложке темы, обе с потолком в ноль
  • Изменено: разметка экранов теперь одна на два стенда — снимки и проверка тем берут её из одного места, иначе стенд показывает не то, что меряет

NeyLivo 1.543.0 2026-08-11

  • Изменено: панель профиля тянется на всю нижнюю кромку слева — раньше она стояла внутри колонки каналов, на 17 пикселей уже неё, и снизу выходила ступенька из трёх разных краёв
  • Изменено: высота панели теперь ровно как у шапки чата и у поля ввода — 56 вместо 64, «1 в 1», как и просили
  • Изменено: Ponoi Music переехала из рейки серверов в саму панель, к микрофону и наушникам — растянувшись, панель накрыла низ рейки, где кнопка стояла, да и по смыслу это не сервер, а своя вещь
  • Добавлено: рейке серверов запас снизу распоркой, а не отступом — нижний отступ у прокручиваемой колонки браузер в конце содержимого не показывает, и последний сервер оставался заперт под панелью
  • Исправлено: моя же правка сбила отступ рейки под системную полосу телефона и прижала панель к самому краю окна, разорвав общую нижнюю линию с полем ввода — обе поломки поймала старая проверка test:safe
  • Добавлено: проверка test:layout — высота панели против шапки чата и поля ввода, ширина от края до конца колонки, кнопка музыки в панели и достижимость последнего сервера
  • Исправлено: стенд снимков рисовал выдуманную панель класса, которого нет в стилях вовсе — показывал не то, что рисует приложение

NeyLivo 1.542.0 2026-08-11

  • Добавлено: вход в аккаунт по коду — компьютер показывает QR, телефон, где уже вошли, его сканирует и подтверждает, пароль не набирается нигде
  • Добавлено: сессия уезжает зашифрованной ключом, который нарисован в самом коде и никогда не бывает на сервере — в базе лежит только шифротекст
  • Изменено: открытый ключ едет именно в QR, а не через базу — иначе сервер мог бы подсунуть свой и прочитать сессию незаметно, а с экрана в камеру он этот путь не контролирует
  • Добавлено: телефон сверяет ключ из камеры с тем, что в заявке, и при расхождении не отправляет ничего
  • Добавлено: перед подтверждением телефон показывает, какое устройство впускает, и кнопка «нет» стоит первой
  • Изменено: код живёт две минуты и обновляется сам — показанный QR это ключ от аккаунта, и вечным он быть не может
  • Изменено: забрать вход можно ровно один раз, повторная попытка получает пустоту
  • Добавлено: миграция supabase/109_qr_login.sql — таблица закрыта целиком, работа идёт через четыре функции, каждая отвечает только про ту заявку, чей код спросили
  • Добавлено: проверка test:qr — код рисуется той же функцией, что в приложении, и читается тем же распознавателем, что в камере, в том числе уменьшенный вдвое
  • Добавлено: проверка, что сессию открывает только своя пара ключей, а посторонний с обеими открытыми половинами из базы — нет
  • Исправлено: в стенде проверок висел необработанный отказ, из-за которого проверка ссылок делала вид, что спросила человека

NeyLivo 1.541.0 2026-08-11

  • Исправлено: сохранение клипа ломало приложение — клип ехал из окна записи в главный процесс обычным массивом чисел, и на трёх минутах в качестве «Чётко» это двести миллионов элементов, на которых движок отказывается работать вовсе
  • Изменено: файл теперь пишет то же окно, где лежат байты, а через границу процессов уходит только путь — те же три минуты сохраняются за 148 мс вместо провала через 3,7 секунды
  • Изменено: ожидание сохранения продлено до минуты — на медленном диске сотня мегабайт не успевала за пятнадцать секунд, и готовый клип пропадал
  • Добавлено: проверка, что в ответе окна записи нет самих байтов клипа — правило названо по существу, поэтому поймает и новое поле с байтами
  • Добавлено: замер прироста памяти за сохранение, потолок 25 МБ
  • Добавлено: основа входа по коду с телефона — разбор содержимого кода, отпечаток секрета и 15 проверок к ним

NeyLivo 1.540.0 2026-08-11

  • Изменено: все кнопки приложения приведены к одному набору — три веса заливки вместо полусотни разных фонов и четыре высоты вместо девятнадцати, ни одна кнопка не удалена и ни один класс не переименован
  • Исправлено: 103 кнопки без своего класса рисовались системными — серый прямоугольник с рамкой и чужим шрифтом посреди приложения, теперь у любой кнопки есть общий вид
  • Исправлено: белая подпись на светлой теме тонула в светлой кнопке — «Сохранить» читалось с разницей 1,58 при нужных трёх
  • Изменено: красная подпись «Удалить» подмешивает цвет текста темы и темнеет на светлой сама, без отдельной ветки
  • Изменено: на телефонах каждая кнопка не мельче пальца — обход нашёл двенадцать видов ростом 30–32 пикселя, поднято одним местом и одним числом
  • Изменено: цвет наведения главной кнопки считается от цвета темы, а не жёстким синим, который переставал слушаться при смене темы
  • Добавлено: витрина кнопок — вся семья одной разметкой, её снимает npm run look и меряет обход телефона
  • Добавлено: перепись вида npm run audit:ui с потолком — новая кнопка с чужим фоном или высотой роняет проверку и называет виновника
  • Добавлено: проверка читаемости подписей на обеих темах настоящими пикселями снимка, а не по стилям

NeyLivo 1.539.0 2026-08-11

  • Добавлено: горячая клавиша F7 сохраняет клип из любого места — поверх игры, не переключаясь в Ponoi
  • Добавлено: список записанных клипов прямо в настройках — с датой, весом и просмотром в самом приложении
  • Добавлено: кнопки «показать в папке» и «удалить» у каждого клипа, удаление спрашивает подтверждение
  • Исправлено: второе нажатие клавиши затирало первый клип — имя собиралось заранее в окне, а не в момент нажатия
  • Исправлено: два клипа в одну секунду теперь получают соседние имена вместо одного файла
  • Исправлено: дефис и пробел в названии игры больше не выкусываются из имени файла — «Half-Life 2» оставалось «HalfLife2»
  • Изменено: про клавишу настройки говорят только когда она правда наша — если F7 занята другой программой, об этом сказано прямо
  • Добавлено: клип, сохранённый клавишей, сам появляется в списке и показывает плашку — молчание неотличимо от несработавшей клавиши
  • Добавлено: 11 проверок к этому, включая два нажатия подряд и чтение клипа из чужой папки при включённой защите

NeyLivo 1.538.0 2026-08-10

  • Добавлено: запись последних секунд экрана, как в Medal — приложение всё время держит в памяти прошедшее, и по нажатию оно оказывается на диске
  • Добавлено: длина клипа от 5 секунд до 3 минут ползунком, три качества с понятной ценой — сколько весит минута записи, а не битрейт в цифрах
  • Изменено: запись живёт в отдельном скрытом окне — она нужна именно тогда, когда приложение свёрнуто, а свёрнутое окно браузер придушивает
  • Исправлено: страница записи грузится файлом, а не как data — из непрозрачного источника браузер не даёт доступ к экрану вовсе
  • Добавлено: проверка test:clip — настоящий захват экрана, сохранение файла и подтверждение, что он открывается и декодируется
  • Добавлено: 12 проверок кольца кусков, включая слом на выброшенный заголовок — без него файл весит мегабайты и не открывается ничем

NeyLivo 1.537.0 2026-08-10

  • Добавлено: защита регистрации от ботов — поле-ловушка, проверка времени заполнения и лимит в три аккаунта с устройства за час
  • Добавлено: работа доказательством перед созданием аккаунта — человеку это секунда ожидания один раз, а тому, кто заводит тысячу аккаунтов, тысяча секунд процессорного времени
  • Изменено: капчи от чужой службы нет намеренно — ей уходил бы отпечаток каждого, кто просто открыл окно регистрации, а мы обещаем обратное
  • Изменено: отказ не объясняет боту, на чём он попался, зато человеку про скорость сказано понятно
  • Добавлено: 12 проверок к этому, включая слом на пропуск ловушки и на снятый лимит

NeyLivo 1.536.0 2026-08-10

  • Добавлено: раздел «Устройства и безопасность» в настройках — видно, откуда заходили в аккаунт, когда и подтверждено ли устройство
  • Добавлено: кнопки «Это я» и «Это не я» — первая снимает замок с устройства сразу, вторая забывает его и выходит из аккаунта везде
  • Добавлено: экстренная заморозка — выход со всех устройств разом, включая это, без задержек
  • Добавлено: выпуск кода восстановления с показом один раз — на сервер уходит только отпечаток, поэтому второй раз показать код невозможно
  • Изменено: устройство отмечается само при запуске, отдельной кнопки «запомнить» нет — защита должна работать, ничего не спрашивая
  • Изменено: без применённой миграции приложение работает как раньше, а раздел честно говорит, чего не хватает

NeyLivo 1.535.0 2026-08-10

  • Добавлено: замок нового устройства — сутки после первого входа с него закрыты смена ключей, смена почты, удаление аккаунта и выгрузка данных
  • Изменено: подтверждение «это я» снимает замок сразу, а выход со всех устройств не запирается никогда — им человек защищается, и мешать этому нельзя
  • Добавлено: код восстановления вида R-XXXX-XXXX-XXXX-XXXX — им можно вернуть доступ, даже если увели и пароль, и почту
  • Изменено: в коде нет знаков, которые путают при переписывании — ни нуля с буквой O, ни единицы с I и L, ни U с V
  • Добавлено: на сервере хранится только отпечаток кода, а сверка идёт сравнением отпечатков — сам код есть лишь у человека
  • Добавлено: миграция supabase/108_device_guard.sql — доверенные устройства и отпечаток кода восстановления
  • Добавлено: 16 проверок, включая слом на открытый доступ новому устройству и на запертый выход со всех устройств

NeyLivo 1.534.0 2026-08-10

  • Добавлено: кнопка «Удалить аккаунт и все данные» в Настройках — Учётная запись, с показом того, что именно исчезнет
  • Изменено: удаление идёт с недельной задержкой и отменяется с любого своего устройства — если в аккаунт вошёл чужой, у настоящего владельца остаётся время
  • Добавлено: при удалении стираются и данные на сервере, и всё своё на устройстве, включая ключи шифрования — сервер не может стереть ключи, их нет у него
  • Добавлено: «Пожаловаться» в меню человека, рядом с блокировкой, с выбором причины и обязательным пояснением для «Другое»
  • Изменено: в жалобу не попадает ни слова из переписки — иначе любой мог бы положить свой текст на сервер открытым, пожаловавшись сам на себя
  • Добавлено: рядом с жалобой сразу предлагается блокировка — она действует немедленно, в отличие от жалобы, которую кто-то должен разобрать

NeyLivo 1.533.0 2026-08-10

  • Добавлено: правила удаления аккаунта со всеми данными и жалобы на человека — требования Google Play к мессенджерам, без которых приложение не пропустят
  • Добавлено: опасные действия исполняются с задержкой — удаление аккаунта через неделю, смена почты и ключей через трое суток, а выход со всех устройств сразу
  • Изменено: удаление подтверждается вводом своего имени, а не «вы уверены» — на такое отвечают да не читая
  • Добавлено: затирание всего своего на устройстве — настройки, хранилища, кэши и ключи шифрования, с честным отчётом о том, что стёрлось, а что нет
  • Добавлено: миграция supabase/107_account_guard.sql — жалобы, отложенные действия и удаление своих данных на сервере
  • Изменено: в жалобе НЕТ текста сообщений, только кто, на кого и почему — иначе кнопка «пожаловаться» стала бы дырой в сквозном шифровании
  • Добавлено: 20 проверок к этому, включая слом на мгновенное удаление и на «да» вместо имени

NeyLivo 1.532.0 2026-08-10

  • Исправлено: экран друзей развалился — разметку переписали, а стилей к новым классам не написали ни одного, и браузер честно рисовал голый html
  • Исправлено: весь интерфейс становился засечковым — шрифт назначался, но файл не подгружался, и браузер откатывался на запасной Georgia
  • Добавлено: копирование выбранных сообщений — кнопка рядом с «Переслать», копирует «Имя: текст» по строке, в порядке ленты, а не нажатий
  • Изменено: вложение без текста копируется пометкой, а не пустой строкой — иначе в скопированном куске оставались дыры
  • Добавлено: проверка test:naked — ищет классы в разметке, у которых нет ни одного стиля, и падает на НОВЫХ
  • Добавлено: 8 проверок копирования, включая слом на порядок нажатий и на пустые строки от вложений

NeyLivo 1.531.0 2026-08-10

  • Добавлено: длина сообщения больше ничего не выдаёт — текст кладётся в блок постоянного размера и досыпается настоящим случайным шумом
  • Изменено: «да», «нет» и абзац на четыреста знаков снаружи выглядят одинаково — 1388 байт у всех, замерено
  • Изменено: блоки ступенями — килобайт, четыре, шестнадцать и дальше, поэтому за короткую реплику платится килобайт, а не мегабайт
  • Добавлено: шум настоящий, а не нули — нули сжались бы, и длина снова стала бы видна тому, кто применит сжатие к шифротексту
  • Изменено: скорость не пострадала — шифрование одного сообщения занимает 0,058 миллисекунды
  • Добавлено: старые сообщения читаются как раньше — у блока есть метка, и разбор смотрит на неё, а не гадает
  • Добавлено: 15 проверок к этому, включая порчу длины внутри блока и слом на возврат «длина как у текста»

NeyLivo 1.530.0 2026-08-10

  • Исправлено: выбранный шрифт не работал на телефоне — в наборе были ИМЕНА системных шрифтов, а на Android нет ни Georgia, ни Open Sans, ни Comic Sans, ни JetBrains Mono, и браузер молча подставлял обычный
  • Изменено: шрифты лежат в самом приложении и приезжают, когда их выбрали — «Классический» засечковый, моноширинный и округлый работают одинаково на телефоне и на компьютере
  • Добавлено: шрифт подтягивается и там, где его просто показывают — чужой ник или название канала чужим шрифтом больше не выглядят обычными
  • Изменено: набор шрифтов стал один на ник, сообщения и названия каналов — раньше он был выписан трижды и мог разъехаться
  • Добавлено: 8 проверок, включая слом на возврат системных имён в набор
  • Изменено: файлы шрифтов не попадают в стартовую загрузку — вес запуска остался 502 килобайта при потолке 1400

NeyLivo 1.529.0 2026-08-10

  • Изменено: файл в сообщении показывается карточкой, а не синей строкой «Скачать файл» — значок по типу, полное имя с расширением, тип и размер
  • Добавлено: у архива видно, что внутри — список файлов и папок с размерами, и для этого архив не скачивается: опись лежит в конце файла, читается только хвост
  • Добавлено: кнопка скачивания и меню с «открыть в браузере» и «копировать ссылку» прямо на карточке
  • Изменено: незнакомый тип называется «Файл», а не выдуманным типом, и неизвестный размер не пишется как «0 Б»
  • Добавлено: 12 проверок — разбор имени и типа, человеческий размер и чтение описи настоящего архива, собранного по байтам прямо в проверке