журнал передач/2026-08-25v0.1.7

0.1.7 — инструменты входят в комнату, а отправка становится фактом

   ·  ✦   ·        ╭──────────────╮       ·   ✦
 ✦    ·      ·     │  0 . 1 . 7   │  ·        ·
   ·    ✦          ╰──────────────╯     ✦   ·

Одна история, которую этот релиз наконец рассказывает, и одно обещание, которое он делает нерушимым.

🌡 Инструменты теперь участники. Пространство может держать не только людей: сенсор входит в комнату так же, как устройство, — со своими ключами, декларацией того, что он измеряет, и показаниями, которые появляются в панели Instruments у каждого участника. Плоскость, на которой они говорят, запечатана на пространство и едет рядом с разговором, никогда не внутри него: ваши сообщения и температура вашей теплицы — разные виды речи, и реле не читает ни ту, ни другую. Ротации доезжают до инструментов так же, как до устройств: кто-то ушёл — инструмент перепечатывается вместе со всеми. Виртуальная теплица едет с каждым узлом как эталон: подключите её к любому своему пространству и смотрите, как панель дышит.

🔌 И микроконтроллер может быть инструментом — developer preview. SDK QuietInstrument превращает скетч ESP32 в полноценный инструмент: плата держит свои ключи, сама подписывает своё зачисление, сама запечатывает свои показания — байт-в-байт совместимо с узлом, проверено interop-гейтом в CI. Скетч — дюжина строк; одна команда собирает, прошивает и смотрит серийный монитор, а гайд проводит LilyGo T3-S3 с DHT22 от нуля до показаний в панели. Preview значит ровно то, что написано: сегодня плата достигает пространства через USB-стенд рядом с узлом; радио- и сетевые носители, которые сделают её самостоятельной, — следующее решение, и гайд честен о том, по какую сторону этой линии что лежит.

📨 Отправка — факт, а не обещание. Эту часть сформировал полевой отчёт: жмёшь «отправить», «ничего не происходит», текст пропал — жмёшь ещё раз — сообщение приходит дважды. Обе отправки сработали; экран об этом не сказал. Теперь кнопка отвечает в то же нажатие, каждый раз, на любой сети:

  • Ваши слова пишутся в долговечный outbox на устройстве до того, как тронута сеть, — поле очищается потому, что текст уже в безопасности.
  • Pending-пузырь появляется немедленно, говорит «отправляется…» и честно говорит, когда сети нет: «нет соединения — буду пробовать». Ретраи отступают по экспоненте и держат порядок; закрытие или перезагрузка приложения не теряет ничего — очередь продолжает с того же места.
  • Повторять безопасно, потому что отправка теперь идемпотентна: каждый запрос несёт референс, по которому узел дедуплицирует, и ретрай — или нетерпеливый двойной тап — не может отчеканить вторую копию.
  • Единственное, что не ретраится никогда, — отказ: если пространство не принимает ваши слова, они возвращаются к вам баннером с причиной и восстановлением текста в один тап. Слова не исчезают. В этом вся доктрина.
  • И ваша собственная отправка всегда прокручивается в поле зрения — неподвижность для чтения; вы только что говорили.

🕰 Лента знает, какой сегодня день. Тихая линия между днями — Сегодня, Вчера, затем дата — и время в углу каждого пузыря, с полной датой по ховеру. Разговор, подхваченный через неделю, больше не читается как один бесконечный вечер.

Мелкие честности, приехавшие попутно:

  • Закрыт класс «замёрзшей ленты»: ответы API теперь прямо запрещают HTTP-кэширование, и webview не может отдавать вчерашнюю комнату, пока каждый опрос «успешен».
  • Шесть строк интерфейса, показывавших свои плейсхолдеры — {who} просит о разговоре, {site} в согласии на воспроизведение, — теперь показывают имя.
  • Первый проход цветового ре-грейда интерфейса: цвет уходит с поверхностей и становится смыслом.
  • Отправленное сообщение будит курьера сразу, а не отсиживает остаток синк-тика.

Обновите обе стороны ради плоскости инструментов: показания едут в конвертах, которые носит только 0.1.6+, а панель нова в этой сборке. Всему, что касается отправки, не нужно, чтобы обновлялся кто-то ещё — ваше устройство, ваш outbox.

🐛 Сломалось или обещает больше, чем может доказать? → Полевые заметки.

релиз на github ↗скачать сборку →