PDPocketDeployRESEARCH / VERIFICATION LOG

2 НОЯБРЯ 2026 / ОБНОВЛЁННЫЙ ЖУРНАЛ

Показываем факты.
Включая неудобные.

2 ноября 2026 · физический Realme и автономный staging

Проверочная сборка dev26, код 34 — не публичный релиз.

Realme 14x 5G, Android 16 / API 36. Основной сайт pocketdeploy.dev временно обслуживает Cloudflare Pages. Исходный фронтенд и PDS переносятся на физический телефон; работающие PDS и Nostr пока остаются на прежнем облачном эмуляторе. Результаты staging ниже не являются приёмкой хостинга основного домена.

ПРОВЕРКАРЕЗУЛЬТАТ И ГРАНИЦА
HTTPS staging: точное содержимое корня сайта, экран выключен6 из 6 запросов за ~94 с · PASS
Обычная смерть основного процесса приложения при выключенном экранеПубличный сайт восстановился за ~52 с · это не force-stop и не перезагрузка телефона
Телефон сам отключил Wi-Fi на 120 с по заранее запущенному сценариюПубличный сайт вернулся примерно через 142 с от запуска сценария; сохранённый тестовый счётчик остался равен 3
Ограничение Wi-Fi-сценарияНепрерывно выключенный экран на всём интервале не был полностью зафиксирован
Приватный Git на телефонеСоздание, обновление, откат и сохранение прежнего релиза после плохой сборки · PASS
Полный локальный набор и нативные проверки API 37PASS · Cloud 358, Autonomy 403, UI 390
Более ранняя нативная матрица API 35/36Результаты dev24; не выдаём их за повтор dev26
Облачный Android CIНЕ ПРОЙДЕН · у испытанных SaaS medium/large runners отсутствует KVM
Порог закрытой бетыНЕ ВЫПОЛНЕН · четыре телефона, два производителя и 7 суток ещё не подтверждены; требуются также 19 из 20 самостоятельных восстановлений после перезагрузки и ноль потерь данных

Эти ограниченные испытания одного телефона не доказывают круглосуточную доступность, длительный Doze или работу на остальных устройствах. Текущий код: dzmitry-ai/pocketdeploy — приватный репозиторий, нужен доступ ↗. Видео, скриншоты и ссылки на alpha.9 относятся к архиву 28 октября.

Архив · 25–28 октября 2026

Далее сохранены записи и ограничения на указанные исторические даты. Их формулировки о физических телефонах и облачном маршруте описывают тот период, а не текущее состояние.

28 октября 2026: облачный стенд работал на 0.7.0-alpha.9.

28 октября 2026 года приложение на облачном Android 11 обновлено поверх с alpha.4 через alpha.5, alpha.6, alpha.7 и alpha.8 до alpha.9; обновление до alpha.9 описано первым ниже, затем alpha.8, затем alpha.7 вместе со сборкой, которая упала на Android 11 и была откачена. Обновление до alpha.5: Сайт остался на месте (около 2 секунд 503), каталог проектов и аккаунт Bluesky сохранились побайтно. Агент Termux обновлён до alpha.3 через приложение — это останавливает Node.js-проекты: Bluesky PDS не отвечал около 5 минут, пока его не запустили заново с экрана проекта. Это документированная цена обновления агента, а не сбой.

28 октября 2026 · 0.7.0-alpha.9: проверка Host у PDS, тест kill -9, политика безопасности

ПРОВЕРКАРЕЗУЛЬТАТ
Набор на хосте (Host у PDS 5, Termux 48 с проверками Host и JSON-счётчика, 10 циклов SIGKILL)PASS · exit 0
Почтовый и launcher-набор Bluesky PDS против закреплённого дерева зависимостей133 / 133 PASS
200 циклов SIGKILL посреди записей бэкенда2495 подтверждённых записей · 0 потерь · 0 порванных
Android smoke на эмуляторах API 37, API 35 и API 3024 / 24 PASS на каждом
Облачный Android 11: обновление alpha.8 → alpha.9 поверх, данные приложения и Termux сохранены заранеесайт 200 через 21 с от начала установки · 0 падений
Агент Termux alpha.6 → alpha.9 из приложения, Bluesky PDS запущен сновапубличный health 200 через 30 с
Host у PDS вживую: evil.example, rebind.attacker.invalid, pds….by.evil.example, websocket с чужим Host421 Misdirected Request
Host у PDS вживую: своё имя, 127.0.0.1, localhost, публичный websocket, хост handle200 / 101 · хост handle получает только /.well-known/atproto-did
Федерация после перезапускаревизия на ретрансляторе совпадает с PDS · профиль виден в публичном AppView

Тест SIGKILL доказывает, что логика хранилища переживает смерть процесса на файловой системе компьютера; это не проверка отключения питания на телефоне. В SECURITY.md теперь написано, как сообщить об уязвимости (конфиденциальный issue в GitLab). Не проверено: физические телефоны, Android 8–10 и 13, независимый тест rebinding настоящим браузером.

Релиз 0.7.0-alpha.9 ↗ · SECURITY.md ↗

28 октября 2026 · 0.7.0-alpha.8: политика Host, страж Java 8 API, диагностика

ПРОВЕРКАРЕЗУЛЬТАТ
Хост-набор (JVM-ядро 204 проверки, из них 41 новая на политику Host; i18n 9; диагностика 16; страж Java 8 API; измеритель памяти 7; монитор доступности 6)PASS · exit 0
Android 17 (API 37), smoke-инструментация24 / 24 PASS
Облачный Android 11: обновление alpha.7 → alpha.8 поверх, проба устройства и откат наготовесайт вернулся через ~4 с · 0 падений · данные целы
Политика Host вживую на стенде: evil.com, evil.example.org421 Misdirected Request на сайте, на /api и на проверочном endpoint
Политика Host: 127.0.0.1, localhost, LAN-IP, *.trycloudflare.com, публичный домен проекта200 · все публичные пути и запросы диапазонов байтов работают
«Поделиться диагностикой» на стендеоткрывается системное меню с отчётом · секретов в нём нет

Страж Java 8 API собирает каждый исходный файл против библиотек Android 8, так что вызов, существующий только в новых Android, ломает сборку на хосте, а не телефон. Не проверено: независимый тест rebinding настоящим инструментом, обёртка Bluesky PDS (проверка Host добавлена в alpha.9), физические телефоны.

Релиз 0.7.0-alpha.8 ↗

28 октября 2026 · 0.7.0-alpha.7: английский интерфейс по умолчанию

ПРОВЕРКАРЕЗУЛЬТАТ
Хост-набор (JVM-ядро 163 проверки плюс 9 проверок i18n на 1188 строк)PASS · exit 0
Android 17 (API 37), smoke-инструментация, английский интерфейс24 / 24 PASS
Облачный Android 11: первая сборка alpha.7упала при запуске — InputStream.readAllBytes() есть только с Android 13 · сайт отдавал 503 · откат на alpha.6 за ~10 с · данные целы
Облачный Android 11: исправленная сборка, обновление поверхсайт вернулся через ~4 с · 0 падений · интерфейс английский · аккаунт и проекты на месте

Эмулятор Android 17 эту ошибку уровня API не поймал, стенд на Android 11 поймал. Теперь перед приёмкой обновления мы проверяем устройство и держим команду отката наготове. Не проверено: переключатель языка внутри приложения (язык следует системной локали), перевод встроенных примеров и сообщений агента, всё это на физическом телефоне.

Релиз 0.7.0-alpha.7 ↗

28 октября 2026 · 0.7.0-alpha.6: видео с телефона и сброс пароля

ПРОВЕРКАРЕЗУЛЬТАТ
HTTP-диапазоны байтов через публичный шлюз (Range: bytes=0-999)206 Partial Content · видео перематывается в настоящем браузере
JVM-ядро: 15 новых проверок диапазонов (срез, открытый конец, суффикс, обрезка, 416, игнорируемые формы, HEAD)163 / 163 PASS
Сброс пароля PDS владельцем на настоящем аккаунтеновый пароль принят createSession на PDS 0.5.49 · тот же DID · старый отвергнут в фикстурном тесте
Android 17 smoke24 / 24 PASS

Обновление агента Termux останавливает Node.js-проекты, включая Bluesky PDS, до ручного запуска. Релиз 0.7.0-alpha.6 ↗

28 октября 2026 · 0.7.0-alpha.5: включены Nostr, Telegram-боты и резервные копии

ПРОВЕРКАРЕЗУЛЬТАТ
Хост-набор (JVM-ядро, Node-агент, бэкапы, Nostr, Telegram, почта PDS, атакующие проверки)PASS · 0 ошибок · 1 законный skip
Android 17 (API 37), smoke-инструментация24 / 24 PASS
Облачный Android 11: обновление alpha.4 → alpha.5 поверхсайт вернулся через ~2 с · данные побайтно те же
Облачный Android 11: агент Termux alpha.2 → alpha.3 через приложениепоявились кнопки Nostr, Telegram-бот, Резервные копии · PDS запущен вручную через ~5 мин
Облачный Android 11: идентичность Nostr создана на стендеключ остаётся в Termux · ничего не опубликовано
Аккаунт Bluesky после обновлениятот же DID · виден на bsky.app

Что изменилось: три лабораторных модуля, которые были собраны в alpha.4, но выключены, теперь включены. У каждого свои границы: Telegram-боты работают через long polling и с правами Termux; резервные копии — зашифрованный экспорт без автоматического восстановления; публикация в Nostr — подписанная запись с явным подтверждением, проверена один раз 26 октября с эмулятора Android 11. Не проверено: всё это на физическом телефоне.

Релиз 0.7.0-alpha.5 ↗

27 октября 2026 · 0.7.0-alpha.4: сайты поднимаются сами

ПРОВЕРКАРЕЗУЛЬТАТ
Android 17 (API 37), smoke-инструментация24 / 24 PASS
Android 17: обновление поверх без открытия приложениясайт снова отвечает через ~3 с
Android 17: перезагрузка без открытия приложениясайт отвечает через ~25 с после загрузки
Android 17: доступ к локальной сети для LAN-сайтапредупреждение и системный запрос · разрешение выдано
Облачный Android 11: обновление alpha.3 → alpha.4~2 с вместо ~2,5 мин · данные побайтно те же

При targetSdk 37 Android 17 закрывает приложению локальную сеть, включая входящие подключения. В alpha.3 мы это недооценили: LAN-сайты на Android 17 не открывались с соседних устройств. Alpha.4 запрашивает разрешение. Если на телефоне стоит PIN, после перезагрузки сайты поднимутся после первой разблокировки. Не проверено: физические телефоны и оптимизация батареи производителей, реальный соседний клиент на Android 17.

Релиз 0.7.0-alpha.4 ↗

27 октября 2026 · 0.7.0-alpha.3: Android 17 и надёжное хранилище

ПРОВЕРКАРЕЗУЛЬТАТ
Android 17 (API 37), AOSP-эмулятор: smoke-инструментация21 / 21 PASS
Android 17: сайт отвечает в фоне, системный жест «назад», паденияHTTP 200 · predictive back · 0 FATAL
Android 17: обновление alpha.2 → alpha.3 поверхпроект сохранён · сайт побайтно тот же (после открытия приложения)
Android 11, изолированная приёмка хранилища35 / 35 PASS · сайт 200 до и после
Хранилище на хосте: атомарная запись, fsync каталогов, восстановление43 / 43 · 157 проверок

Что изменилось в безопасности: открытый HTTP разрешён только для loopback (127.0.0.1 и localhost); данные приложения исключены из облачного бэкапа Google и переноса на новое устройство; закрыт открытый редирект вида «//чужой-хост». Запись проектов на диск подтверждается fsync файлов и каталогов, при сбое публикация не объявляется подтверждённой. Не проверено: физические телефоны, удаление с проверяемой очисткой. Доступ из локальной сети на Android 17 исправлен в alpha.4.

Релиз 0.7.0-alpha.3 ↗ · Известные ограничения ↗

Облачный стенд · 25 октября 2026

Маршрут сайта: браузер по HTTPS → Traefik на Hostfly → приватный ADB → PocketDeploy в Android 11. Постоянный адрес — https://pocketdeploy.dev. Mac и временный Quick Tunnel не участвуют в работе текущего стенда. На новом адресе отдельно проверены доверенный TLS-сертификат и работа маршрута: нативная остановка Android-сайта дала 503 без сохранённого зеркала, повторный запуск вернул HTML. Это проверка текущего стенда, а не гарантия непрерывной работы.

25 октября 2026 · 0.6.0-alpha.3: сохранённые испытания

В сохранённых итоговых наборах 0.6.0-alpha.3 прошли 402 JVM-проверки, 149 Node-тестов и 33 ограниченные атакующие проверки. На Android 11 и 15 — по 21 smoke и 43 проверки сети/SEO: нативное создание сайта, готовый HTML, XML sitemap и настоящий 404. Это результаты предыдущего стенда, а не повторный полный прогон в облаке. На прежнем публичном адресе проверены canonical, Open Graph, robots и sitemap; обычный клиент и клиент со строкой Googlebot получили одинаковый HTML. Индексация поисковой системой не подтверждена.

Протокол 0.6.0-alpha.3 ↗

25 октября 2026 · 0.6.0-alpha.2: исторические испытания

ПРОВЕРКАРЕЗУЛЬТАТ
JVM: HTTP, релизы, backend, права, мастер сети317 PASS
Node: MCP, USB-подключение, gateway53 PASS
Атакующие JVM-проверки33 PASS
AOSP-эмуляторы Android 11 / Android 15134 + 134 PASS
Навигация: 2 ОС × 2 темы × 3 размера шрифта12 конфигураций · 8 групп каждая
Реальный MCP: запрос → native consent fixture → отзыв17 PASS
Атаки на наш Android HTTP-сервер49 PASS
Настоящий публичный HTTPS CRUD8 PASS · с того же ПК

Тестовый драйвер действует как владелец одноразового эмулятора. Это не утверждение о ручном одобрении человеком. После отзыва тот же подключённый MCP-клиент получил отказ; контроллер выключен.

В историческом прогоне 25 октября 2026 года публичный HTTPS, marker и TLS-сертификат проверены через Cloudflare edge с нашего ПК. Другая сеть и LTE тогда не проверялись. После остановки двух gateway оба Android origin стали недоступны; собственные data-forward удалены. Позднее на прежнем стенде 0.6.0-alpha.3 проверили смену туннеля и остановку/запуск сайта: 503 без зеркала, затем возврат HTML. Эти результаты не подтверждают доступность нового облачного адреса.

Подробный протокол 0.6 ↗ · Предыдущий релиз 0.5 ↗

Что реализовано в 0.6

Функции реализованы и прошли перечисленные исторические испытания. В приёмке 0.6.0-alpha.2 от 25 октября 2026 года force-stop на обоих Android-эмуляторах подтвердил побайтовую сохранность базы и зашифрованных grants. Этот набор целиком на облачном стенде не повторялся.

Архив · границы релиза на 28 октября 2026

PocketDeploy 0.7.0-alpha.9 — исследовательская сборка от 28 октября 2026 года, подписанная ключом разработки, не из Google Play. Целевая версия — Android 17 (API 37), минимальная — Android 8. Проверена на одноразовых AOSP-эмуляторах Android 11 и Android 17; облачный стенд обновлён поверх, проект, сайт и аккаунт Bluesky сохранены; запущенные сайты сами поднимаются после обновления и перезагрузки. На физических телефонах и Android 8–10 приложение не тестировалось; доступ к сайту с соседнего устройства на реальном Android 17, другая сеть, LTE и длительный Doze остаются отдельными испытаниями. Гарантии 24/7 нет. Код JavaScript (Rhino) и Node.js должен быть доверенным; Docker внутри Android, SSR, SQL и WebSocket для ваших приложений не входят в состав. Автообновления приложения нет.

Архив · ограничения на 28 октября 2026

Docker внутри Android, SSR, SQL, WebSocket, OAuth-платформу, аппаратную изоляцию недоверенного кода и гарантированный аптайм. Физические телефоны, LTE и длительный Doze остаются отдельными испытаниями. Доступность облачного адреса зависит от Hostfly, Traefik, приватного ADB-маршрута и работающего Android; собственный домен не даёт гарантии 24/7.

Архив · порядок обновления на 28 октября 2026

Расписание обновлений раз в шесть часов приостановлено (PAUSED). Изменения сайта и репозитория публикуются после отдельной проверки и приёмки; автоматические обновления по расписанию сейчас не обещаются. Само Android-приложение не обновляется автоматически.

Помочь испытаниями и доработкой ↗