github Leadaxe/LxBox v2.15.6
LxBox v2.15.6

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

L×Box v2.15.6

Detour-галка больше не отбирает канал у правил. Раньше «Use as detour»
работала как роль: разрешив каналу быть detour-мишенью, вы теряли его в выборе
route final и правил. Теперь это разрешение — канал доступен и правилам, и
detour одновременно. Плюс починен баг Debug API, из-за которого вылеченные
detour-ссылки могли вернуться на диск.


🆕 Изменения

§274 — detour-канал: роль → разрешение

Было Стало
Канал с галкой detour исчезал из выбора route final и правил Канал доступен целям правил и detour одновременно
Установка галки переписывала существующие ссылки правил на vpn-1 Ссылки правил не трогаются (heal только при снятии галки / выключении / удалении)
detour × Include block — запрет (попап, валидатор, 409 в Debug API) Разрешены полностью, без предупреждений
Канал-detour без нод молча падал в direct Fallback единый для всех — block; о таком канале сообщает уведомление на Home
Роль читалась по галке в редакторе ⚙ — часть имени канала, видна во всех списках; снятие галки убирает префикс

Взаимоисключение ролей было дешёвой профилактикой detour-циклов. Настоящий
замок — fatal-детектор циклов (§254) — давно на месте, страховка его пережила.
vpn-1 по-прежнему без detour-галки: главный канал — дефолтная мишень всего и
резерв при лечении ссылок.

§275 — POST /channels терял вылеченные detour-ссылки

Создание канала с полем enabled:false лечило stale detour-ссылки в storage
(сценарий: restore из backup оставил ссылку на канал, которого больше нет), но
не зеркалило лечение в память. Следующее сохранение — переименование источника,
переключение члена папки, авто-обновление подписки — возвращало вылеченную
ссылку на диск, а сборка конфига брала её вопреки показанному уведомлению.
PATCH и DELETE того же хендлера зеркалили правильно.

Затрагивало только Debug API; через интерфейс не воспроизводилось.

Мутации каналов теперь идут через единый ChannelMutations: лечение storage и
ресинк памяти — одна операция, разделить их вызывающий не может. Голые
SettingsStorage.addChannel/updateChannel/deleteChannel помечены
@visibleForTesting — вызов мимо сервиса стал ошибкой analyze. Раньше инвариант
держался на внимательности в шести местах и разъехался.

Debug API

  • /channels: снят 409 на detour × include_block и тихая нормализация
    include_block; healed.rules при detour:true — всегда 0.

✅ Проверено

  • 1887 тестов зелёные, analyze чист (весь проект, включая test/).
  • Ядро: v1.14.0-lx.5 (stable, без изменений с v2.15.5).
  • Device-verified на CPH2411 (Android 15): §274 — вживую; §275 — полный цикл
    через Debug API (создание stale-ссылки → re-create канала → сохранение
    контроллера → ссылка не воскресает).

📲 Install

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

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


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

Don't miss a new LxBox release

NewReleases is sending notifications on new releases.