[2026-10-23] eagle: personal/projects/virfield.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-23 13:07:40 +06:00
1 parent 92a7212915
commit 0c0451c6c2
1 file changed
+13 -2
+13 -2
View File
@@ -67,11 +67,11 @@ macOS make check/build/Staticcheck прошли; настоящий read-only vo
## Текущая работа 2026-10-23: UI readiness
Локальный `main` содержит коммиты `fd980dd`, `c7d75e7`, `1126997`, `6203177`; рабочее дерево чистое. Полный `go test ./...` прошёл. Для Xcode-образов и новых disposable workers добавлены настройка unattended Automation Mode и настоящий 1/1 XCUITest gate; компактный MCP status и путь pinned SSH без CLI документированы. На действующем Monterey lease native UI fixture прошёл 1/1, а `automationmodetool` сообщил `DOES NOT REQUIRE user authentication`. Это проверка текущей VM, не доказательство работы ещё не установленного нового daemon.
Локальный `main` содержит коммиты `fd980dd`, `c7d75e7`, `1126997`, `6203177`, `5f605d8`, `7b5c124`; рабочее дерево чистое. Полный `make check` с race-тестами прошёл. Кэш Xcode на Mac очищен с 41 до 19 ГБ: удалены две распакованные копии после сверки исходных XIP, четыре XIP сохранены. Новый код повторяет очистку после использования архива и при старте daemon; установленная production версия пока не обновлена. Для Xcode-образов и новых disposable workers добавлены настройка unattended Automation Mode и настоящий 1/1 XCUITest gate; компактный MCP status и путь pinned SSH без CLI документированы. На действующем Monterey lease native UI fixture прошёл 1/1, а `automationmodetool` сообщил `DOES NOT REQUIRE user authentication`. Это проверка текущей VM, не доказательство работы ещё не установленного нового daemon.
Cold boot двух node VM на htpc выявил дополнительные ошибки старой установленной версии. Sonoma `lease-1e935304d66b68d41c7850a89f79d0ae`: SSH появился примерно через 17 минут, Finder стабилизировался позже двухминутного desktop timeout; job `needs_attention/lease_ssh_failed`. Sequoia `lease-1140ca109abe50cf3c095ae5c24a496b`: раннее чтение модели ошибочно дало `guest_identity_failed`; последующий pinned SSH подтвердил `iMacPro1,1`, macOS 15.8.1/24H32. Исправления увеличивают бюджет только node-lease до 45 минут, ожидание его desktop до пяти минут и повторяют временно неудавшееся read-only чтение модели. На обеих VM прочитанная политика требует аутентификации для Automation Mode. Sequoia lease удалён через journal API после подтверждения владельца: cleanup job `job-e055b9c977d2d35c6d6d7239b82429e9` succeeded, lease `released`, контейнер отсутствует. Sonoma lease сохранён до отдельного подтверждения; повторный прогон нового кода ещё не выполнен.
Production пока v2.1.1: локальные Tart leases заняты, один до 2026-10-24. Установленный daemon подписан Team ID `E3R68ED529`. Доступный личный сертификат `Apple Development: mallexxx@gmail.com (D46EWG5VWN)` после сборки дал тот же Team ID и designated requirement, что у установленного binary; первоначальный вывод об отсутствии identity был ошибочным. Кандидат собран и подписан, но не установлен: online backup старый daemon отклонил с `backup_failed` (требует idle manager и resolved jobs), а два действующих Tart leases заняты, один до 2026-10-24. Для production upgrade нужно дождаться завершения leases, сделать owner-only backup, затем контролируемый restart, проверка фактического Full Disk Access и fresh lease acceptance на Monterey, Sonoma, Sequoia. Screen Recording/Downloads TCC для конкретных приложений остаётся за системным согласием пользователя.
Production пока v2.1.1: локальные Tart leases заняты, один до 2026-10-24. Установленный daemon подписан Team ID `E3R68ED529`. Доступный личный сертификат `Apple Development: mallexxx@gmail.com (D46EWG5VWN)` после сборки дал тот же Team ID и designated requirement, что у установленного binary; первоначальный вывод об отсутствии identity был ошибочным. Кандидат собран и подписан, но не установлен: online backup старый daemon отклонил с `backup_failed` (требует idle manager и resolved jobs), а два действующих Tart leases заняты, один до 2026-10-24. Для production upgrade нужно дождаться завершения leases, затем выполнить контролируемый restart, проверить фактический Full Disk Access и fresh lease acceptance на Monterey, Sonoma, Sequoia. Обязательный backup перед обновлением из инструкции удалён; пустые каталоги backup удалены 2026-10-23. Screen Recording/Downloads TCC для конкретных приложений остаётся за системным согласием пользователя.
## Ограничения и дальнейший план
@@ -83,7 +83,18 @@ Production пока v2.1.1: локальные Tart leases заняты, оди
- Реализовать signed node-agent, WoL relay/power intents, grants/connectors и physical-host/browser desktop при отдельном приоритете.
- Развивать /api/v3 capability selection, Target/EnvironmentProfile/ConnectionGrant, short-lived access, VS Code extension и linked Console/Broker flows.
- Расширить crash/host-loss/partition/full-disk matrix, metrics/alerts, signed promotion/revocation.
- [x] Изучить MDM для VM Virfield: способ подключения, требования, польза и решение (итог ниже, 2026-10-23).
Broker reviewer исправление уже входит в запушенный Broker main `13c29ac`. Завершённые локальные и remote ветки Broker удалены после содержательной сверки, reviewer worktree сохранён detached. Архив исходного patch: [[personal/projects/archive/virfield-release-cleanup-2026-10-16/docs/acceptance/broker-reviewer-readonly]].
Детальные прежние планы сохранены в [[personal/projects/archive/virfield-release-cleanup-2026-10-16/docs/VIRFIELD-3-PLAN]] и архиве superpowers. Их старые pending-статусы не заменяют результаты выше. Автоматизация остаётся на паузе по указанию пользователя.
## MDM для Virfield: исследование и решение (2026-10-23)
**Решение: не включать MDM в текущий путь создания disposable VM.** Virfield не содержит MDM-сервера, enrollment profile или операции регистрации VM. Сейчас он применяет SIP/Automation Mode/TCC через guest scripts и проверяет результат на образе; native XCUITest даёт прямое доказательство готовности runner. MDM не исправляет сам по себе прежний пропуск Automation Mode.
Подключение потребовало бы отдельного MDM-провайдера, HTTPS endpoint, сертификата APNs, identity certificate для каждого гостя, enrollment profile и регистрации каждой VM. Для Apple Business Manager/ADE нужны ещё организационные связи и назначение устройств; пригодность ADE именно для наших виртуальных Mac не подтверждена и должна проверяться на отдельном disposable образе. Клонирование уже зарегистрированного golden недопустимо как проектное допущение: enrollment и identity нужно создавать для каждого worker отдельно, а при release удалять запись и сертификаты на сервере.
Польза возможна для долговечных физических Mac: централизованные настройки и аудит, управляемые приложения, отдельные PPPC разрешения (например Full Disk Access и PostEvent). Для краткоживущих VM цена — внешний сервис, сертификаты, сеть/APNs, регистрация и очистка каждого worker. Главное ограничение для UI-тестов: Apple не разрешает MDM-профилем заранее дать ScreenCapture; только запретить. На macOS 27 старый PPPC grant для Accessibility убран; новый declarative AppSettings предлагает пользователю запрос согласия, но не выдаёт доступ без него. Поэтому MDM не заменяет наши UI-readiness проверки, настройку Automation Mode и человеческое согласие там, где его требует macOS.
Источники Apple: [MDM enrollment](https://developer.apple.com/documentation/devicemanagement/deploying-device-management-enrollment-profiles), [инфраструктура/APNs](https://support.apple.com/en-gb/guide/deployment/depceaf9c713/web), [PPPC и ScreenCapture](https://developer.apple.com/documentation/devicemanagement/privacypreferencespolicycontrol/services-data.dictionary), [macOS 27 AppSettings](https://developer.apple.com/documentation/devicemanagement/appsettings). Проверка текущего кода: `internal/qualify/automation.go`, `internal/guestscripts/security.sh`, `internal/guestscripts/provision27.sh`, `internal/config/config.go`.