S-UI v1.5.3-beta — aggregated remediation + upstream parity (alireza0#1114)
Aggregates the multi-chat code review remediation passes (P0/P1/P2/P3
- P4/P5 architecture and logging cleanup) on top of
v1.5.2-beta-hotfix2
and ships an upstream parity bug fix for
alireza0/s-ui#1114:
generated TUIC subscription/share links and the Clash export now
includeudp_relay_mode. No new schema. The embeddedsing-box
runtime is unchanged from the previous beta.
Full changelog:
CHANGELOG-EN.md
/
CHANGELOG-RU.md.
English
Highlights
- Upstream parity (alireza0#1114). TUIC subscription/share links and the
Clash export now includeudp_relay_mode. The generator reads it from
the inbound'sout_json.udp_relay_mode, falls back to the inbound's
rootudp_relay_mode, and uses a safe default ofquicwhen absent.
Empty/unknown values do not produce empty query parameters. Generated
TUIC links round-trip throughGetOutboundpreserving the mode, and
Clash export mapsudp_relay_modeto Mihomo'sudp-relay-mode. - Multi-chat remediation aggregate (P0..P5). Aggregates the P0/P1/P2
hardening, P3 architecture work (restart unification, listen-fallback
audit, initial DI slice, slog adapter), P4 architecture-debt closure
(sing-box tracker revalidation policy, formal SemVer/version policy,
remaining service-runtime globals behind a DI-compatible runtime, slog
facade), and P5 logging cleanup (deprecatedlogger.InitLogger/
logger.GetLoggerremoved;github.com/op/go-loggingfully dropped
fromgo.mod/go.sum). - No schema changes, no new endpoints, no new scopes.
What this means for operators
config/versionis bumped to1.5.3-betaand the frontend package
version follows. The default tag for the release workflow is now
v1.5.3-beta.- TUIC clients that previously had to set
udp_relay_modemanually on
the import side now receive it from the panel directly. Existing
inbound configurations with an explicit value continue to use that
value; inbounds without a value get the safe defaultquic. - External Go integrations that imported
logger.InitLoggeror
logger.GetLoggermust migrate tologger.Init(logger.Level*),
logger.Slog(source), orslog.Default().
Validation
go build ./...— PASSgo test ./...— PASSgo test -race ./util ./sub— PASS (TUIC link generation, parser
round-trip, default-mode behavior, Clash conversion).- The full multi-chat phase validation evidence is in
plans/:plans/fix-validation.txt(P0)plans/p1-validation.txt(P1)plans/p2-validation.txt(P2)plans/p3-architecture-validation.txt(P3)plans/p4-architecture-debt-validation.txt(P4)plans/p5-logging-cleanup-validation.txt(P5)plans/upstream-issue-1114-plan.md(alireza0#1114 plan + reusable prompt)
Install
bash <(curl -Ls https://raw.githubusercontent.com/deposist/s-ui-rus-inst/beta/install.sh) v1.5.3-betaOr from a local clone:
git clone -b beta https://github.com/deposist/s-ui-rus-inst.git
cd s-ui-rus-inst
sudo bash install.sh v1.5.3-betaDrop-in upgrade on top of v1.5.2-beta-hotfix2. Full SQLite backup
before upgrade is still recommended.
Rollback
systemctl stop s-ui.- Restore the backed-up
s-ui.dband any matching-wal/-shm
sidecars. - Reinstall
v1.5.2-beta-hotfix2(or the last working tag). systemctl start s-ui.
If rollback crosses the session/CSRF/realtime hardening of P0..P3,
invalidate active sessions after downgrade and rotate admin credentials.
Русский
Главное
- Upstream-парити (alireza0#1114). TUIC subscription/share-ссылки и Clash
export теперь содержатudp_relay_mode. Генератор берёт значение из
out_json.udp_relay_modeinbound'а, иначе из корневого
udp_relay_mode, иначе использует безопасный defaultquic. Пустые
или неизвестные значения не пишутся пустым query-параметром.
Generated TUIC link проходит round-trip черезGetOutboundбез
потериudp_relay_mode; Clash export маппитudp_relay_modeв
Mihomo-полеudp-relay-mode. - Агрегат multi-chat remediation (P0..P5). Включает P0/P1/P2
hardening, P3 архитектурные пункты (унификация restart-пути, аудит
listen fallback, initial DI slice, slog-адаптер), закрытие P4
архитектурного долга (политика revalidation sing-box tracker,
формальная SemVer/version policy, оставшиеся service-runtime globals
за DI-совместимым runtime, slog-фасад) и P5 logging cleanup
(удалены deprecatedlogger.InitLogger/logger.GetLogger;
github.com/op/go-loggingполностью убран изgo.mod/go.sum). - Изменений схемы БД, новых эндпоинтов и новых scope'ов нет.
Что это значит для оператора
config/versionподнят до1.5.3-beta, версия frontend-пакета —
следом. Default тег release workflow теперьv1.5.3-beta.- TUIC-клиенты, которым раньше приходилось вручную выставлять
udp_relay_modeна стороне импорта, теперь получают его прямо из
панели. Inbound'ы с явным значением продолжают использовать его;
inbound'ы без значения получают безопасный defaultquic. - Внешние Go-интеграции, использовавшие
logger.InitLoggerили
logger.GetLogger, должны перейти наlogger.Init(logger.Level*),
logger.Slog(source)илиslog.Default().
Валидация
go build ./...— PASSgo test ./...— PASSgo test -race ./util ./sub— PASS (генерация TUIC-ссылки, round-trip
парсинга, дефолтное поведение, Clash conversion).- Доказательная база по фазам — в
plans/:plans/fix-validation.txt(P0)plans/p1-validation.txt(P1)plans/p2-validation.txt(P2)plans/p3-architecture-validation.txt(P3)plans/p4-architecture-debt-validation.txt(P4)plans/p5-logging-cleanup-validation.txt(P5)plans/upstream-issue-1114-plan.md(план alireza0#1114 + переносимый промт)
Установка
bash <(curl -Ls https://raw.githubusercontent.com/deposist/s-ui-rus-inst/beta/install.sh) v1.5.3-betaИли из локального клона:
git clone -b beta https://github.com/deposist/s-ui-rus-inst.git
cd s-ui-rus-inst
sudo bash install.sh v1.5.3-betaDrop-in поверх v1.5.2-beta-hotfix2. Полный backup SQLite перед
обновлением по-прежнему рекомендуется.
Откат
systemctl stop s-ui.- Восстановите
s-ui.dbиз бэкапа и соответствующие
-wal/-shm-сайдкары. - Поставьте
v1.5.2-beta-hotfix2(или последний рабочий тег). systemctl start s-ui.
Если откат пересекает hardening session/CSRF/realtime из P0..P3,
инвалидируйте активные сессии после понижения версии и проведите
ротацию admin credentials.