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

This commit is contained in:
Alexey Martemyanov committed 2026-10-03 21:20:06 +06:00
1 parent 29bd0dbd18
commit 4f8115c3b4
1 file changed
+18 -34
+18 -34
View File
@@ -2,7 +2,7 @@
title: Virfield
namespace: personal
updated: '2026-10-03'
status: candidate-not-release-ready-monterey-plan-recorded
status: candidate-image-ready-clone-pending
tags:
- virfield
- macos
@@ -10,43 +10,27 @@ tags:
- go
- infrastructure
---
# Virfield — актуальный статус 2026-10-03
# Virfield — статус 2026-10-03
**Следующее действие:** остановить разработку в этой сессии после commit/push. Не объявлять релиз готовым.
**Следующее действие:** проверить один временный клон Monterey/Xcode после подтверждения удаления этого клона. Исходный образ сохраняется.
## Текущий ответ по релизу
## Состояние
- Репозиторий: рабочая ветка `codex/versioned-images` должна быть запушена после финального cleanup/commit этой сессии.
- Release-ready: нет. `make check` прошел, live runtime обновлялся, но Monterey + Xcode acceptance не закрыта.
- Monterey 12.6 + Xcode 13.4.1: не верифицировано как `image_ready`.
- Default Xcode install: код мигрирован на VirtioFS для macOS 13+ guests, но Monterey 12.x не поддерживает Apple VZ shared directories.
- Release-ready: нет. Образ Monterey 12.6 + Xcode 13.4.1 достиг `image_ready`; приёмка клона, workload, выгрузки артефакта и очистки ещё не выполнена.
- Образ: `macos-12.6-xcode-13.4.1`, job `job-057b0898f3746df8b12fb8b5c4c34c1c` завершился успешно 2026-10-03. Проверены Xcode 13.4.1 / 13F100, подпись Apple, первая инициализация, компиляция Swift, SIP, SSH и повторная загрузка.
- Monterey использует явный `legacy_uuid`: APFS зашифрован при выключенном FileVault, один активный worker, публикация в registry запрещена. Исходная VM остановлена.
- Ветка `codex/versioned-images`: изменения ещё в рабочем дереве, commit/push не сделаны.
## Факты по Monterey
## Передача Xcode
- Lume VM стартует.
- SSH в Monterey guest работает.
- `lume run --shared-dir` на Monterey 12.6 не дает `/Volumes/My Shared Files`.
- В guest нет `/sbin/mount_virtiofs` и `/usr/sbin/mount_virtiofs`.
- Live retry для `job-057b0898f3746df8b12fb8b5c4c34c1c` теперь завершается `virtiofs_unsupported`, VM остается stopped, host-side `cp`/`ditto`/`tar`/`scp`/`rsync` процессов нет.
- macOS 13+ использует основной путь VirtioFS с проверенным Xcode.app.
- Monterey 12.x не монтирует VirtioFS. Его путь передаёт проверенный XIP по закреплённому SSH и сверяет SHA-1 в госте.
- На существующей 80 GB VM `xip` отказался распаковываться при ~42 GiB свободного места. Фолбэк передал проверенный Xcode.app по SSH без macOS tar metadata; гостевая проверка подписи прошла.
- XIP занимает ~10 GB. Кэшированный Xcode.app занимает ~17 GB на хосте; несжатый поток файлов составил ~32 GiB. Готовая 80 GB VM занимает на хосте ~49 GiB.
- Новые macOS 11/12 VM с Xcode получают разреженный виртуальный диск 120 GB. Это верхний лимит, а не немедленное выделение 120 GB на хосте. Существующая VM не увеличивалась.
## Что уже сделано в кандидате
## Проверки и ограничения
- Legacy identity mode: `legacy_uuid`, один активный worker на UUID, registry publish для legacy запрещен.
- Xcode download/cache: Apple auth/browser path, XIP SHA/signature/cache validation, host `codesign --deep` убран из cached/downloaded hot path.
- Lume service: stable `virfield-lume -config`, patched Lume `0.5.3-virfield6` required.
- Developer provisioning: macOS 13+ uses native `lume run --shared-dir <verified Xcode cache parent>` and guest-side `ditto` from `/Volumes/My Shared Files`.
- Monterey guard: macOS < 13 fails fast with `virtiofs_unsupported` before VM mutation.
## Monterey plan
1. Add a separate Monterey transport path; do not weaken the macOS 13+ VirtioFS path.
2. First probe NFS live on the existing Monterey VM: host export, guest `mount_nfs`, small file roundtrip, cleanup.
3. If NFS passes, implement bounded host export lifecycle: create private export dir, mount in guest, copy Xcode with `ditto`, unmount, remove export.
4. If NFS fails, implement explicit SSH-copy fallback as a separate Monterey-only contract with progress, cancellation, logs, and cleanup.
5. Run full Monterey 12.6 + Xcode 13.4.1 image build to `image_ready`, then ordinary clone/workload/artifact/cleanup before claiming support.
## Verification now
- `make check` passed on 2026-10-03 after the VirtioFS guard and docs updates.
- Repo docs updated: `docs/IMAGE-PIPELINE.md`, `docs/VERIFICATION.md`.
- This note is intentionally current-only; historical details live in Git/docs, not here.
- `make check` прошёл после исправления проверки Swift для Xcode 13 и подготовки теста legacy-клона.
- Во время первой проверки после перезагрузки Lume/Apple Virtualization аварийно завершился при запуске VM; повтор только этапа проверки прошёл. Чистая сборка без ручного восстановления отдельно не подтверждена.
- Живая приёмка клона пока ожидает подтверждения удаления одного временного клона. История и команды проверки — в `docs/VERIFICATION.md`; контракт установки — в `docs/IMAGE-PIPELINE.md`.