Workspace OpenClaw, openclaw.json и изоляция состояния ~/.openclaw на общем арендованном Mac mini (2026)
Платформенные инженеры, которые запускают OpenClaw на одном арендованном Mac mini с Apple Silicon у VmMac, быстро понимают: «работает в моей shell» — это не то же самое, что «работает под launchd для двух сквадов». Хрупкий шов почти никогда не в карте модели — он в корне workspace, закоммиченном контракте openclaw.json и дереве состояния пользователя под ~/.openclaw. Когда staging пишет кеши рядом с прод-токенами или после деплоя дрейфует WorkingDirectory, шлюз читает неверный файл и инцидент выглядит как «регрессия LLM». Матрица 2026 задаёт границы и сочетается с изоляцией launchd staging vs prod, гигиеной секретов и plist и мультиаккаунт-изоляцией, чтобы хосты VmMac в Гонконге, Японии, Корее, Сингапуре и США оставались скучно выровненными.
Начните с установки и деплоя, семантику доступа — в справке, а цены откройте, когда руководство согласно, что дешевле второй mini, чем ещё неделя археологии общего состояния.
Граница workspace: корень репозитория vs runtime checkout
OpenClaw workspace — каталог, который вы checkout для автоматизации: openclaw.json, манифесты skills и локальные обёртки под code review. Всё генерируемое в рантайме — большие кеши, зеркала весов, черновики — вне git, если нет явной политики артефактов.
На VmMac часто без симлинков: ясность важнее хитрости. Если инженеры клонируют в ~/src/openclaw-tenant-a, а launchd всё ещё смотрит на прошломесячный ~/build/openclaw, вы гоняетесь за призраками. Зафиксируйте канонический абсолютный путь для каждого арендатора на той же странице, что и SSH-bastion.
- Git хранит намерение—дефолты, флаги, аудированные списки инструментов.
- Диск хранит энтропию—кеши, транскрипты для последующей маскировки, временные экспорты.
- Plist — клей—окружение, cwd, сессия пользователя, пути логов.
openclaw.json как контракт: версии, ревью, формы секретов
openclaw.json должен читаться как схема API: стабильные ключи, явные дефолты, комментарии только где позволяет диалект JSON. Отклоняйте диффы с встроенными долгоживущими API-ключами — они относятся к хранилищу из гигиены секретов, а не к файлу, который может cherry-pick каждый стажёр.
Тегируйте релизы, чтобы отвечать «какой конфиг крутился в Токио в 03:14» без SSH. Региональный хотфикс: ветка, деплой, мёрж — временные снежинки на shared-хостах переживают авторов.
tools, нужны разные файлы или разные пользователи — никогда не переключайте один путь вручную дважды в день.
~/.openclaw и рядом: что нельзя смешивать
Решайте матрицей, что в префиксе home-состояния, а что в workspace.
| Артефакт | Workspace | Home-состояние |
|---|---|---|
| Таблицы маршрутов шлюза / зафиксированные манифесты инструментов | Да—ревью JSON | Нет—избегать split-brain |
| Сессионные cookie, blob сопряжения устройств | Нет—никогда не коммитить | Да—жёсткий chmod |
| Структурированные логи | Шаблоны опционально | Да—объёмно, с ротацией |
| Переопределения разработчика | Никогда на общих CI-хостах | Только личный ноутбук |
Вопрос «можно ли удалить ~/.openclaw для сброса?» — ответ из раздела runbook, не импровизация: удаление лечит отравленный кеш и ломает законное сопряжение без шагов экспорта.
Мультиарендаторская матрица на одном Mac mini
VmMac силён в выделенном железе, но финансы иногда требуют шэринга. Ранжируйте честно:
| Схема | Сила изоляции | Операционная нагрузка |
|---|---|---|
| Разные физические хосты на арендатора | Максимум | Минимум драмы |
| Разные пользователи macOS на одном хосте | Высокая | Средняя—квоты и дисциплина VNC |
| Тот же пользователь, другие каталоги | Низкая—магнит ошибок | Высокая—постоянные аудиты |
Если навязана третья строка: хотя бы непересекающиеся метки LaunchAgent, разные localhost-порты и ночная автоматизация с diff активных plist против git. Лучше держаться изоляции staging, пока не одобрят второй mini.
launchd WorkingDirectory, EnvironmentVariables и приоритет путей
WorkingDirectory не декоративен — он задаёт разрешение относительных путей в openclaw.json и загрузку дерева node_modules. Явные EnvironmentVariables для всего, что вы бы экспортировали в ~/.zshrc на ноутбуке. После правок проверяйте launchctl print gui/$UID/com.example.openclaw (подставьте домен).
cd перед OpenClaw, plist неполон.
В Гонконге, Японии, Корее, Сингапуре и США держите шаблоны plist идентичными; региональные endpoint вынесите в небольшие env-файлы с абсолютными путями, чтобы диффы в аудите оставались читаемыми.
Runbook инцидента: отравление состояния vs настоящая регрессия модели
- Снять
pwdработающего шлюза из выводаlaunchctl print. - Хешировать
openclaw.jsonв этом cwd и сравнить с git-тегом деплоя. - Просмотреть размер и mtime поддерева состояния; искать раздувающиеся SQLite или JSONL.
- Остановить новый трафик, дренировать очереди, снять снимок логов.
- Смести отравленное состояние в сторону — не удаляя — для постмортема.
- Повторить упавший запрос на чистом канареечном VmMac.
- Задокументировать, был ли фикс конфигом, диском или моделью, перед закрытием тикета.
Много ложных «просадок качества модели» в 2026 — это на самом деле устаревшие allowlist инструментов или просроченные OAuth refresh-токены в одном дереве состояния — LLM в порядке; проблема в файловой системе.
FAQ: workspace и состояние OpenClaw на арендованном Mac mini
Должен ли openclaw.json жить в git на общем арендованном Mac mini? Да для схемы и несекретных дефолтов, но никогда как единственное место для секретов — сопоставляйте файлы репозитория с одной документированной плоскостью секретов и префиксами состояния по арендаторам, чтобы staging не читал прод-токены с диска.
Что класть в ~/.openclaw и что в checkout workspace? Долговечные локальные кеши машины, сопряжение устройств и чувствительный runtime-материал — под дерево home-состояния; конфигурацию с командным ревью — в workspace; launchd задаёт WorkingDirectory явно.
Как изолировать две команды на одном VmMac без смешивания состояния OpenClaw? Предпочитайте разных пользователей macOS или разные хосты; при необходимости шэринга — непересекающиеся префиксы в стиле OPENCLAW_HOME, непересекающиеся метки LaunchAgent и разные localhost-порты по нашему runbook изоляции staging.
Меняет ли launchd WorkingDirectory, какой openclaw.json читается? Относительные пути разрешаются из WorkingDirectory и окружения пользователя; двусмысленный cwd — главная причина, почему staging читает копии прод workspace — закрепите абсолютные пути в plist после валидации.
Как выровнять хосты в Гонконге, Японии, Корее, Сингапуре и США? Храните одну и ту же git-ревизию openclaw.json, разрешая только намеренные региональные переопределения env; ежемесячно diff plist; отклоняйте ад-хок правки на хостах без тикетов.
Почему второй VmMac Mac mini дешевле, чем операции над общим состоянием
Разнесение арендаторов на другой mini превращает chmod-головоломки в сетевые границы, понятные security. Маржинальная аренда попадает в COGS; маржинальная инженерная неделя форензик-слияний — часто нет.
Если руководство сомневается, покажите число инцидентов за квартал, где корень был «неправильный cwd» или «общий кеш». Если не ноль — физика согласна: нужен был отдельный хост.
Клонируйте состояние, не тайну
Арендуйте второй VmMac Mac mini для staging workspace OpenClaw, чтобы prod ~/.openclaw не видел экспериментальные кеши.