{ "versions": [ { "version": "0.8.2", "date": "2026-05-07", "title": "Hotfix установки VM network guard", "summary": "Патч проверки bridge стал устойчивым к изменённой структуре app.py и больше не валит установку, если старый участок валидации уже изменён другими патчами.", "features": [ "patch_vm_network_guard.py больше не завершает установку ошибкой при отсутствии старого маркера bridge validation", "Если участок app.py уже изменён, патч пишет WARN и продолжает установку", "Проверка существования bridge сохраняется там, где её можно применить безопасно", "Версия обновлена до 0.8.2" ] }, { "version": "0.8.1", "date": "2026-05-07", "title": "Hotfix установки после редизайна панели", "summary": "Патч диагностики DHCP leases стал устойчивым к изменённой структуре app.py и больше не валит установку, если нужный маркер уже был изменён другими патчами.", "features": [ "patch_dhcp_leases_empty.py больше не завершает установку ошибкой при отсутствии старого маркера list_libvirt_networks", "Если участок app.py уже изменён, патч пишет WARN и продолжает установку", "Сохранена диагностика пустых DHCP leases там, где её можно применить безопасно", "Версия обновлена до 0.8.1" ] }, { "version": "0.8.0", "date": "2026-05-07", "title": "Панель в стиле Virtualizor и центр журналов", "summary": "Интерфейс переведён на более плотную админскую компоновку с левым меню, светлой темой и отдельным центром журналов.", "features": [ "Добавлен раздел /logs для просмотра журналов Virtuality, systemd, libvirt, update, install и операций", "Центр журналов обновляет выбранный лог автоматически каждые 5 секунд", "Добавлен patch_logs_center.py и подключён в установщик", "Основной дашборд переведён на layout с левым меню в стиле Virtualizor", "CSS переработан под светлую админскую тему, плотные таблицы и компактные карточки", "Версия обновлена до 0.8.0" ] }, { "version": "0.7.7", "date": "2026-05-07", "title": "Импорт дисковых образов из архивов", "summary": "Менеджер дисков теперь принимает .zip, .tar.gz и .tgz архивы, безопасно распаковывает их и импортирует найденные .img/.raw/.qcow2 образы.", "features": [ "Добавлена поддержка загрузки .zip, .tar.gz и .tgz в разделе Диски", "Архивы распаковываются безопасно без абсолютных путей и ../", "Из архивов импортируются только .img, .raw и .qcow2 файлы", ".img и .raw после распаковки автоматически конвертируются в qcow2", "Установщик подключает patch_disk_images.py и patch_disk_archives.py", "Интерфейс загрузки дисков обновлён под архивы", "Версия обновлена до 0.7.7" ] }, { "version": "0.7.6", "date": "2026-05-07", "title": "Фильтры типов загружаемых файлов", "summary": "В интерфейсе разделены установочные ISO и готовые дисковые образы: ISO принимает только .iso, Диски принимают только .img, .raw и .qcow2.", "features": [ "В ISO-менеджере input file ограничен только .iso", "В менеджере дисков input file ограничен .img, .raw и .qcow2", "Добавлена клиентская проверка расширений перед загрузкой ISO", "Добавлена клиентская проверка расширений перед загрузкой готовых дисков", "Подсказки интерфейса теперь явно разделяют установочные образы и образы установленных систем", "Версия обновлена до 0.7.6" ] }, { "version": "0.7.5", "date": "2026-05-07", "title": "Сохранение авторизации после обновления", "summary": "Session secret теперь хранится постоянно в /var/lib/virtuality/config/session_secret, поэтому обновления больше не должны сбрасывать авторизацию в панели.", "features": [ "Установщик больше не генерирует новый session secret при каждом запуске", "Секрет сессий хранится в /var/lib/virtuality/config/session_secret", "Файл session_secret создаётся один раз с правами 600", "После обновления cookie остаются валидными, если secret уже был создан", "Версия обновлена до 0.7.5" ] }, { "version": "0.7.4", "date": "2026-05-07", "title": "Диагностика пустых DHCP leases", "summary": "Блок DHCP leases теперь показывает структурированную таблицу lease-ов или понятную причину, почему список пуст.", "features": [ "Добавлен разбор virsh net-dhcp-leases в структурированные строки", "Пустой список DHCP leases теперь сопровождается диагностической подсказкой", "На странице сети добавлены команды проверки DHCP и интерфейсов VM", "Установщик подключает patch_dhcp_leases_empty.py", "Версия обновлена до 0.7.4" ] }, { "version": "0.7.3", "date": "2026-05-07", "title": "Совместимость загрузки файлов", "summary": "Загрузки ISO и дисковых образов переведены на временный каталог Virtuality вместо системного /tmp, а имена файлов стали обрабатываться мягче.", "features": [ "Добавлен /var/lib/virtuality/tmp как временный каталог загрузок", "systemd service получает TMPDIR, TEMP и TMP внутри каталога Virtuality", "Установщик создаёт временный каталог с правами 1777", "Добавлен patch_upload_compat.py для мягкой нормализации имён файлов", "Ошибки загрузки теперь подсказывают проверить права и свободное место", "Версия обновлена до 0.7.3" ] }, { "version": "0.7.2", "date": "2026-05-07", "title": "Надёжная синхронизация автообновлений", "summary": "Автообновление больше не использует git pull --ff-only, а синхронизирует серверные исходники через fetch, reset --hard и clean.", "features": [ "git pull --ff-only заменён на git reset --hard origin/main", "Перед сбросом локальные изменения пишутся в update.log", "Добавлен git clean -fd для удаления мусорных файлов в source", "Автообновление стало устойчивее к локальным изменениям в /opt/virtuality/source", "Версия обновлена до 0.7.2" ] }, { "version": "0.7.1", "date": "2026-05-07", "title": "Фикс записи XML NAT-сети", "summary": "XML-файл libvirt NAT-сети перенесён из /tmp в /var/lib/virtuality/network, чтобы убрать Permission denied на системах с жёсткими правами /tmp.", "features": [ "NAT XML теперь хранится в /var/lib/virtuality/network/virtuality-nat.xml", "Запись XML выполняется атомарно через временный файл в каталоге Virtuality", "virsh net-define использует стабильный путь вместо /tmp/virtuality-nat.xml", "Версия обновлена до 0.7.1" ] }, { "version": "0.7.0", "date": "2026-05-07", "title": "Автоустановка обновлений каждые 15 минут", "summary": "Добавлен systemd timer, который каждые 15 минут проверяет GitHub и автоматически устанавливает обновление при появлении новых коммитов.", "features": [ "Добавлен scripts/auto_update_check.sh для фоновой проверки GitHub", "Установщик создаёт virtuality-auto-update.service", "Установщик создаёт virtuality-auto-update.timer с интервалом 15 минут", "Автообновление использует lock-файл и не запускает параллельные установки", "Лог пишется в /var/log/virtuality/update.log", "Версия обновлена до 0.7.0" ] } ] }