Добавлена сборка под Linux: nfqws + правила nftables (NFQUEUE) вместо
socks-прокси или службы Windows. Повышение прав — pkexec на каждое
включение/выключение, без службы и без автозапуска.
Стратегии переиспользуют существующий набор Flowseal (strategies.win32.generated.ts):
--wf-tcp/--wf-udp уходят в правила nftables, остальное — в nfqws как есть.
Все правила nftables держат bypass, поэтому упавший или выключенный демон
не рвёт пользователю сеть.
Помощник (resources/linux-helper/rknboost-helper.sh) и бинарник nfqws перед
каждым запуском копируются в userData: root не может прочитать файлы внутри
AppImage (FUSE-примонтирован без allow_other), а обычная файловая система
на диске ему доступна независимо от прав.
Заодно:
- починен баг генератора стратегий (^! не разэкранировался в !, ломало
fake-tls-auto и на Windows тоже);
- карточка обхода теперь показывает текст ошибки независимо от state;
- счётчик auto-hostlist в настройках больше не привязан к !isWindows;
- CI: отдельная джоба сборки под Linux на ubuntu-latest.
Иконки: пересобраны из мастера 1024×1024. В .icns было одно представление
512×512 — macOS домасштабировала остальные сама; теперь все десять, от 16 до
1024. В .ico добавлен размер 24 и своя картинка вместо заглушки Electron.
Релиз: differentialPackage и publishAutoUpdate выключены — .blockmap и
latest.yml нужны electron-updater, которого в приложении нет, и лежали в
ассетах мёртвым грузом. Вместо них CI кладёт рядом с установщиком .md5.
Версия в интерфейсе больше не константа: renderer спрашивает её у main через
app.getVersion(). Держать константу «в синхроне с package.json» вручную не
вышло ни разу — она осталась на 0.4.0, и релизы 0.5.0 и 0.5.1 показали
пользователю чужую версию.