- Установщик (install.sh): внедрена верификация хешей sha256sums.txt, нормализована очерёдность бутстрапа ucode до языковых проверок.
- Сборщик (build.sh): добавлена автоматическая генерация sha256sums.txt для пакетов релиза.
- Бэкенд: права на honeypot FIFO ограничены до 0660 в watchdog.uc, исправлена опечатка в SUBNETS_TELEGRAM, удалён helpers.old.uc.
- Тесты бэкенда: написаны тесты для core_ip, core_url и config_connections.
- Фронтенд: реализовано автопереподключение WebSocket с экспоненциальным бэкоффом, проведена дедупликация виджетов и модальных окон в initController.ts, мигрирован CSS-префикс с fkp_ на tachyon_.
- Тесты фронтенда: добавлен initController.test.ts для тестирования загрузки дашборда.
- Вынесена логика вызова команд shell в core.common
- Удалено дублирование реализации чтения stdin и извлечения параметров UCI
- Громоздкие циклы парсинга URL в helpers.uc переписаны на регулярные выражения
- Проверка IPv4/IPv6 упрощена до использования регулярных выражений вместо построчного разбора
- Использованы встроенные функции ucode (lc, length) вместо ручных аналогов
- Очистка фронтенда: удален функционал мониторинга прямого трафика и лишняя колонка 'Add to' из UI таблиц
Проведен рефакторинг кодовой базы для устранения дублирования кода и оптимизации скриптов сборки:
- Бэкенд (ucode):
- Перенесена функция экранирования шелл-аргументов `shell_quote` в общий модуль `core.common`.
- Удалены дублирующиеся инлайновые объявления функций `as_string`, `shell_quote` и `read_json_file` из всех 23 файлов бэкенда. Вместо них настроен импорт из общего модуля `core.common`.
- Валидация IP-адресов и CIDR в файле `core/helpers.uc` переведена на использование методов из модуля `core.ip` (`core_ip.valid_ipv4` и `core_ip.valid_ipv4_cidr`).
- Проверка исполняемости файла (`test -x`) в скрипте `install.sh` заменена на нативную побитовую проверку прав через `fs.stat`.
- Локализация и сборка перевода:
- Создан общий модуль `fe-app-forkop/locales-utils.js` для получения информации о пользователе Git (`getGitUser`) в скриптах перевода.
- Из скриптов `generate-po.js` и `generate-pot.js` удалены локальные копии `getGitUser()`, они импортируют общую функцию.
- Зависимости Node.js фронтенда:
- В скрипте `fe-app-forkop/watch-upload.js` стандартная библиотека `glob` заменена на `fast-glob`.
- Устаревший пакет `glob` удален из `devDependencies` в `fe-app-forkop/package.json`.