Tensionix ENDERU
GitHub28 RepositoriesDaily Tech3 Abonnentenaudion.devdas ProduktregalRSSVeröffentlichungen
← Alle NotizenProjects

Audion DevOps Tools

Portable GUI-shell для набора Audion micro/macro utilities.

GUI не заменяет существующие CMD/FZF/PowerShell-слои. Он добавляет управляемую оболочку: поля, списки, чекбоксы, picker-кнопки, подтверждения, терминальный журнал и быстрый ручной запуск команд.

Финальный UI-слой работает как приборная панель: короткие English-heavy кнопки, компактное видимое описание, логические рамки для пар backup / restore, export / import, block / unblock, мягкие тона кнопок для щадящих/обычных/сильных действий и полный Windows-контекст в tooltip. Опасные подтверждения показывают полный текст, чтобы перед запуском не терялись последствия.

Позиционирование

Audion DevOps Tools не пытается быть клоном Chris Titus WinUtil, generic Windows tuner или debloater. Цель проекта - закрыть недостающий тонкий программно-аппаратный слой: WSL lifecycle, host virtualization modes, driver policy, WinRE/storage procedures, network state, default-app policy, hosts overrides, certificates and SSH keys.

Это не набор твиков ради твиков. Это рабочая кабина истребителя для людей, которые понимают последствия системных операций и хотят видеть кнопки, параметры, подтверждения, backup и terminal log в одном контролируемом контуре.

Запуск

launcher_gui.cmd

GUI использует portable Python runtime из папки проекта. Если нужно временно указать другой Python:

set AUDION_GUI_PYTHON=C:\Path\To\python.exe
launcher_gui.cmd

Обычный запуск теперь запрашивает UAC и поднимает весь GUI от имени администратора. Это удобнее для DevOps-сценариев с DISM, hosts, сетевыми адаптерами, diskpart/WinRE и WSL setup.

Для read-only отладки без UAC:

set AUDION_GUI_NO_ELEVATE=1
launcher_gui.cmd

Локальный сервер по умолчанию:

http://127.0.0.1:8092/

Есть и короткие модульные CMD-входы для аварийной/ручной работы без открытия всего GUI:

launcher_project_ru.cmd
cli\launcher_wsl.cmd
cli\launcher_bitrix.cmd
cli\launcher_default_apps.cmd
cli\launcher_association_defense.cmd
cli\launcher_hardware.cmd
cli\launcher_docs_pdf.cmd
cli\launcher_codex_nuke.cmd
cli\launcher_python_nuke.cmd

cli\launcher_wsl.cmd, cli\launcher_bitrix.cmd, cli\launcher_default_apps.cmd и cli\launcher_association_defense.cmd вызывают тот же manifest/service layer через system_core\cli_operation.py, поэтому не дублируют логику GUI. cli\launcher_docs_pdf.cmd вызывает system_core\docs_pdf.py: dry-run строит автономный план, а реальный рендер использует внешний Markdown PDF engine из --engine, AUDION_MARKDOWN_PDF_ENGINE или автоматически найденного соседнего проекта. cli\launcher_codex_nuke.cmd и cli\launcher_python_nuke.cmd являются корневыми wrapper-входами в встроенные tools\...\Nuke.cmd, где сохраняются UAC elevation и typed confirmations. Прямой CLI-запуск kind: dangerous требует --yes-i-understand.

Обслуживание Папок

Создать недостающие рабочие папки после переноса/распаковки:

init_folders.cmd

Деликатная очистка проекта:

cleanup_project.cmd

Cleaner оставляет скрипты, конфиги, документацию, tracked license docs и сами папки. Он удаляет всё сгенерированное, скачанное или появившееся в управляемых зонах проекта: runtime, wheelhouse, release, ripgrep, install\download, system_core\powershell, system_core\fzf.exe, input, output, logs, report, workspace, data и Python-кэши.

backup - ключевая project-local папка и отдельный путь ProjectPaths.backup. Там лежат rollback/safety snapshots для Network, Default Apps, Driver Guard, Browser Bookmarks, NVIDIA Audio, сертификатов, SSH, virtualization и hosts-операций. Это generated state: обычный cleaner очищает содержимое backup вместе с другими рабочими зонами, затем восстанавливает структуру и .gitkeep.

Очистка охватывает каждую папку резервов, а не только корневую: свои держат паки под tools\ - network_cleaner, disable_windows_proxy, bitrix_hosts_toggle_pack и оба блока wsl. В их снимках состояние конкретной машины - MAC- и IP-адреса, DNS-серверы, имена сетей Wi-Fi, экспорт брандмауэра и реестра, - и в релиз этому попадать нельзя. Папки находятся по имени, а не перечисляются, поэтому новый пак со своими резервами попадает под очистку сам. Переживают её два вида файлов: .gitkeep / .keep и файл tools\bitrix_hosts_toggle_pack\backup\hosts - заводской эталон, из которого этот пак восстанавливает; он не в git, и заново его никто не создаст.

Для очистки только backup без остальных зон остаётся отдельный режим:

cleanup_project.cmd /BACKUP

Перед реальным backup-only удалением этот режим всегда спрашивает Y/N/Q; для проверки его узкого плана используйте cleanup_project.cmd /BACKUP /DRYRUN.

Проверить план без удаления:

cleanup_project.cmd /DRYRUN /Y

/Y только пропускает вопрос подтверждения. При отдельном запуске cleaner всё равно ждёт клавишу на финальном экране; закрытие без паузы включается только явным /NOPAUSE для launcher/automation-сценариев.

В builder_main.cmd оставлены install/diagnostic операции: Init folders, [70] CLEAN INSTALL CACHE, doctor/smoke и release checks. cleanup_project.cmd не является пунктом builder-меню: это отдельная destructive source-cleanup процедура для явного ручного запуска. Для install cache используйте install\Clean-Install-Cache.cmd, а не cleanup_project.cmd.

Портативная сборка окружения:

install\Build_Portable_Env.cmd

Build-скрипты пересобирают runtime/wheelhouse, ставят пакеты из локального wheelhouse и в финале запускают system_core\doctor.py плюс NiceGUI smoke. Перед перезаписью generated install-зон они показывают Y/N/Q; backup не входит в зону пересборки. Для автоматического rebuild есть явный /Y.

Portable PowerShell

PowerShell ищется в таком порядке:

  1. system_core\powershell\pwsh.exe
  2. pwsh.exe из PATH
  3. powershell.exe

Установка portable PowerShell доступна из GUI:

Runtime and shell -> Install portable PowerShell

или вручную:

install\Install-Portable-PowerShell.cmd /NOPAUSE

Разделы GUI

Экранные описания в разделах намеренно короткие: они помогают за пару секунд понять, нажимать команду или нет. Подробности, Windows-термины, риски и откат раскрываются в tooltip по кнопке или описанию. Рамки группируют пары и pipeline-сценарии, а цвет кнопки только мягко показывает силу действия; он не заменяет kind, risk_level, confirmation и terminal log.

Windows DEV Long Paths

В Runtime and shell -> Windows DEV settings есть три команды:

Нюанс важный: это не полностью отключает MAX_PATH для всей Windows. Нужны системная настройка LongPathsEnabled=1 и поддержка longPathAware со стороны конкретного Win32-приложения. Для DEV это полезно, особенно с node_modules, virtualenv, vendored SDK и глубокими workspace-папками, но проекты всё равно лучше держать в коротких путях вроде S:\Code\Project, E:\Dev\Project, C:\Dev\Project.

Browser Bookmarks Master За 45 Секунд

Если Chromium-синхронизация сломала иконки или нужно перенести эталон закладок без облачного merge:

  1. Выбери Workbench TARGET для export или SOURCE для import.
  2. Вверху выбери действие: Status, Import, Export или Transfer.
  3. Для Status и Export браузеры выбираются чекбоксами, можно несколько сразу.
  4. Для Import в системном режиме браузеры выбираются чекбоксами; portable-режим принимает один точный профиль.
  5. Для Transfer источник выбирается radio-кнопкой, приёмники чекбоксами; совпадающий источник скрыт из приёмников.
  6. Запусти Export master to Workbench TARGET, Import master from Workbench SOURCE или Transfer master between browsers.

Переключатели сверху сделаны широкими кнопками с отчётливым активным состоянием; цвет служит навигации и не заменяет подтверждение риска.

Если выбранный браузер не имеет живого профиля, он логируется как SKIP, GUI показывает жёлтый toast и продолжает работу с остальными выбранными браузерами.

Перед import и transfer локальный Favicons/Favicons-journal у приёмников очищается автоматически; это не отдельный режим, а постоянный служебный шаг.

Для сетевого backup внутри окна есть UNC-конструктор \\SERVER\Share\Folder: поля сервер/компьютер, Share, необязательная папка внутри Share сохраняют текущий Workbench SOURCE или TARGET.

Версионирование применяется к папкам backup: YYYY-MM-DD_HH-MM-SS_<backup_label>_vNN. Сами файлы внутри остаются браузерными и совместимыми: Bookmarks, Favicons, Favicons-journal.

Bitrix Hosts За 30 Секунд

Текущий default для on-prem Bitrix: portal.itpgrad.ru -> 192.168.0.130, port 443, URL https://192.168.0.130.

Ритуал:

  1. Hosts and Bitrix -> Detect current endpoint.
  2. Проверить, что подставился local/private IP и порт.
  3. Status / DNS / ports.
  4. Enable override.
  5. После работы: Disable override.

Disable override делает не "удаление строки", а побитовый depatch: берёт backup=hosts_prepatch_....bak из managed-комментария и копирует этот backup поверх системного hosts. Подробно: docs\BITRIX_HOSTS_RU.md.

Официальный Admin-Слой

Системные операции в проекте намеренно строятся вокруг документированных Windows admin/deployment механизмов, а не вокруг случайной правки реестра.

Документация Microsoft:

Default Apps Guard За 60 Секунд

Если Windows уже установлена, программы стоят, defaults выставлены вручную, и нужно не дать Edge снова стать браузером или PDF-читалкой:

  1. Default Apps Guard -> Проверить защиту defaults.
  2. При важной точке отката заполнить Метка backup, например golden-before.
  3. Перезаписать эталон текущими defaults.
  4. Оставить Remove Suggested=true.
  5. Включить / починить защиту defaults.
  6. Sign out/sign in или reboot.
  7. Снова Проверить защиту defaults.

Метка backup добавляется в имя timestamp backup-файла и в .note.txt рядом с ним, чтобы потом было видно, какой снимок был “до FastStone”, “golden before” или “clean Windows + Office”. Восстановление собственного снимка делается через Заменить эталон из backup/XML: штатные XML из backup\default_apps выбираются из dropdown Backup XML; Внешний XML нужен только для файла извне. Очистить устаревшие резервные копии удаляет только безымянные timestamp backups; файлы с меткой, ручные XML/TXT и .note.txt остаются. Список Отслеживать находится в Дополнительно: он задаёт область диагностики/сравнения, а не сам policy XML. Для него есть быстрые пресеты Все, Снять, По умолчанию, WEB, IMAGE, VIDEO, AUDIO, OFFICE и соседние группы.

Тонкости и забавности Windows описаны отдельно: docs\DEFAULT_APPS_GUARD_RU.md.

На Windows 11 Home этот сценарий становится ограниченным: status/snapshot/rescan/import остаются полезными, но policy-слой не считается Microsoft-documented гарантом. Снимки ассоциаций в Association Defense работают на любой редакции — они только читают реестр.

Hardware / Driver Guard За 45 Секунд

Если Windows любит подменять рабочие драйверы:

  1. Hardware -> Driver Update Blocker -> Проверить защиту драйверов.
  2. Блокировать драйверы Windows Update.
  3. Reboot.
  4. Снова проверить статус.

После ручной установки хорошего NVIDIA-драйвера можно дополнительно включить Блокировать NVIDIA driver installs, оставив Retroactive block выключенным. Быстрый корневой wrapper для автозагрузки или Task Scheduler: cli\Lock-NVIDIA-Driver-Installs.cmd --no-pause.

Для надоедливого звука мониторов через NVIDIA HDMI/DP: NVIDIA audio status, затем Disable или Policy-block. Быстрый корневой wrapper для жесткого policy-блока: cli\Lock-NVIDIA-HDMI-DP-Audio.cmd --no-pause.

Скрипты встроены в проект: system_core\windows_driver_guard и system_core\nvidia_audio. Старые внешние папки больше не нужны. CLI-доступ есть в cli\launcher_hardware.cmd; launcher_project.cmd / launcher_project_ru.cmd открывают его из общего меню. Это короткий набор основных команд из прототипов, не полный дубль GUI.

Utilities За 30 Секунд

Раздел Utilities не является складом случайных кнопок. Там лежат небольшие, но рабочие project-local helpers:

Generated PDF-документы складываются в docs\PDF. Source Markdown остается в корне, docs и GitHub; PDF рядом с исходными MD не храним. После генерации отдельную визуальную проверку PDF не выполняем: итог считается артефактом Markdown source + общего PDF engine.

<!-- BEGIN GENERATED COMMAND CATALOG -->

Полный Каталог Команд

Этот каталог генерируется из config\tool_manifest.yaml. Он содержит все команды и полный текст, который используется как пользовательская подсказка в GUI. Цвет кнопки не заменяет kind, risk_level, подтверждение и журнал.

Среда выполнения и оболочка

Browser Bookmarks Master

Очистка сети

Подключение и адаптеры

WSL Toolkit

Виртуализация

Hosts и Bitrix

Приложения по умолчанию

Hardware

OpenSSH KeyKit

Бэкап AI CLI

Сертификаты (экспорт/импорт)

Шрифты пользователя

Среда оболочки

Доступы из конфигурации

Переезд на новую машину

Утилиты

Обслуживание и очистка

Обслуживание

<!-- END GENERATED COMMAND CATALOG -->

Терминал

Правая панель - это основной журнал операций. Она показывает:

В Workbench Сбросить возвращает проектные input/output без удаления, а Удалить очищает текущие Источник и Назначение после подтверждения.

Внизу терминала есть быстрый command bar:

История хранится здесь:

config\terminal_commands.json

WSL

WSL-раздел построен как мастер, а не просто набор старых wrapper-скриптов.

GUI больше не привязан к старым Audion_WSL_Block_E / Audion_WSL_Block_S: имя дистрибутива, файл образа и папка установки выбираются прямо в форме. Дефолтная managed-зона для новых WSL-артефактов:

X:\WSL на не-системном fixed-диске, если он доступен
C:\WSL только если кроме C: нет других fixed-дисков

Базовые операции:

Операции с дистрибутивами вынесены отдельно:

Осторожность

Команды с системными изменениями в manifest помечены как kind: dangerous, и GUI требует отдельного подтверждения перед запуском. Дополнительный risk_level уточняет тип риска: readonly, project_write, user_write, system_change, destructive, secret_export.

Команды не окрашиваются автоматически только потому, что они kind: dangerous: это поле отвечает за подтверждение. Мягкие тона кнопок используются точечно, когда рядом есть выбор разной силы действия, например status/repair/reset или backup/export/restore.

Для операций, которым нужны права администратора, запускайте GUI от имени администратора. Иначе backend-скрипты могут штатно отказать.

При обычном запуске весь GUI уже elevated. Если GUI специально запущен с AUDION_GUI_NO_ELEVATE=1, часть сервисов всё равно умеет сама запросить UAC для известных admin-действий и вернуть elevated-log в журнал операции.

Интерактивные destructive wizard-утилиты, например Audion SSD-NVMe Reset Wizard v4, открываются во внешней консоли, чтобы сохранить их typed confirmations и не прятать prompt-heavy меню внутри GUI-лога. Встроенные инструменты очистки Codex и Python живут в отдельных папках tools\codex_nuke и tools\python_nuke; GUI показывает их отдельными блоками и вызывает не через интерактивное Nuke.cmd, а напрямую через Invoke-*.ps1 с выбранным режимом.

Кодировка терминала

GUI-раннер читает вывод дочерних процессов как bytes и декодирует через fallback:

Это важно для русских строк netsh, wsl, reagentc, PowerShell и старых CMD-утилит.

Проверка

Минимальная проверка после изменений:

runtime\python.exe -m py_compile system_core\ui_nicegui\app.py system_core\services\devops_tools.py system_core\core\jobs.py
runtime\python.exe system_core\ui_nicegui\app.py --smoke
runtime\python.exe system_core\doctor.py

Проверка GUI-сервера:

runtime\python.exe system_core\ui_nicegui\app.py --host 127.0.0.1 --port 8092 --no-browser

Откройте:

http://127.0.0.1:8092/

Дополнительная документация

Bearbeitet 28.08.2026