Release Notes: v1.5.6-beta7
Release date: 2026-06-02
Completes the built-in 3x-ui migration (migrate-xui). Follow-up to
v1.5.6-beta6. No schema migrations; existing data is preserved.
What changed
- Migrated clients now get subscription links — the importer left each
client'sLinksempty, and the subscription reads only the stored links, so
none of an imported client's inbounds appeared in the subscription or the
QR/Links view. Links are now generated during import with the same generator
the panel uses on a normal client save. The hostname baked into each link is
the panel request host (web import), the new--hostflag (CLI), or the
configured sub/web domain (scheduled sync). A re-import merge preserves a
client's existing external/sub links, and aNULLLinkscolumn is now
tolerated so a later inbound edit regenerates links instead of skipping the
client. - Cloudflare WARP migrates as an endpoint with its routing Rule — 3x-ui
stores WARP as a WireGuard outbound referenced by routing rules; s-ui models
WARP as an endpoint and routes to it via Rules. The WARP outbound is now
converted to a WARP endpoint (Cloudflare peer, MTU, addresses, reserved) and
its routing rule is rewired to target that endpoint instead of being flagged
"requires manual review". Sourceblackhole/freedomoutbounds resolve to
block/directby protocol, soblocked/directrules map too. The
endpoint is created only when new (a re-import or scheduled sync no longer
clobbers an edited WARP endpoint), and areservedvalue that is not exactly
three bytes is dropped with a warning so the generated config still loads. - Import no longer fails with "Network Error" — a large import could run
past the web server's 30s write timeout, severing the HTTP response mid-import
even though the import completed server-side (surfacing as
Import failed / AxiosError: Network Error). The deadline is now lifted on the
raw connection — the gzip middleware wraps the response writer so
http.NewResponseControllercould not reach it — only after the request is
authenticated, scope-checked and rate-limited, and the work stays bounded by
the 10-minute request context.
Upgrade
No manual migration; existing data is preserved. After importing a 3x-ui
database, imported clients have working subscription links — set your panel's
domain first, or the links use the host you reach the panel on. WARP arrives as
an endpoint together with its routing Rule.
Примечания к релизу: v1.5.6-beta7
Дата релиза: 2026-06-02
Завершает встроенную миграцию 3x-ui (migrate-xui). Продолжение v1.5.6-beta6.
Без миграций схемы; существующие данные сохраняются.
Что изменилось
- У перенесённых клиентов появляются ссылки подписки — импортёр оставлял
полеLinksклиента пустым, а подписка читает только сохранённые ссылки,
поэтому ни один инбаунд импортированного клиента не попадал в подписку и в
QR/Links. Теперь ссылки генерируются при импорте тем же генератором, что и при
обычном сохранении клиента в панели. Хост, зашиваемый в каждую ссылку, — это
адрес панели из запроса (веб-импорт), новый флаг--host(CLI) или
настроенный sub/web-домен (запланированная синхронизация). При повторном
импорте (merge) внешние/sub-ссылки клиента сохраняются, а пустой (NULL)
Linksтеперь допустим — последующее редактирование инбаунда перегенерирует
ссылки, а не пропускает клиента. - Cloudflare WARP мигрирует как endpoint вместе с правилом маршрутизации — в
3x-ui WARP — это WireGuard-outbound, на который ссылаются правила; в s-ui
WARP — это endpoint, и маршрут к нему задаётся через Rules. WARP-outbound
теперь превращается в WARP-endpoint (пир Cloudflare, MTU, адреса, reserved), а
его правило маршрутизации перенаправляется на этот endpoint вместо пометки
«требует ручной проверки». Исходныеblackhole/freedomопределяются по
протоколу и сопоставляются сblock/direct, поэтому правила
blocked/directтоже переносятся. Endpoint создаётся только если он новый
(повторный импорт или синхронизация больше не затирают отредактированный
WARP-endpoint), аreservedне из ровно трёх байт отбрасывается с
предупреждением, чтобы итоговый конфиг загружался. - Импорт больше не падает с «Network Error» — большой импорт мог длиться
дольше 30‑секундного write‑таймаута веб‑сервера, из‑за чего HTTP‑ответ
обрывался на середине, хотя на сервере импорт завершался (симптом
Import failed / AxiosError: Network Error). Дедлайн теперь снимается на самом
соединении — gzip‑middleware оборачивает writer ответа, и
http.NewResponseControllerдо него не дотягивался — и только после
аутентификации, проверки scope и rate‑limit; работа по‑прежнему ограничена
10‑минутным контекстом запроса.
Обновление
Ручная миграция не нужна, данные сохраняются. После импорта базы 3x-ui у
перенесённых клиентов работают ссылки подписки — сначала задайте домен панели,
иначе ссылки используют хост, по которому вы открываете панель. WARP приходит
как endpoint вместе со своим правилом в Rules.