Зависимости и обновления

Screph устанавливается как одна программа, но разным задачам нужны разные runtime-компоненты. Вкладка Зависимости показывает их фактическое состояние, источник и занимаемое место — без скрытой установки и без незаметного fallback.

1. Вкладка Зависимости

Откройте главное окно настроек и выберите Зависимости. Сводка показывает, сколько компонентов готовы, отсутствуют, повреждены или отключены. В таблице видны выбранный и найденный глобальный пути, ожидаемый размер и возможная экономия диска.

  • Проверить заново — повторно проверить executable, imports, paths и managed assets.
  • Установить/починить локально — подготовить выбранные компоненты внутри управляемого каталога ScrephData и выполнить post-install smoke.
  • Удалить локально — удалить только runtime-owned пути после проверки общих install groups.
  • Использовать найденные глобально — переключить только те компоненты, чей global probe успешен.

2. Какие компоненты проверяются

IDДля чегоНужен когда
python.automationManaged Python 3.12запускаются сгенерированные Python-сценарии.
script.runtimeAutomation script environmentиспользуется Automation Runtime.
cv.runtimeOpenCV/CVнужны классические CV-операции и screen matching.
ocr.runtimeTesseract OCRчитается или ищется текст.
video.runtimeFFmpegтребуются поддерживаемые video operations и точные вырезки.
voice.localVosk/PyAudioвыбрано локальное распознавание речи.
ml.runtimePyTorch/vision/transformersиспользуются YOLO, SAM, OmniParser и другие model-backed методы.
codegen.runtimeCodegen/OpenHandsиспользуется Screph Code.

Вес модели и сам runtime — разные вещи. Успешный probe ml.runtime не гарантирует, что конкретные веса YOLO/SAM/OmniParser уже скачаны и совместимы с выбранным методом. Каталоги, active selection и SHA-статус описаны в справке «CV-модели и локальные веса».

3. Откуда брать runtime

  • local — управляемая установка внутри ScrephData; стандартный и наиболее воспроизводимый вариант.
  • global — уже найденная системная установка, если её probe прошёл.
  • custom — явно выбранный путь в advanced mode.
  • install_global — advanced policy option, но пока не рабочая команда системной установки. Текущий installer строит install targets только для local, а этот source probes уже существующий global runtime так же, как global. Не выбирайте его в ожидании установки в PATH или системный каталог.
  • skip — не устанавливать и не использовать компонент; связанная функция останется недоступной.

Если выбранный источник отсутствует или повреждён, Screph показывает ошибку компонента. Он не заимствует незаметно другой Python, Tesseract или provider из PATH. Кнопка Установить/починить локально пропускает все non-local sources; для install_global она сообщает, что выбранных локальных зависимостей нет.

4. ML runtime и подписанный pack

ml.runtime — самый тяжёлый блок. В него входят отдельные packages: PyTorch, TorchVision, Ultralytics, timm, Transformers и Hugging Face Hub. Можно отключить весь блок или ненужные root packages; установщик проверяет замыкание зависимостей выбранного subset.

Для сетевой установки используется publication manifest и подписанный архив. До распаковки проверяются component/channel, URL и sidecars, SHA256, detached CMS/PKCS#7 signature, trust chain или закреплённый signer thumbprint, lock и SBOM. Offline pack можно выбрать с диска; он проходит ту же проверку payload.

Два ML-слоя в мастере. QtIFW component com.screph.boteye.runtime.ml — optional application payload и по умолчанию не выбран. Dependency page читает этот initial choice и включает отдельный managed ml.runtime workflow в ScrephData: при default policy он предлагает проверенную сетевую загрузку около 334 MB и предупреждает об объёме до 6,5 GB либо принимает локальный pack. Оба слоя вместе обеспечивают выбранный ML-workflow; Classic CV остаётся доступен без них.

Проверка публикации загружает только небольшой manifest. Большой archive скачивается отдельной командой; отменённая или не прошедшая проверку загрузка не становится активным runtime pack.

5. Обновление программы

Обновления приложения и установка runtime-зависимостей — связанные, но разные процессы. Screph проверяет Qt Installer Framework repository и может предложить обновления отдельных продуктовых компонентов, включая основной интерфейс и Pro Agent. Установку выполняет maintenance tool существующей установки.

Что происходит автоматически. В установленной сборке с доступным maintenance tool переключатель Автоматически проверять обновления при старте включён по умолчанию. Первая проверка планируется примерно через 4 секунды после запуска, затем ограничивается интервалом 24 часа. Загружается только Updates.xml (до 5 MB) с configured repository; User-Agent содержит Screph/<version> update-check. Проект, кадры и настройки не отправляются. Переключатель можно отключить в основных настройках.

Ошибка тоже включает интервал. Текущий startup controller записывает last_auto_check_at до разбора результата: успешная проверка, сетевая ошибка и некорректный XML одинаково откладывают следующую автоматическую попытку на configured interval (по умолчанию 24 часа). Выключение и повторное включение флажка этот timestamp не сбрасывает. Кнопка Открыть менеджер обновлений запускает controlled shutdown и отдельный maintenance tool; это не повтор lightweight-проверки внутри работающего Screph.

Текущий Alpha channel требует проверки. Source metadata указывает channel=dev, но configured repository URL и website publisher используют путь stable, тогда как свежий локальный repository собран в .build/updates/windows/dev. Это несоответствие не меняет установленную программу само по себе, но означает, что наличие совместимого автоматического обновления для текущего artifact нельзя считать подтверждённым до выравнивания channel/URL и прохождения release publication checklist. Поля версии, channel и repository во вкладке настроек остаются read-only диагностикой.

  1. Сохраните текущий проект и незавершённые изменения в Screph Code.
  2. Остановите запись и проверьте, что настройки успешно сохранены.
  3. Подтвердите обновление. Screph попытается безопасно закрыть Selector и отдельный процесс Pro Agent.
  4. Завершите обновление в maintenance tool, затем снова проверьте зависимости.

После успешной подготовки Screph планирует отдельный maintenance tool примерно через две секунды и завершает основной процесс. Сам запуск выполняется без явного runas со стороны Screph; Windows/installer может запросить elevation в зависимости от каталога и операции. Если активное окно, запись или несохранённое состояние нельзя безопасно закрыть, обновление останавливается с понятным сообщением.

Полная граница Windows/UAC для обновления →

6. Обновление встроенной справки

Это отдельный механизм, не связанный с QtIFW и переключателем обновления программы. Установленная сборка уже содержит локальный bundled snapshot шести основных HTML-страниц, поэтому эта часть справки доступна без сети. Если модуль gui.docs доступен, примерно через 1,2 секунды после запуска Screph может запросить свежий набор с screph.com/documentation/. Локальный кэш заменяется только после успешного получения всех шести страниц; при ошибке остаётся предыдущий валидный набор. Запросы используют User-Agent ScrephDocs/1.0 и не содержат проект, кадры, настройки или данные аккаунта.

В текущей реализации отдельного переключателя нет, а guard разрешает новую попытку через час после предыдущей. Поэтому это не следует считать частью 24-часового лимита проверки приложения. Remote-набор применяется только когда каждая страница объявляет cache version не старше локальной; немаркированный или более старый deployment не понижает bundled snapshot. Ссылки из встроенной справки на руководства вне локального набора открывают полный сайт и требуют сетевого доступа.

7. Как читать проблемы

  • Missing: выбранный источник не содержит нужного executable/import/asset.
  • Broken: путь существует, но probe или smoke завершился ошибкой; используйте repair или выберите другой явный источник.
  • Skipped: компонент отключён политикой пользователя, это не ошибка установки.
  • Pack downloaded, not selected: архив есть в managed cache, но ещё не выбран как active offline pack.