fix(core): keep launchd service logs outside protected Downloads

This commit is contained in:
DCCONSTRUCTIONS
2026-09-25 16:40:45 +03:00
parent 2e5d52521f
commit a7c64e009d
8 changed files with 230 additions and 2 deletions
@@ -0,0 +1,38 @@
# Core и Worker · восстановление запуска 22 сентября
После перезапуска Mac штатные LaunchAgents Core и двух старых Worker-туннелей
завершались до запуска приложения с EX_CONFIG/78. Журнал macOS показал
`xpcproxy deny file-read-data` для startup-журналов внутри Downloads и затем
`posix_spawn Operation not permitted`. Фоновые элементы при этом были enabled/allowed.
Это отдельный сбой запуска операторского контура, не ошибка навигации Isaac.
Исправление вынесло только launchd stdout/stderr в
`~/Library/Logs/NODE.DC/MissionCore/`. Исходные журналы и evidence оставлены на месте.
Путь checkout, данные, env, SSH arguments/ports и полномочия не менялись.
Разрешения macOS не расширялись. Tailscale включил владелец; после этого SSH
к Worker 006 снова заработал. Применение выполнено с проверкой обеих идентичностей
plist, резервной копией и ожиданием полного bootout перед bootstrap.
Версионированная реализация: `src/k1link/launchd_logs.py`,
`local_service_launchd.py`, `observatory/worker_tunnel_launchd.py`,
`scripts/manage_mission_core_launch_agent.py`, `scripts/migrate_worker_tunnel_logs.py`.
Планирование не создаёт файлы; apply создаёт только новый приватный журнал,
отклоняет symlink и не обнуляет существующее содержимое. Старый Core startup-log
остаётся в `.runtime/mission-core/k1link-serve-launchd.log` как исторический файл.
| Служба | Предыдущий plist SHA-256 | Применённый plist SHA-256 |
|---|---|---|
| Core | `5d7a58122c016f8021fede27d1b21891ee20238fc38c281e5b33574ff8204e3f` | `182a87853bc363555edea6af5911c288ec2e83e45354ba2e22a4090d50064486` |
| Observatory tunnel | `db1df305e9ca135218e782b57e59a0ebb354c5267fdfe8a2379a1f4bc1a82880` | `1449901c566f576ca7a21accc60d12012c4f0a1c5d7f380c72e7b9210297b31b` |
| Gaussian tunnel | `88d5672b1a3620e68e0d622e00ebc22ee04aba5d774ed92dd84ed580d9ce3fad` | `3ac365e2cd173283d30c85dac38585440849e47ebbe9cd6b153778095adf6b80` |
Проверки: 16 focused launchd/tunnel tests прошли. Core health вернул
`ok=true`, `status=ok`, `service=mission-core-control-plane`, `operational=true`.
Единственный Python listener — 127.0.0.1:8000; на8765 слушателя нет.
Оба прежних SSH-туннеля имеют устойчивые launchd PID. Каталог AI-полигона
подтвердил `runtime.available=true`, активных заездов нет.
С задачей «Mission Core - PC - SINHRON» согласован один владелец запуска:
эта задача восстанавливает службы, соседняя не выполняет параллельных рестартов.
Готовность передана туда после health/worker проверки. Повторный reboot-drill
не проводился; подтверждён именно текущий штатный запуск после исправления.