Зависимости и обновления
Screph устанавливается как одна программа, но разным задачам нужны разные runtime-компоненты. Вкладка Зависимости показывает их фактическое состояние, источник и занимаемое место — без скрытой установки и без незаметного fallback.
1. Вкладка Зависимости
Откройте главное окно настроек и выберите Зависимости. Сводка показывает, сколько компонентов готовы, отсутствуют, повреждены или отключены. В таблице видны выбранный и найденный глобальный пути, ожидаемый размер и возможная экономия диска.
- Проверить заново — повторно проверить executable, imports, paths и managed assets.
- Установить/починить локально — подготовить выбранные компоненты внутри управляемого каталога ScrephData и выполнить post-install smoke.
- Удалить локально — удалить только runtime-owned пути после проверки общих install groups.
- Использовать найденные глобально — переключить только те компоненты, чей global probe успешен.
2. Какие компоненты проверяются
| ID | Для чего | Нужен когда |
python.automation | Managed Python 3.12 | запускаются сгенерированные Python-сценарии. |
script.runtime | Automation script environment | используется Automation Runtime. |
cv.runtime | OpenCV/CV | нужны классические CV-операции и screen matching. |
ocr.runtime | Tesseract OCR | читается или ищется текст. |
video.runtime | FFmpeg | требуются поддерживаемые video operations и точные вырезки. |
voice.local | Vosk/PyAudio | выбрано локальное распознавание речи. |
ml.runtime | PyTorch/vision/transformers | используются YOLO, SAM, OmniParser и другие model-backed методы. |
codegen.runtime | Codegen/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 диагностикой.
- Сохраните текущий проект и незавершённые изменения в Screph Code.
- Остановите запись и проверьте, что настройки успешно сохранены.
- Подтвердите обновление. Screph попытается безопасно закрыть Selector и отдельный процесс Pro Agent.
- Завершите обновление в 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.