В продакшене по-прежнему прилетают HEIC с телефонов, рекламных съёмок и «быстрых» пресетов экспорта. На удалённом Mac OpenClaw может держать мониторинг входящей папки (watch folder), пакетно конвертировать через нативный sips, вшивать согласованный ICC и слать предупреждения по размеру файла до выгрузки на CDN — то же дерево каталогов переносится на следующий хост без сюрпризов. Ниже — пошаговый HowTo для передачи между DevOps и дизайн-ops. Стартуйте с руководства по установке OpenClaw (все платформы) и материала мониторинг PNG: повторы и архив логов на удалённом Mac для паттернов JSONL.
Содержание
Почему без присмотра HEIC-папки ломаются
- Недописанные файлы: медленный сброс буфера на диск даёт «растущие» пути; sips натыкается на усечённый HEIC и пишет неочевидные ошибки.
- Тихий цветовой дрейф: без фиксированного целевого ICC мастера в Display P3 и веб-PNG в sRGB расходятся в каждом просмотрщике по-своему.
- Раздувающийся вес: крупные кадры превращаются в многомегабайтные PNG; нужны структурированные алерты, а не разбор постфактум в мессенджере.
Матрица: чем конвертировать на macOS
| Подход | Плюсы | Минусы |
|---|---|---|
| sips (CLI) | Нативно, быстро на Apple Silicon, удобно для OpenClaw; -m назначает профиль ICC. |
Меньше «ручек», чем у ImageMagick; редкие варианты HEIC требуют выборочного QA. |
| Automator | Быстрый старт для одного пользователя. | Слабое версионирование и журналирование на общих арендованных хостах. |
| Пакетные GUI | Удобные превью. | Плохо стыкуются с хуками Gateway и CI. |
Дерево каталогов, права и контракт watch
Зафиксируйте одно дерево, например ~/HeicPipeline/: inbox, staging, png_out, failed, logs. Следите за inbox/**/*.heic (без учёта регистра), игнорируйте скрытые файлы и префиксы .tmp / ~$. Дебаунс 1–3 с, затем стабильный размер (два совпадающих stat через 400–800 мс) — только после этого перемещайте в staging и ставьте в очередь путь, размер, mtime и при необходимости project_slug. Запускайте OpenClaw под тем же пользователем и окружением, что проверяли по SSH. Если сетевой том отвечает «Operation not permitted», выдайте Full Disk Access процессу, который вызывает sips.
Параметры sips, ICC и проверка
Сначала конвертация в PNG, отдельным вызовом — назначение ICC: так проще читать логи и отлаживать сбои.
# 1) HEIC → PNG
sips -s format png "$SRC" --out "$DST"
# 2) Вшить корпоративный профиль (пример: sRGB)
sips -m "/System/Library/ColorSync/Profiles/sRGB Profile.icc" "$DST"
# 3) Проверить имя встроенного профиля
sips -g profile "$DST"
Свои ICC храните в ~/HeicPipeline/profiles/; в plist LaunchAgent указывайте абсолютные пути и задавайте HOME — в launchd не полагайтесь на «голый» ~.
Пост-проверка: ненулевые sips -g pixelWidth -g pixelHeight; по желанию exiftool -icc_profile:all для аудита. Типичные вопросы по оттенку связаны с управлением цветом PNG на Mac: sRGB и Display P3.
Пороги по байтам, алерты и политика повтора
После конверсии снимите stat -f%z для PNG и сравните с MAX_BYTES (мобильные «герои» часто укладываются в 250–900 КБ после ограничения ширины). Пишите JSONL-строки: ts, path, bytes, threshold, severity (info|warn|block). Временные ошибки sips повторяйте до трёх раз с задержками 5 с / 20 с / 60 с; повреждённые входы кладите в failed/ с stderr в sidecar. Ротируйте logs/jobs-YYYYMMDD.jsonl.
- Ограждение: дебаунс ≥1 с на NFS/SMB снижает дубликаты задач примерно на 40–60 % в типичных студийных прогонах.
- Пропускная способность: локальный SSD на M-серии часто даёт десятки HEIC в минуту, если профили уже «прогреты».
- SLA по алертам: строки
warnдоставляйте в вебхуки в течение 60 с, чтобы арт-дирекшн успел ужать кадр до ночной сборки.
Проверка здоровья OpenClaw Gateway
Опрашивайте Gateway из того же контекста, что и воркер, примерно каждые 5 мин через launchd или оркестратор. Если у вас Prometheus, продублируйте тот же probe в blackbox — тогда пейджинг совпадёт с тем, что видит конвейер конверсии.
curl -fsS "http://127.0.0.1:${OPENCLAW_GATEWAY_PORT}/health"(подставьте путь health из документации вашей сборки).- Требуйте HTTP 200 и, например,
"status":"ok"; после ротации TLS обновляйте пробы, а не закрепляйте устаревшие отпечатки. - При сбое: запись в JSONL, пауза выборки HEIC из очереди, уведомление дежурного; после восстановления прогоните один канареечный файл и только затем сливайте очередь.
Выделенный удалённый Mac на стабильном Apple Silicon уменьшает шум таймаутов в пики конверсии по сравнению с перегруженными ноутбуками.
Имеет смысл вести отдельный «канареечный» каталог из одного–двух эталонных HEIC и прогонять его после каждого обновления macOS или смены профиля ICC: так вы раньше заметите регрессию в размере файла или в гамме, чем клиент увидит сдвиг на проде.
FAQ: цветовой сдвиг и альфа
В: PNG выглядят зеленее HEIC в «Фото».
О: «Фото» цветоуправляемо; многие браузеры трактуют контент как sRGB. Используйте sips -m, смотрите превью в управляемом приложении и выровняйте пресеты экспорта — см. чеклист sRGB и P3 по ссылке выше.
В: Прозрачность пропала.
О: Проверьте sips -g hasAlpha на источнике и результате; изолируйте схлопнутые кадры.
В: Health зелёный, а задачи висят.
О: Проверьте место на диске, файлы очереди и блокировки в staging.
Удалённый Mac держит OpenClaw рядом с sips, фиксирует ICC и алерты, разгружает термалы ноутбука и позволяет ночным очередям доезжать без закрытия крышки. Предсказуемый запас по Apple Silicon — практическая причина арендовать узел вместо того, чтобы растягивать дорожную машину.
Конвейер HEIC→PNG на выделенном Apple Silicon
Просматривайте конфигурации MacPng без входа в аккаунт, сравните аренду узлов, откройте помощь по SSH или VNC и разверните этот рецепт watch folder на хосте, который не засыпает во время ночных партий.