9.7 KiB
Executable File
title, namespace, updated, status, tags
| title | namespace | updated | status | tags | |||||
|---|---|---|---|---|---|---|---|---|---|
| Virfield | personal | 2026-10-07 | virfield-3-stage-1-in-progress |
|
Virfield 3.0 — handoff checkpoint — 2026-10-07 15:35 Bishkek
Текущий статус: Stage 1 (Tart/Orchard migration) в работе; продолжать в /Users/admin/Developer/virfield-v3, branch codex/virfield-v3-stage1. Это актуальная запись состояния; ниже сохранена история v2 от 2026-10-03.
Что проверено сейчас
- Worktree: HEAD
8830ad9(Add Tart and Orchard runtime providers), родительский план6013310. Восемь файлов modified и не закоммичены:cmd/virfieldd/main.go,internal/config/config.go,internal/httpapi/server.go,internal/tart/client.go,internal/tart/client_test.go,internal/web/app.js,internal/web/index.html,internal/web/style.css. Не откатывать и не считать эти изменения заведомо своими без проверки. http://127.0.0.1:7780отвечает HTTP 200 и отдаёт v3 UI (Fleet / Images / Activity, Hosts & storage). Факт подтверждён запросом к live-сервису.- Live
virfieldd: launchd labelsystem/ai.virfield.virfieldd, PID 54497 на момент проверки, пользовательadmin; plist/Library/LaunchDaemons/ai.virfield.virfieldd.plistзапускает~/.virfield-v2/bin/virfieldd -config ~/.virfield-v2/config.json. Имяvirfield-v2— legacy путь развертывания, не доказательство версии исходников. - Точная ревизия уже работающего процесса не установлена. Не заявлять, что бинарник на 7780 собран из HEAD
8830ad9. - Текущий dirty source успешно компилируется командой
go build -trimpath -o /private/tmp/virfieldd-v3-check ./cmd/virfieldd. Полныйmake checkпосле этих восьми изменений ещё не запускался. Предыдущий passingmake checkотносится к исходной реализации до текущих правок.
Следующее действие
-
Разобрать каждое из восьми незакоммиченных изменений и сохранить нужное; проверить владельца/намерение, не затирать.
-
Прогнать
make checkв этом worktree и устранить регрессии. -
Собрать
make build; сохранить копию текущего deployment binary для отката, заменить~/.virfield-v2/bin/virfielddсобранным бинарником. -
Перезапуск текущего launchd job пока не проверен. Для контролируемой проверки после сборки:
pgrep -x virfieldd # Убедиться, что найден ровно один PID текущего сервиса. kill -TERM PID launchctl print system/ai.virfield.virfieldd | rg 'state =|pid =|runs =' curl -fsS http://127.0.0.1:7780/ | rg 'v3|Fleet|Hosts & storage'Причина ожидания автоматического старта: plist имеет
KeepAlive=true, процесс работает отadmin, а deployment directory принадлежитadmin. Это ожидаемый способ безsudo, но пока не подтверждён живой проверкой. Если launchd не поднял новый PID, остановиться и диагностировать; не запускать второй daemon.Сборка/установка (после успешных проверок; перед заменой сохранить бинарник для rollback):
cd /Users/admin/Developer/virfield-v3 make check make build cp -p /Users/admin/.virfield-v2/bin/virfieldd /private/tmp/virfieldd-before-v3 install -m 755 bin/virfieldd /Users/admin/.virfield-v2/bin/virfielddДо live-проверки не объявлять обновление завершённым. Общий install/runbook находится в
docs/OPERATIONS.md; он описывает регистрацию system LaunchDaemon сsudo, но не dev-перезапуск существующего job безsudo. -
После подтверждения записать точный commit/build и результат live-проверки здесь. До этого не создавать второй listener и не менять порт.
План и границы
docs/VIRFIELD-3-PLAN.md— целевая архитектура и план, не журнал выполненных этапов.docs/VERIFICATION.md— acceptance evidence, не доказывает приёмку текущих Tart/Orchard dirty changes.- В committed v3 уже есть провайдеры Tart и Orchard, host/storage/capacity UI и опциональный WoL по реализации базового коммита. Текущие незакоммиченные правки расширяют/исправляют это; перед claims сверить код и тесты.
- Источник кода — worktree
virfield-v3; live deployment —~/.virfield-v2; это разные копии. Обновление source само по себе не обновляет процесс на 7780.
Virfield — статус 2026-10-03
Следующее действие: проверить загрузку, работу и удаление временного клона из нового чистого образа Monterey/Xcode.
Состояние
- Monterey 12.6 + Xcode 13.4.1: образ
image_ready, временный legacy-клон прошёл загрузку, компиляцию Swift, SSH, выгрузку артефакта и очистку. ТестTestLiveLeaseSSHпрошёл за 86,99 с 2026-10-03. - Исходный образ
macos-12.6-xcode-13.4.1остановлен и сохранён. Временный клон удалён; активных заданий и занятых слотов нет. - Release-ready: нет. Чистая сборка прошла; клон нового образа и полный путь Balda/Broker ещё не приняты.
- Ветка
codex/versioned-images: локальный коммит19e01ac; push не сделан.
Установка Xcode и размер диска
- macOS 13+ использует VirtioFS. Monterey не монтирует VirtioFS; его путь передаёт проверенный XIP по закреплённому SSH и сверяет SHA-1 в госте.
- На существующей 80 GB VM
xipотказался распаковываться при ~42 GiB свободного места. Фолбэк передал проверенный Xcode.app по SSH без macOS tar metadata; гостевая подпись Apple и точная версия прошли проверку. - XIP занимает ~10 GB. Кэшированный Xcode.app занимает ~17 GB на хосте; несжатый поток файлов составил ~32 GiB. Готовая 80 GB VM занимает на хосте ~49 GiB.
- Новые macOS 11/12 VM с Xcode получают разреженный виртуальный диск 120 GB. Чистая сборка подтвердила, что XIP распаковывается на нём без фолбэка; готовый новый диск занимает 34,8 GiB на хосте. Существующая 80 GB VM не увеличивалась.
Legacy-клон и проверки
legacy_uuidдопускает APFS encryption at rest при выключенном FileVault и только одного активного worker. Registry publish для этого образа запрещён.- Первый живой клон не загрузился: Lume поменял
machineIdentifierи MAC-адрес. Он был удалён. Virfield теперь восстанавливает оба значения из остановленного образа до запуска копии и проверяет наличие скопированного NVRAM. Обычные клоны сохраняют новую идентичность. - Повторный клон подтвердил Xcode 13.4.1 / 13F100, Swift, SIP, Finder, политику диска, закреплённый SSH, отказ ключу исходного образа, туннель и SCP-артефакт. Второму одновременному legacy worker отказано. После теста исходный образ остался
image_ready. - Чистая сборка
macos-12.6-xcode-13.4.1-clean-20261003завершилась без ручного восстановления: задачаjob-ca072dfb3bfee011bd7ee9fcd28d8f46succeeded, образimage_readyи остановлен. Первый запуск черезimage-createбыл отклонён из-за APFS: эта команда не задаётlegacy_uuid; неудачная VM удалена с разрешения пользователя. Повторная сборка использовала профиль вconfig.jsonс legacy UUID. make checkиmake buildпрошли; установленный менеджер обновлён. Подробные результаты —docs/VERIFICATION.md; контракт установки —docs/IMAGE-PIPELINE.md.