[2026-10-23] eagle: personal/projects/virfield.md
This commit is contained in:
1 parent
0c0451c6c2
commit
bbb97604d0
1 file changed
+21
@@ -73,6 +73,27 @@ Cold boot двух node VM на htpc выявил дополнительные
|
||||
|
||||
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 для конкретных приложений остаётся за системным согласием пользователя.
|
||||
|
||||
## Цель: самостоятельный инстанс на поддерживаемом оборудовании
|
||||
|
||||
**Статус 2026-10-23: не реализовано и не принято.** Каждый разработчик устанавливает **свой** Virfield со своими config, state, token, образами и MCP. Общий командный сервер, общий operator token и RBAC между разработчиками не входят в эту цель. «Одна кнопка» означает единый установщик или мастер, который определяет возможности машины, выполняет доступные шаги и показывает только неизбежные системные подтверждения. Не обещать запуск на оборудовании, где macOS VM технически недоступна; показывать конкретное ограничение до установки.
|
||||
|
||||
### Проверенные пробелы
|
||||
|
||||
1. README сейчас требует вручную установить Go/Python/Tart/Packer, клонировать и собрать проект, выполнить init, редактировать config.json, копировать бинарники, запускать daemon и отдельно регистрировать MCP. init не получает готовый образ. Это не самостоятельная установка в несколько действий.
|
||||
2. Linux node VM требует вручную установить qcow2 bootstrap и OpenCore, настроить SSH, Podman/KVM/TUN, admin/sudo и профили. Автоматический путь от чистого поддерживаемого Linux-хоста до готового golden отсутствует.
|
||||
3. Клиенту без virfield CLI приходится вручную создавать SSH-ключ, pinned known_hosts и config. Локальная установка должна создавать и хранить их сама; приватный ключ остаётся на машине владельца.
|
||||
4. В продуктовой справке и docs использовалось собственное имя узла htpc (удалено из checkout 2026-10-23; выпуск ещё не собран). Runtime не проверял строку htpc, но node startup deadline 45 минут и desktop deadline 5 минут выбраны по замеру одного нашего cold boot. Кроме того, стандартные VM-рецепты и init предполагают гостевой admin с домашним каталогом /Users/admin. Это контракт конкретного профиля образа, а не путь аккаунта владельца на хосте; мастер должен выбирать совместимый профиль и проверять его, а бюджеты и требования к гостю не выводить из нашего оборудования.
|
||||
5. Xcode UI readiness gate и исправления холодного node startup есть в checkout, но ещё не приняты на установленном release-кандидате на свежих поддерживаемых конфигурациях. Работающий бинарник сообщает vcs.revision=2c64888 и vcs.modified=true; перед распространением нужен воспроизводимый clean release.
|
||||
6. Web UI, HTTP API и MCP имеют разные наборы операций. Для одного собственного инстанса допустим owner token; ранее предложенный общий командный RBAC не является блокером этой цели. Требуется полный поддерживаемый локальный цикл через web UI и MCP, включая ясную диагностику и безопасные повторы.
|
||||
|
||||
### Порядок исправления и критерии
|
||||
|
||||
1. **Матрица поддержки и preflight.** Явно описать поддерживаемые хосты и провайдеры; определить OS/архитектуру, гипервизор, виртуализацию, свободные CPU/RAM/диск, доступ к storage, Xcode/Apple prerequisites и права. Возвращать причину и действие для каждого отказа. Все пути, имена узлов, порты и бюджеты брать из выбора пользователя или обнаруженного окружения, не из нашего deployment.
|
||||
2. **Пакет и мастер установки.** Подписанный проверяемый пакет без обязательной сборки исходников. Мастер создаёт отдельные private config/state/token, предлагает storage, получает/проверяет pinned base, регистрирует собственный сервис и MCP в выбранном клиенте; шаги идемпотентны и дают rollback. Для node backend автоматизировать поддерживаемый bootstrap или до выбора явно сообщать, что он пока не поддерживает one-click.
|
||||
3. **Параметризовать готовность.** Вместо одного фиксированного 45/5-минутного бюджета использовать профиль провайдера и конфигурируемые пределы с безопасными default, общей deadline и фазовой диагностикой. Все Xcode-образы и рабочие клоны подтверждать native XCUITest с >=1 выполненным тестом до ready; проверить на быстрых и медленных хостах.
|
||||
4. **Одинаковый продуктовый цикл в UI и MCP.** Создание образа, Apple sign-in при необходимости, acquire, локальный SSH identity/config, выполнение workload через SSH, экспорт, renew/recovery и release доступны без ручного JSON, known_hosts и работы с каталогом daemon. Операции опираются на один API и одинаковые durable job/idempotency semantics.
|
||||
5. **Приёмка независимого пользователя.** На чистых поддерживаемых Apple Silicon Mac и Linux/KVM-хосте, с пустыми config/state и без наших путей/образов, пройти мастер → подключить UI/MCP → создать golden → получить VM → выполнить build и XCUITest → экспортировать результат → release. Повторить после restart, медленного cold boot, потери сети, нехватки диска и истечения Apple session. Выпускать только clean signed package с hashes и протоколом этих прогонов.
|
||||
|
||||
## Ограничения и дальнейший план
|
||||
|
||||
Следующие задачи не входят в принятую установленную VM/MCP/Broker-приёмку и не объявляются реализованными:
|
||||
|
||||
Reference in new issue
Block a user