Files
obsidian-vault/personal/projects/virfield.md
T

9.0 KiB
Executable File
Raw Blame History

title, namespace, updated, status, tags
title namespace updated status tags
Virfield personal 2026-10-14 release-hardening-in-progress
virfield
macos
vm
go
infrastructure

Virfield — текущее состояние

Актуально на 2026-10-14. Поддерживаемый репозиторий: /Users/admin/Developer/virfield, main; Ветка codex/retire-lume-release-hardening опубликована по разрешению пользователя; 09ad696 установлен и прошёл live Tart clone suite. Новый source candidate aee89c1 добавляет node resource/cache quotas и перенос source transfer в resolve; его установка и расширенная приёмка идут. GitHub CI пока отложен пользователем; проверки выполняются локально. Старый worktree virfield-v3 и ветка codex/virfield-v3-stage1 не являются инструкцией для продолжения работы.

Runtime и deployment

  • Установленный runtime: Tart на Apple Silicon + SSH physical nodes mbp-2014 и htpc. На HTPC macOS lab VM работают через rootless Podman/QEMU/OpenCore.
  • Deployment ~/.virfield-v2, config ~/.virfield-v2/config.json, state ~/.virfield-tart, daemon ~/.virfield-v2/bin/virfieldd, API 127.0.0.1:7780, launchd ai.virfield.virfieldd.
  • Virfield переключён с Lume на Tart 2026-10-08. В текущем hardening-кандидате удалены Lume backend/factory/wrapper/patch/build/install paths. Неявный legacy runtime и image_tools отклоняются. Старые поля профилей читаются только для совместимости журнала; новый Tart builder отклоняет IPSW-рецепты до резервирования build.
  • Старый ai.virfield.lume отключён (launchctl disable + bootout) 2026-10-14 после проверки пустого inventory. Служба отсутствует в загруженных system services, порт 7777 закрыт. Plist/бинарники сохранены для отката; Homebrew Lume отсутствует.
  • Не создавать второй manager/listener, не менять порт и не редактировать SQLite/runtime disks в обход журнала.

Реализованные исправления кандидата

  • Один exclusive physical-host lease независимо от VM slots; VM не занимает host slot; node-side atomic host lock и post-wake проверка boot volume.
  • Общий sleep hold с reference counting и сохранением чужого hold; при ошибке Podman cleanup overlay и hold сохраняются.
  • Node image deletion сохраняет provider/guest identity, защищает backing goldens и проверяет отсутствие контейнера.
  • Tart image_create выбирает approved digest-pinned bases из runtime.tart.bases и настроенных templates; default location соответствует конфигу. Base/developer/automation/macOS 27 recipes; generic automation проверяется после reboot.
  • Shared resumable Xcode archive store, checksum/quarantine, exact-job Apple sign-in recovery в resolve до VM build.
  • Registry resolver принимает Tart flat/ASIF format, image_pull сохраняет pin/provenance. Publish строит новый portable guest с публичным admin/admin, не ставит private golden credentials, sanitizes и подтверждает временный cleanup. Private managed golden не загружается.
  • Init/installer используют три бинарника и только сервис Virfield; отдельный private state-dir и optional native browser. CLI config-check проверил действующий config.
  • Orchard проходит обязательный per-lease SSH preparer; source-only remote template отклоняется до VM creation. Полноценная remote factory/access и live pool acceptance отсутствуют.
  • Pending image build/export резервируют CPU/RAM/disk до dispatch и учитываются вместе с worker leases; для нового macOS 27 base нужен known/declared disk bound. Host IDs не могут совпадать между primary и node inventories.
  • Backup включает node management keys и cached probes, отклоняет symlinks в identity tree.
  • Go 1.26.9, pinned Staticcheck без замечаний, govulncheck: 0 reachable/imported-package vulnerabilities. Module-only notice openpgp относится к неиспользуемому пакету и не имеет fixed version.
  • Удалён источник CI Pillow failure: retired Python image factory/tests и Lume build step. Это исправление workflow, а не результат нового GitHub CI.

Приёмка и релизный статус

Кандидат ещё не принят для релиза. Установка 09ad696 сохранила signing identity/Team ID E3R68ED529 и все пять image-ready записей. Шесть последовательных Tart clones (по два Ventura/Monterey/macOS 27) прошли SSH/host-key изоляцию, OS/build/SIP, desktop, artifact export и release. External SSD не допускает два диска полного размера с сохранением резерва; concurrent acceptance будет выполняться на отдельном временном внутреннем контейнере. Exact commit 09ad696cacea2ba9cd2245fa76cc599696470d01 прошёл полный make check (docs, 7 Python tests, gofmt/vet/full race), Staticcheck, module verify, Gitleaks (196 commits), govulncheck (0 в используемом коде), действующий config-check и Packer syntax checks. Clean archive/extraction/init/checksums/native signature smoke прошёл: /private/tmp/virfield-release-check-09ad696/virfield-v0.0.0-localcheck-darwin-arm64.tar.gz, SHA-256 f12f2be162cbcfa7688c814a8fcdbb13d17ff028053f878aa27ac1e87e2bbe3c. Это локальная тестовая упаковка, не опубликованный release. Live public Tart manifest resolution также прошёл. Factory/GHCR roundtrip в работе: отдельный temporary Tart container и push source настроены, разрешён новый private mallexxx/virfield-hardening-acceptance. Первый cold Packer build завершился EOF; после проверки отсутствия процессов/VM его собственная запись удалена через journaled recovery. Новый candidate prefetches source в retryable resolve и отключает implicit pruning; roundtrip пока не принят. Текущие исходники, установленный daemon и published archive нельзя считать одним артефактом.

Ранее принятые срезы сохраняют свои даты:

  • Ventura 13.7.4/Xcode 15.2 и Monterey 12.7.6/Xcode 13.4.1: golden qualification и две аренды, 23/23 на каждый golden.
  • macos27 27.0/26A428/Xcode 27.0/uitest-27-v1: Broker v1 smoke passed 2026-10-08.
  • R1: четыре boot volumes MacBook по очереди; HTPC wake-by-lease (27 с).
  • R2: secured Sonoma 14.8.9 и Sequoia 15.8.1 на HTPC, 19/19.
  • R3: Screen Sharing VM lease tunnels, 11/11. Physical desktop и browser noVNC не реализованы.

Node VM quotas реализованы в aee89c1: CPU/RAM/full disk reservations, pending image builds, cache cap, qcow2/storage probes и post-wake clone/start/commit checks; новый live node suite ещё нужен. Будущий v3 capability API, grants, node-agent, Access/noVNC, VS Code extension и расширенный fleet/hardening остаются roadmap. Опубликованный v2.0.0 — исторический Lume-релиз 2026-09-30.

Каноническая документация

  • Operations — config/install/services/recovery.
  • Image pipeline — актуальные Tart/node contracts.
  • Verification — фактические gates/evidence.
  • 3.0 plan — реализованное и оставшееся.

Ссылки ведут на опубликованную hardening-ветку; main ещё не обновлён. Старая история: personal/projects/archive/virfield-checkpoints-through-2026-10-08.