github Leadaxe/LxBox v2.15.10
LxBox v2.15.10

latest releases: v2.25.16, v2.25.16-rc.1, v2.25.15...
3 months ago

L×Box v2.15.10

Настройка «Suspend active-route tunnels» теперь сохраняется. По репорту с
форума: выбранное значение «откатывалось» к «5 minutes» при повторном входе на
экран, а другие значения не запоминались вовсе. Причина — настройка зависит от
соседней «Suspend idle tunnels», и при выключенной базовой выбор молча
игнорировался, хотя выпадающий список выглядел рабочим. Теперь зависимость
видна явно: при выключенной базовой настройке список неактивен (серый), в
подсказке написано условие; при включённой — любое значение сохраняется.

Ядро не менялось (пин v1.14.0-lx.8-rc.1, как в v2.15.9) — релиз целиком
клиентский.

Quick links:
🆕 Что нового ·
🔧 Под капотом ·
📲 Install


🆕 Что нового

  • §277 — «Suspend active-route tunnels» больше не теряет выбор.
    VPN Settings → System → WireGuard connections.

    «Suspend idle tunnels» = Off «Suspend idle tunnels» включён
    Было второй список выглядит рабочим, выбор молча отбрасывается, после перезахода снова «5 minutes» сохраняется
    Стало второй список честно неактивен (серый), в описании указано условие сохраняется (без изменений)

    Выбранное значение переживает выключение базовой настройки: включил обратно —
    прежний выбор снова действует.

  • §278 — экран папки при внешнем удалении папки. Если папку удаляли извне
    при открытом её экране (Debug API DELETE /folders/{id} или
    DELETE /subs/{id}, restore из backup), экран продолжал выглядеть рабочим,
    но все действия — тоггл, тап, reorder, добавление серверов, переименование —
    молча ничего не делали. Теперь экран закрывается сам, как при удалении
    через собственную кнопку Delete.

  • Пикер приложений: «Export to clipboard» во время загрузки списка. Пункт
    меню был активен, но нажатие молча игнорировалось, пока грузится список
    приложений. Экспорт зависит только от текущего выбора — теперь работает и
    во время загрузки.


🔧 Под капотом

Оба бага — один анти-паттерн: «немой гейт», ранний return внутри обработчика
контрола по состоянию, которое юзеру не видно. Контрол выглядит активным
(Flutter считает контрол с непустым обработчиком рабочим и показывает выбор),
а запись молча не происходит.

  • §277: зависимость перенесена из тела onChanged в само его наличие —
    каноническое disabled-состояние (onChanged: null + серые рамка и контент).
  • §278: у экрана папки гейт был размазан по ~15 обработчикам
    (if (_index < 0) return). Вместо точечных фиксов — один механизм: экран
    слушает контроллер и закрывается при исчезновении своего entry (если поверх
    открыт диалог или шит — снимается именно свой роут). Защёлка от двойного
    закрытия сбрасывается при ошибке записи, иначе экран оставался бы «зомби»
    навсегда; обработчики шитов получили mounted-гарды.
  • Фиксы прошли адверсарное ревью (7 независимых проверок против исходников
    Flutter SDK, три находки исправлены до коммита) и полный сьют —
    1904 теста, analyze чистый. Свип кодовой базы на тот же паттерн: прочие
    ранние return в обработчиках — no-op-гейты и защита с видимым фидбэком,
    новых немых гейтов не найдено.

📲 Install

adb install -r LxBox-v2.15.10-arm64-v8a.apk

Без uninstall! Поверх существующей установки. Настройки и подписки сохранятся.


Предыдущий релиз: v2.15.9.

Don't miss a new LxBox release

NewReleases is sending notifications on new releases.