<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
  <id>https://ays.su/history.html</id>
  <title>История AYS</title>
  <subtitle>Версии, возможности и интеграции платформы AYS и дистрибуции «ВМечту».</subtitle>
  <link href="https://ays.su/history.html"/>
  <link href="https://ays.su/feed.xml" rel="self" type="application/atom+xml"/>
  <updated>2026-08-10T23:59:00+03:00</updated>
  <author><name>AYS</name></author>
  <entry>
    <id>tag:ays.su,2026-08-10:/history/2026-08-10-vmechtu-1-0-3-66</id>
    <title>История стала устойчивее, управление — понятнее</title>
    <link href="https://ays.su/history.html#2026-08-10-vmechtu-1-0-3-66"/>
    <updated>2026-08-10T12:00:00+03:00</updated>
    <category term="release"/>
    <content type="html">&lt;p&gt;Версия «ВМечту» 1.0.3+66 вышла в браузере и на Android. Сборка для macOS прошла проверку Apple и опубликована на той же линии AYS.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;История загружается страницами и не путает порядок сообщений.&lt;/li&gt;&lt;li&gt;Непрочитанное начинается с момента, когда человек действительно вступил в сообщество.&lt;/li&gt;&lt;li&gt;При удалении группы или канала сервер проверяет размер сообщества и обязательные подписки.&lt;/li&gt;&lt;li&gt;Сборка 66 принята App Store Connect и ожидает рассмотрения Apple.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В production&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-10:/history/2026-08-10-consent-lifecycle-64</id>
    <title>Согласия, выход и удаление теперь доведены до конца</title>
    <link href="https://ays.su/history.html#2026-08-10-consent-lifecycle-64"/>
    <updated>2026-08-10T12:00:00+03:00</updated>
    <category term="release"/>
    <content type="html">&lt;p&gt;В версии 1.0.3+64 мы развели базовые правила AYS и дополнительные согласия конкретной дистрибуции. Заодно собрали полный порядок выхода и удаления сообществ.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Старые клиенты входят по прежней схеме — новый шаг им не навязывается.&lt;/li&gt;&lt;li&gt;Участник выходит сам. Удалить сообщество может только его создатель.&lt;/li&gt;&lt;li&gt;Обязательный канал нельзя снести случайным нажатием.&lt;/li&gt;&lt;li&gt;Удалённый аккаунт пропадает из поиска, контактов и списка участников.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В production&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-10:/history/2026-08-10-short-public-aliases</id>
    <title>Короткие адреса оставили под ручным контролем</title>
    <link href="https://ays.su/history.html#2026-08-10-short-public-aliases"/>
    <updated>2026-08-10T12:00:00+03:00</updated>
    <category term="feature"/>
    <content type="html">&lt;p&gt;Иногда нужен публичный адрес из двух символов. Самостоятельно забрать такой адрес нельзя: его назначает оператор, а обычное правило начинается с трёх символов.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Каждое назначение короткого адреса остаётся в операторском журнале.&lt;/li&gt;&lt;li&gt;Уникальность и зарезервированные слова проверяет сервер.&lt;/li&gt;&lt;li&gt;Занятый адрес нельзя перехватить через обычную регистрацию.&lt;/li&gt;&lt;li&gt;Кириллический адрес «хо» проверен на рабочем профиле.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В production&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-10:/history/2026-08-10-album-notification</id>
    <title>Один альбом больше не звенит несколько раз</title>
    <link href="https://ays.su/history.html#2026-08-10-album-notification"/>
    <updated>2026-08-10T12:00:00+03:00</updated>
    <category term="feature"/>
    <content type="html">&lt;p&gt;Фотографии и видео по-прежнему лежат в истории отдельными сообщениями. Но уведомление на весь альбом теперь приходит одно.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Уведомление запускает первый элемент, остальные сохраняют порядок.&lt;/li&gt;&lt;li&gt;История, непрочитанное и доставка продолжают учитывать каждый файл.&lt;/li&gt;&lt;li&gt;Исправление сделано на сервере. Переустанавливать приложение не нужно.&lt;/li&gt;&lt;li&gt;Схема проверена в личных диалогах, каналах и Guest Inbox.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В production&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-08:/history/2026-08-08-rich-text-stickers</id>
    <title>Форматирование, звуки и стикеры собраны в одну линию</title>
    <link href="https://ays.su/history.html#2026-08-08-rich-text-stickers"/>
    <updated>2026-08-08T12:00:00+03:00</updated>
    <category term="feature"/>
    <content type="html">&lt;p&gt;Текст форматируется нативно и не исполняет чужой HTML. Наборы стикеров теперь можно посмотреть до установки.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Жирный текст, курсив, подчёркивание, зачёркивание, код и ссылки рисует само приложение.&lt;/li&gt;&lt;li&gt;Резервный звук включается только при пропущенном push и не дублирует его.&lt;/li&gt;&lt;li&gt;Облачный набор сначала виден в каталоге, потом его можно установить.&lt;/li&gt;&lt;li&gt;Старый формат текста и зашифрованные сообщения продолжают работать.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В основной линии&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-08:/history/2026-08-08-extension-recipient-services</id>
    <title>Обращение из сервиса продолжается обычным диалогом</title>
    <link href="https://ays.su/history.html#2026-08-08-extension-recipient-services"/>
    <updated>2026-08-08T12:00:00+03:00</updated>
    <category term="integration"/>
    <content type="html">&lt;p&gt;Человек принимает обращение из локального сервиса и дальше общается в обычном чате. Второй запрос и отдельный транспорт для сообщений не нужны.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Состав формы приходит с сервера и не зашивается в приложение.&lt;/li&gt;&lt;li&gt;Поломка соседнего сервиса больше не закрывает рабочую форму.&lt;/li&gt;&lt;li&gt;После проверки адресата открывается уже существующий диалог.&lt;/li&gt;&lt;li&gt;Сценарий пройден на двух физических Pixel с реальной отправкой сообщения.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Проверено&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-07:/history/2026-08-07-guest-inbox-0-8-0</id>
    <title>Форматированный текст заработал во внешнем приложении</title>
    <link href="https://ays.su/history.html#2026-08-07-guest-inbox-0-8-0"/>
    <updated>2026-08-07T12:00:00+03:00</updated>
    <category term="integration"/>
    <content type="html">&lt;p&gt;Guest Inbox показывает форматированный текст, подписи и ссылки. Выпущенные раньше приложения при этом продолжают получать старое поле текста.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Поддержаны Markdown, очищенный HTML и структурированные диапазоны UTF-16.&lt;/li&gt;&lt;li&gt;Скрипты, стили, битые диапазоны и опасные адреса не исполняются.&lt;/li&gt;&lt;li&gt;Личные сообщения, каналы и общая лента используют один механизм показа.&lt;/li&gt;&lt;li&gt;Старые декодеры по-прежнему получают поле text.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В основной линии&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-07:/history/2026-08-07-ays-case-site</id>
    <title>«ВМечту» показан как работающий пример AYS</title>
    <link href="https://ays.su/history.html#2026-08-07-ays-case-site"/>
    <updated>2026-08-07T12:00:00+03:00</updated>
    <category term="platform"/>
    <content type="html">&lt;p&gt;Мы перестроили сайт AYS вокруг понятной схемы для локальных сообществ. «ВМечту» здесь нужен как доказательство: отдельный продукт на общем ядре уже работает.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Сайт раскладывает AYS на ядро, локальную идентичность и сервисы.&lt;/li&gt;&lt;li&gt;Мы не используем юридически неверные слова про сертификацию или аттестацию.&lt;/li&gt;&lt;li&gt;Версии для компьютера и телефона проверены в реальном браузере.&lt;/li&gt;&lt;li&gt;Опубликованные файлы сверены с исходниками по SHA-256.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В production&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-07:/history/2026-08-07-media-sound-runtime</id>
    <title>Звук настраивается, видео открывается раньше</title>
    <link href="https://ays.su/history.html#2026-08-07-media-sound-runtime"/>
    <updated>2026-08-07T12:00:00+03:00</updated>
    <category term="feature"/>
    <content type="html">&lt;p&gt;Звук можно настроить для всего приложения или отдельного диалога. Видео получает лёгкую обложку и начинает открываться до полной загрузки.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Одна настройка управляет системным push и звуком открытого приложения.&lt;/li&gt;&lt;li&gt;Для видео создаётся отдельная лёгкая обложка.&lt;/li&gt;&lt;li&gt;HTTP Range и ETag позволяют перематывать и продолжать загрузку.&lt;/li&gt;&lt;li&gt;Длинная подпись в галерее больше не закрывает изображение.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В основной линии&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-06:/history/2026-08-06-lazy-history</id>
    <title>Чат больше не тащит всю историю сразу</title>
    <link href="https://ays.su/history.html#2026-08-06-lazy-history"/>
    <updated>2026-08-06T12:00:00+03:00</updated>
    <category term="feature"/>
    <content type="html">&lt;p&gt;При открытии диалога AYS загружает последнее окно сообщений. Старые страницы подтягиваются только тогда, когда человек до них долистал.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Основной клиент начинает с последних 30 сообщений.&lt;/li&gt;&lt;li&gt;Guest Inbox — с 20 личных событий и пяти публикаций каналов.&lt;/li&gt;&lt;li&gt;Старая страница приходит у видимой границы и не запрашивается повторно.&lt;/li&gt;&lt;li&gt;Уже просмотренная история остаётся в кэше.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В основной линии&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-03:/history/2026-08-03-channel-service-rich-production</id>
    <title>Сервисные каналы научились публиковать нормальные медиасообщения</title>
    <link href="https://ays.su/history.html#2026-08-03-channel-service-rich-production"/>
    <updated>2026-08-03T12:00:00+03:00</updated>
    <category term="integration"/>
    <content type="html">&lt;p&gt;Интеграция может отправить в канал текст, фотографию, видео или альбом. У каждого канала свои ключи, а каждый файл проходит отдельную проверку.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Поддержаны подписи, форматирование UTF-16 и альбомы из 2–10 файлов.&lt;/li&gt;&lt;li&gt;Сервер проверяет тип, размер и SHA-256 каждого вложения.&lt;/li&gt;&lt;li&gt;Повтор одного события не создаёт вторую публикацию.&lt;/li&gt;&lt;li&gt;Рабочая проверка доставила фотографию и форматированный текст из Telegram во «ВМечту».&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В production&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-08-01:/history/2026-08-01-unified-inbox</id>
    <title>Сообщения и новости собрались в одной входящей ленте</title>
    <link href="https://ays.su/history.html#2026-08-01-unified-inbox"/>
    <updated>2026-08-01T12:00:00+03:00</updated>
    <category term="feature"/>
    <content type="html">&lt;p&gt;Guest Inbox показывает непрочитанные личные сообщения и публикации подключённых каналов вместе. Источник данных остаётся на сервере AYS.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Внешнее приложение получает безопасное представление без внутренних идентификаторов AYS.&lt;/li&gt;&lt;li&gt;Новости доступны только для чтения и загружаются серверными страницами.&lt;/li&gt;&lt;li&gt;Один порядок регистрации push работает с APNs и FCM.&lt;/li&gt;&lt;li&gt;Полный мессенджер и встроенный Guest Inbox используют один сервер.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В основной линии&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-07-26:/history/2026-07-26-external-identity-guest-sdk</id>
    <title>Аккаунт AYS отделён от локального подтверждения</title>
    <link href="https://ays.su/history.html#2026-07-26-external-identity-guest-sdk"/>
    <updated>2026-07-26T12:00:00+03:00</updated>
    <category term="platform"/>
    <content type="html">&lt;p&gt;Универсальный аккаунт живёт в AYS, а принадлежность к конкретному сообществу подтверждает внешний источник. Тогда же появился первый Guest Inbox SDK.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Внешняя система подтверждает принадлежность и не получает внутреннюю модель AYS.&lt;/li&gt;&lt;li&gt;Временный пользователь безопасно объединяется с подтверждённым аккаунтом.&lt;/li&gt;&lt;li&gt;Guest Inbox получает ограниченную сессию для чтения и отдельные отметки просмотра.&lt;/li&gt;&lt;li&gt;Каждая дистрибуция сама задаёт проверку участника и свою сборку.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В основной линии&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-07-25:/history/2026-07-25-distribution-split</id>
    <title>AYS и «ВМечту» работают как два изолированных сервиса</title>
    <link href="https://ays.su/history.html#2026-07-25-distribution-split"/>
    <updated>2026-07-25T12:00:00+03:00</updated>
    <category term="platform"/>
    <content type="html">&lt;p&gt;Общей остаётся кодовая база. Серверы, пользователи, сообщения, домены и deep-link’и у AYS и «ВМечту» разные. Связь между ними возможна в будущем через федерацию, но сейчас её нет.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;AYS использует ays.su, а «ВМечту» — мечта.москва.&lt;/li&gt;&lt;li&gt;У каждого сервиса собственная база пользователей и история сообщений.&lt;/li&gt;&lt;li&gt;Android-пакеты и deep-link’и разделены, поэтому приложения живут рядом на одном телефоне.&lt;/li&gt;&lt;li&gt;Федерация остаётся будущим отдельным механизмом и сейчас не включена.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Действует&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>tag:ays.su,2026-05-25:/history/2026-05-25-production-contour</id>
    <title>Сервер, контракты и клиент вышли одной согласованной линией</title>
    <link href="https://ays.su/history.html#2026-05-25-production-contour"/>
    <updated>2026-05-25T12:00:00+03:00</updated>
    <category term="release"/>
    <content type="html">&lt;p&gt;Мы выровняли версии сервера, общих контрактов и клиента. Входящий трафик и push-шлюз после выпуска проверили отдельно.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Миграции можно повторить без двойного изменения данных.&lt;/li&gt;&lt;li&gt;Сервер собирается только с зафиксированными общими пакетами.&lt;/li&gt;&lt;li&gt;Входящий трафик ws.ays.su снова проходит через безопасную схему nginx.&lt;/li&gt;&lt;li&gt;Проверки live, ready и well-known отвечают HTTP 200.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;В production&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
</feed>
