2026 OpenClaw на практике: на удалённом Mac следить за каталогом экспорта браузера, проверять встроенный ICC в PNG и архивировать файлы по шаблону имён

Веб-команды всё чаще выгружают растровые материалы прямо из браузера или плагинов предпросмотра: «Сохранить как PNG» в подпапку загрузок, быстрый экспорт из DevTools или связка Figma → локальный каталог. На ноутбуке дизайнера это ломается от сна диска и смены путей; на удалённом Mac с OpenClaw удобно держать единый контур: watch входящей папки, проверка ICC (чтобы CDN и Safari не интерпретировали цвет «как попало»), затем переименование по шаблону и перенос в каталог отгрузки. Ниже — шаги без «магии»: их можно перенести на другой узел завтра. Базовую установку согласуйте с руководством по установке OpenClaw на все платформы; нюансы метаданных и lossless-перепаковки PNG — в материале метаданные PNG, ICC/sRGB и lossless. Цепочку «watch → переименование → валидация» можно стыковать с пайплайном watch folder и переименования PNG.

Содержание

OpenClaw и шлюз: минимальная установка и права

Сведите поверхность к тому, что реально использует команда: OpenClaw Gateway (или эквивалентный HTTP/CLI-триггер) и один долгоживущий воркер под тем же пользователем macOS, под которым идёт SSH и читается каталог экспорта. Версии Node/Python и путь к бинарникам зафиксируйте в коротком README рядом с конфигом — иначе ночной перезапуск и ручная сессия разойдутся по окружению.

Контракт каталогов (корень подставьте свой, имена сохраните):

  • ~/WebPngPipeline/inbox — сюда браузер или скрипт кладёт свежие PNG (в Chrome задайте стандартную папку загрузок или подкаталог «export-web»).
  • ~/WebPngPipeline/validate — файл «захвачен» на время чтения ICC и проверки целостности.
  • ~/WebPngPipeline/ready — прошли профиль и имя; отсюда забирает CI или rsync.
  • ~/WebPngPipeline/failed — карантин с sidecar .reason.json (код правила, stderr).
  • ~/WebPngPipeline/logs — JSONL по заданиям, суточная ротация.

Чеклист прав: (1) chown -R на пользователя воркера; не оставляйте world-writable. (2) В launchd plist указывайте абсолютные пути и EnvironmentVariables с HOME — тильда ~ в plist не раскрывается. (3) При запросе macOS выдайте Full Disk Access терминалу или бинарнику воркера, если чтение идёт из защищённых томов. (4) Дымовой тест из той же оболочки, что будет у OpenClaw: touch по всем пяти каталогам и sips -g profileName на эталонном PNG.

Конфигурация мониторинга папки экспорта браузера

Экспорт из браузера часто двухфазный: сначала появляется временный файл, затем он переименовывается в .png. Наблюдатель должен реагировать на завершённую запись.

Шаги настройки watch:

  1. В Chrome/Edge укажите каталог загрузок внутри inbox или symlink «Загрузки → inbox», чтобы не смешивать личные файлы и ассеты.
  2. Включите дебаунс 1–3 с после последнего события по пути и проверку стабильного размера (два одинаковых stat с паузой 400–800 мс).
  3. Фильтр: только *.png, без регистрозависимых сюрпризов; игнор .crdownload, .tmp, скрытых имён.
  4. Очередь задачи OpenClaw: абсолютный путь, размер, mtime, опционально source=browser из переменной окружения плагина.

На хосте достаточно fswatch и оболочки, которая ставит задания в файл-очередь или вызывает webhook Gateway; для продакшена удобнее launchd с KeepAlive. Политику повторов и ротации JSONL-логов зафиксируйте в том же репозитории конфигов, что и триггер watch, чтобы ночной перезапуск не обнулял счётчики backoff.

Правила проверки ICC и цветового профиля в PNG

Для веба обычно хотят предсказуемый sRGB: либо явный встроенный профиль sRGB IEC61966-2.1, либо (по внутреннему регламенту) отсутствие встроенного профиля при условии, что исходный рендер уже в sRGB и QA смотрит только в браузере с дефолтом sRGB. Зафиксируйте одну политику на продукт — смешение «то с ICC, то без» даёт расхождения между Chrome и Safari.

Политика команды Условие «принято» Пример проверки (macOS)
Строгий sRGB для маркетинга Встроенный профиль совпадает с эталоном или конвертирован через sips sips -g profileName "/path/validate/x.png" → ожидаемая строка
«Без встроенного ICC» exiftool не показывает iCCP / профиль пуст exiftool -icc_profile:all "/path/validate/x.png"
Запрет Display P3 в веб-поставке Имя профиля не содержит P3; иначе failed/ Парсинг вывода sips или JSON из exiftool

Мини-пример исправления: если политика требует sRGB, а браузер отдал PNG с профилем дисплея, выполните нормализацию до продвижения в ready/:

sips -m "/System/Library/ColorSync/Profiles/sRGB Profile.icc" \
  "/path/validate/asset.png" --out "/path/validate/asset_srgb.png"

После конвертации повторите чтение профиля и только затем применяйте шаблон имени. Отдельно зафиксируйте для команды, разрешён ли Display P3 в исходниках и как он запрещён в финальной веб-поставке — иначе правило «только sRGB» будет спорить с макетами из Figma на P3-дисплее.

Шаблоны имён, архив и политика повторов при сбоях

Шаблон имени держите детерминированным, чтобы диффы и CDN-кэш были предсказуемы. Пример для лендинга и баннеров:

{project_slug}_{block_id}_{width}x{height}_{profile_token}.png
# hero_main_1920x1080_srgb.png

Чеклист переименования: (1) Атомарность: пишите во временное имя в validate/, затем mv в ready/. (2) Коллизии: если файл существует, добавляйте суффикс _v2 или короткий суффикс из SHA-256 имени исходника. (3) Архив: опционально копируйте в ready/archive/YYYY-MM-DD/ tar-пакетом по релизу, чтобы откатить поставку без поиска по корзине браузера.

Повторы (retry): разделите ошибки данных (битый PNG, неизвестный профиль при строгой политике) и транзиентные (задержка NFS, краткий обрыв VPN). Для транзиентных — экспоненциальный backoff 5 / 20 / 60 с, не более трёх попыток на файл; фиксируйте каждую попытку в JSONL (stage: watch | icc | rename). Окончательный отказ → failed/ и уведомление в тот же канал, что использует Gateway.

FAQ: типичные ошибки и разбор

В: watch срабатывает на «пустой» или обрезанный PNG.
О: Увеличьте дебаунс и проверку стабильного размера; отбрасывайте файлы нулевой длины и префиксы временных имён браузера.

В: Operation not permitted при чтении из «Загрузок».
О: Выдайте Full Disk Access процессу воркера; убедитесь, что владелец файлов совпадает с UserName в LaunchAgent.

В: sips показывает профиль дисплея вместо sRGB после «исправления».
О: Проверьте, что вы указываете выходной путь и не читаете старый файл; для пакетов не смешивайте in-place и копию в одном задании без явного контроля.

В: launchd не видит inbox.
О: Только абсолютные пути; передайте HOME в окружение plist; избегайте относительных путей от «текущей директории».

В: политика «без ICC», но QA видит цветовой сдвиг в Safari.
О: Пересмотрите регламент: часто безопаснее явный sRGB в файле; сверьтесь с lossless-перепаковкой и метаданными в материале по ICC из вводного абзаца.

Удалённый Mac + OpenClaw для веб-PNG

Запуск контура watch и ICC на выделенном Apple Silicon

Когда нужны стабильные пути, ночные пакеты и SSH без сна ноутбука, удалённый Mac — удобная база для OpenClaw, мониторинга каталогов и проверки профилей. На MacPng можно открыть страницы без обязательного входа: сравните тарифы, оформите аренду и перенесите этот HowTo на свой узел.

Главная Аренда / покупка Помощь и настройка Технические идеи (блог) Тарифы
OpenClaw 2026 ICC, watch и PNG на удалённом Mac
Арендовать Mac