262 lines
70 KiB
Markdown
Executable File
262 lines
70 KiB
Markdown
Executable File
---
|
||
title: Virfield
|
||
namespace: personal
|
||
updated: '2026-10-15'
|
||
status: release-hardening-live-acceptance
|
||
tags:
|
||
- virfield
|
||
- macos
|
||
- vm
|
||
- go
|
||
- infrastructure
|
||
---
|
||
# Virfield — текущее состояние
|
||
|
||
Актуально на 2026-10-15 05:57 UTC. Checkout `/Users/admin/Developer/virfield`, ветка `codex/retire-lume-release-hardening`; последний installed/pushed `edcb7563f8aa02a019ff4cb8e575d8daabc2bd2d`. Новые node/guest исправления ещё в source, полный локальный CI выполняется. Семь исходных goldens сохранены. Датированные Tart native matrix 8/8, controller-state live restore, signed controller-binary rollback/forward и factory/private GHCR roundtrip PASS ниже остаются действительными в своём scope. Текущий HTPC native/reboot gate пока НЕ пройден: оба Sonoma становятся ready, но послерестартовая проверка ещё падает; отдельный сохранённый warm reboot завис со старым framebuffer, отсутствием свежего SSH/boot UUID и длительно неизменным block I/O при активном CPU. Все собственные диагностические fixtures released, runner остановлен и завершён без повторного reboot. Найдена реальная ошибка закреплённого контейнера: stable HTPC TSC не передаётся гостю из-за проверки VMX scaling; source теперь использует actual clocksource=tsc и constant_tsc/nonstop_tsc на всех CPU, иначе fail-closed -invtsc. Связь с конкретным reboot stall ещё требует A/B live проверки. Отдельный прежний post-reboot failure предшествовал валидному GUI proof на76-й секунде; точный console/startup guard тогда не сохранялся, его нельзя уверенно называть 60sec startup timeout. Source также исправляет отдельный30sec console guard (red/green delayed-login regression) и QEMU Keyboard Setup Assistant, реально увиденный поверх UI. Эти изменения ещё не установлены. Existing HTPC goldens0444 не менялись — отдельный approval pending. Owning MCP transport closed и требует reconnect; native browser GUI ждёт unlock Mac. Async questions без ответа. Полный release acceptance не заявлен, CI только локально, main не обновлён. Датированные checkpoints ниже сохраняют provenance; worktree virfield-v3 не является maintained checkout.
|
||
|
||
## 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. Установленный `aee89c1` prefetches source в retryable resolve и отключает implicit pruning. Factory golden `image-5387f340da4ae093162383c18449c592` rebuilt/qualified, generic automation прошёл post-reboot проверку; два последовательных клона прошли SSH/cross-key/host-key isolation, exact OS/build/SIP, desktop и artifact export, затем оба released. Private GHCR publication требует idle pool и пока не запускалась; полный roundtrip не принят. Текущие исходники, установленный daemon и published archive нельзя считать одним артефактом.
|
||
|
||
Installed MCP прошёл HTTP и fresh stdio discovery/help/status с 18 tools, HTTP 401 без авторизации и ещё два полных fresh stdio acquire/replay → SSH/workload/artifact/desktop → release цикла на собственных factory-клонах. Оба дополнительных клона удалены. Live discovery gate исправлен: проверяет обязательные имена вместо устаревшего hardcoded count 17. Source MCP metadata теперь соответствует Tart/node budgets, approved bases и unlocked APFS/FileVault policy. Ventura `TestLiveLeaseSSH` прошёл exact Xcode 15.2/15C500b, Swift workload, SCP, cross-key/image-key rejection, desktop/tunnel revocation, cleanup и рестарт daemon с сохранением lease SSH identity. Signed installed archive `aee89c1`: SHA-256 `2313602b2c380e5e74640c47ee6ad50d9c10d750f856a0949833a4489803cf35`; хеши трёх подписанных бинарников сохранены в `~/.virfield-v2/upgrades/20261014-aee89c1/installed.json`. Полный локальный make check, Staticcheck, Gitleaks и регрессионные race-тесты нового inventory fix прошли. Clean archive exact source `8a297748eac5035fa0f0453aa51e11e9cb77d4e4`: `/private/tmp/virfield-release-candidate-20261014/virfield-v0.0.0-candidate-darwin-arm64.tar.gz`, SHA-256 `e2efde0214c7f4967528308b850575baac4a464e4e6c86425e871e11b8879488`; extraction, все binary checksums, native browser signature и действующий config-check проверены. Idle-only installer `/private/tmp/virfield-install-8a29774.py` подготовлен, не запускался; включает три бинарника и актуальный native Apple browser, rollback backup и повторную проверку свободного pool. Fresh MCP из этого clean archive прошёл discovery/help/status и проверку исправленных metadata.
|
||
|
||
macOS 27 lease `lease-6fde5d2f33c234f2e885583fb6a8fd34` штатно released по прямому разрешению пользователя «27ю вм можно отпускать» (2026-10-15 Asia/Bishkek). Cleanup `job-3168397fcd2d6cf4bc821abe7dead124` succeeded; VM `vf-6fde5d2f33c234f2e885583fb6a8fd34` подтверждённо отсутствует, все семь image-ready records/manifest identities сохранены. Прежняя iPad lease `lease-327bb8e4a3a06b7d5ac8e527c57d1907` также released её владельцем. Новая iPad Monterey lease `lease-9c1a94ff2b56b396fee7f1bbd2e0dcea` тоже released владельцем; пользователь подтвердил «Вторая вм отпущена, можешь продолжать». Idle pool 0/2 проверен до установки `9a740c0` и diagnostic `24512c7`; сохранены все семь goldens. Heartbeat `virfield-lease` ACTIVE каждые 15 минут; пользователь разрешил однократное продолжение установки/live/factory/private GHCR/локального CI/docs/push, после завершения она отключится. Чужие ресурсы сохраняем. Canceled-inventory fix теперь установлен; причина drift старых рабочих leases не установлена.
|
||
|
||
Offline restore `backup-5cdef526c555f6a53ed5f565c6e2edaf` в отдельный private каталог прошёл: 18 файлов, SQLite integrity, пять active image identities/credentials/verification, тот же node management key, новый operator token и config-check. Restored daemon не запускался; live restore/rollback остаются gates.
|
||
|
||
Ранее принятые срезы сохраняют свои даты:
|
||
|
||
- 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 probe корректно отказал в 100 GiB VM на home NVMe с 99 GiB free и reserve 20 GiB. HTPC deployment config уже переключён на private storage root HDD `/run/media/system/Data/virfield/runtime`. После Wake API свежий available probe подтверждает около 2.87 TB free, CPU budget 8, RAM 24 GiB и cache cap 512 GiB; старый asleep cached probe относился к NVMe. Новый live node suite ещё нужен; права существующих HTPC goldens не менялись без отдельного разрешения. Read-only namei подтвердил 0444 у двух старых secured qcow2/OpenCore файлов и traversable directories; migration к 0400 остаётся permission/release gate. Будущий v3 capability API, grants, node-agent, Access/noVNC, VS Code extension и расширенный fleet/hardening остаются roadmap. Опубликованный v2.0.0 — исторический Lume-релиз 2026-09-30.
|
||
|
||
## DDG macOS UI tests: проверенные проблемы и исправления (2026-10-14)
|
||
|
||
Историческая рабочая lease `lease-6fde5d2f33c234f2e885583fb6a8fd34` сессии Claude Code (`apple-browsers.git/fix-macos-ui-test-failures`) уже released по разрешению пользователя. Следующие результаты относятся к source-проверке `624bdfa7a88738809729e6889c679eaf0241eb78`; текущая installed acceptance более нового кандидата выполняется отдельно.
|
||
|
||
- **Locked keychain — исправлен и live-проверен в source.** DDG CI вызывает `create_keychain_ui_tests` в `macOS/fastlane/Fastfile`: DefaultKeychain/`default`, default + unlock, timeout 54000, без lock on sleep. DDG EncryptionKeyStore хранит encryption key через native generic-password SecItemAdd с WhenUnlocked. GUI и каждое SSH-подключение имеют отдельную Security audit session, поэтому разблокировка только одного контекста недостаточна. Кандидат готовит private per-image/lease default keychain через Aqua LaunchAgent и разблокирует его непосредственно перед каждой исходной SSH-командой через VM-only ForceCommand. Native запись/чтение/сравнение данных/удаление проверяются в обоих контекстах, после reboot — с новым boot UUID и nonce. Публичный/пустой пароль не используется.
|
||
- **Старый login keychain и ScopedBookmarkAgent — тоже закрыты.** Одной смены default keychain оказалось мало: OS service продолжает обращаться к login и оставляет модальный password dialog над браузером. Новый preparer сохраняет его items, меняет пароль на текущий private VM password, проверяет native доступ после lock/unlock новым паролем и сохраняет login в search list. Старый image password не остаётся в worker identity. Ручное убийство SecurityAgent не является частью нового readiness.
|
||
- **Дисплей — исправлен в source.** Старый установленный golden отдаёт 1024×768 pt / 2048×1536 px и список преимущественно 4:3 режимов; workaround владельца на нём — 1920×1440 1x. Новые Tart recipes/clones задают 1920×1080 logical и запрещают refit окна. Host-side hint сам по себе недостаточен: Aqua agent выбирает native режим через CGBeginDisplayConfiguration → CGConfigureDisplayWithDisplayMode → CGCompleteDisplayConfiguration(permanently). Временный CGDisplaySetDisplayMode откатывается при выходе процесса. Новые isolated factory и worker подтвердили actual GUI frame 1920×1080 после reboot.
|
||
- **SSH banner после boot — исправлен в source:** 45 секунд в daemon handshake и generated CLI config; timeout до выполнения команд классифицируется как retryable connection failure. Host pin/auth failures не повторяются. Regression test прошёл.
|
||
- **macOS 27 factory / ASIF — дополнительно найден и исправлен:** отсутствие recovery_partition выбирало Packer default deletion, оставляя открытый/заблокированный ASIF file и вызывая Virtualization.framework startup failure. Все macOS 27 recipes теперь явно keep Recovery. Полный новый source resolve → Packer build → qualify/reboot → stop прошёл.
|
||
- **vm_tunnel backend_unavailable / vm_drift — installation gate остаётся.** Прямой SSH рабочей lease отвечает, API считает её needs_attention. Canceled inventory regression исправлен в source и проверен тестами; это не доказывает единственную причину drift этой конкретной чужой lease. Повтор live tunnel acceptance нужен после безопасной установки.
|
||
- **VMShare отсутствует по текущему контракту:** checkout и DerivedData копируются pinned SSH/SCP/rsync с сохранением путей, нужных pre-actions. Общий host каталог автоматически не монтируется.
|
||
- **macOS UI Tests CI ожидает prebuilt products.** CI скачивает notarized Review app; для локального запуска нужны отдельно собранные macOS Browser Review и macOS tests-server. Сам VM manager не угадывает build scheme.
|
||
- **Xcode 27.1 products → guest Xcode 27.0:** два реальных запуска DownloadsUITests.testDownloadFinishesThenPopupIsShown прошли (1 test / 0 failures каждый), включая browser startup и Settings/General clicks. Второй запуск выполнен после source guest agent/reboot без ручного unlock. Это single-test smoke, а не приёмка всей UI-suite или всех minor version сочетаний.
|
||
|
||
Дополнительная приёмка: Ventura native GUI key I/O/reboot; macOS 27 native GUI и SSH key I/O/reboot; source macOS 27 factory; два source Prepare-клона нового factory golden с SSH identity isolation, login rekey и real worker reboot — PASS. SCP upload/download с SSH bridge — PASS. Все четыре isolated VM этой проверки подтверждённо удалены; две неудачные old-daemon factory записи удалены через exact-name journaled recovery после проверки отсутствия процессов/VM. Production goldens и чужие leases не менялись.
|
||
|
||
Private evidence: `/private/tmp/virfield-keychain-macos27-standalone-20261014`, factory image `image-3ded21740aa5ee237b85aac1fc8bbe52`, source recipe SHA-256 `38a47b46c05c906e3b104d7c6a9d83479047213deaf3002b93f2e2af6debd6ae`. Exported DDG xcresult archive `ddg-final-xcresult.zip`, SHA-256 `cfe8100c567effaed5271f8b32f819b372ea2a22f65c7794e2013a0351555b76`. Local make check (docs, Python, vet, full race), Staticcheck и Gitleaks прошли. GitHub CI не использовался как acceptance.
|
||
|
||
## Каноническая документация
|
||
|
||
- [Operations](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/OPERATIONS.md) — config/install/services/recovery.
|
||
- [Image pipeline](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/IMAGE-PIPELINE.md) — актуальные Tart/node contracts.
|
||
- [Verification](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/VERIFICATION.md) — фактические gates/evidence.
|
||
- [3.0 plan](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/VIRFIELD-3-PLAN.md) — реализованное и оставшееся.
|
||
|
||
Ссылки ведут на опубликованную hardening-ветку; `main` ещё не обновлён. Старая история: [[personal/projects/archive/virfield-checkpoints-through-2026-10-08]].
|
||
|
||
## iPad Markdown editors: Monterey build (2026-10-14)
|
||
|
||
Работа: [[personal/how-to/ipad-ios935-build-deploy]]. Цель — сборка открытых редакторов на `monterey-xcode-13.4.1`, armv7/iOS 9.3.5, fake sign и установка на подключённый iPad mini 1.
|
||
|
||
Наблюдения этой сессии:
|
||
|
||
- В 21:53–21:56 (Asia/Bishkek) admission сначала был занят 2/2: чужой `lease-6fde5d2f33c234f2e885583fb6a8fd34` и quarantined image `image-2ec1111415abc0c1e1e66a8e293b14db` / job `job-9f321bedd55313ed859c8eaa9844c3ce` (`image_command_failed`). Чужие записи и VM не менялись. Позднее статус показал освобождение image reservation и один свободный слот.
|
||
- Первый `vm_acquire` для Monterey с default storage вернул `resource_exhausted`: `No eligible clone storage has enough free disk for reserved VM growth and host safety reserve: samsung-tart`. При этом status показывал `capacity.available=1` и около 251 GB физически свободного места на Samsung; admission дополнительно учитывает полные reservations и safety reserve. Это ограничение ресурса, не доказанный дефект.
|
||
- Новый запрос с явным `destination_location=release-check` принят: lease `lease-9e65ca2f956c0f061eb3ac021d9f6b6f`, prepare job `job-ee57f1c483518f251f1bcd095621e6e9`, VM `vf-9e65ca2f956c0f061eb3ac021d9f6b6f`. Тело и idempotency key сохранены в `~/Developer/ipad-editors/virfield-acquire-release-check.json`.
|
||
- Job через ~2 секунды перешёл в `needs_attention`, phase `clone_dispatched`, error `clone_outcome_unknown`; lease — `quarantined`, `clone_confirmed=false`. Events 840–842 не сохраняют исходную ошибку backend, только общий текст `Runtime create did not return confirmed success. Automatic replay and deletion are blocked.`
|
||
- Установленный Operations runbook прямо предупреждает: `Local Tart cannot clone a local golden across TART_HOME containers; do not configure a cross-container fallback for such templates.` Исходники `internal/tart/client.go:414–422` отклоняют такой cross-container clone ДО вызова Tart. Здесь golden находится в `samsung-tart`, а выбран destination `release-check`; это соответствует запрещённому пути. Controller (`internal/control/controller.go:1050–1063`) превращает любое Clone error в неоднозначный outcome и quarantine. Следствие: детерминированный preflight rejection занимает reservation и требует operator recovery, а исходная причина не видна в job/events. Это найденная проблема интерфейса admission/диагностики, не исправленная в этой сессии.
|
||
- Повтор acquire, resolve/release и обход journal не выполнялись. Для восстановления нужен exact-name operator resolve после подтверждения отсутствия операции, с отдельным подтверждением пользователя: команда recovery может навсегда удалить собственную VM. Чужая работа не затрагивается.
|
||
|
||
В этом начальном checkpoint сборка ещё не запускалась и готового Monterey lease не было. Тогда TTL quarantined lease был до 2026-10-15 00:58:14 Asia/Bishkek; истечение TTL само по себе не доказывает cleanup. Эта аренда позднее штатно released после разрешённого recovery; новая Monterey прошла rebuild и уже используется для сборок (см. проверку ниже).
|
||
|
||
### Recovery approval review, 2026-10-14 22:18 Asia/Bishkek
|
||
|
||
После пользовательского «Да» выполнены повторные read-only status/job проверки: собственный lease по-прежнему quarantined, job needs_attention, runtime inventory не содержит собственной VM; никаких running/queued операций для неё нет. Попытка штатного CLI resolve с exact lease/VM и CONFIRM-NO-OPERATION-IN-FLIGHT остановлена automatic approval review ДО запуска команды. Reason: transcript does not contain a clear user approval for this exact irreversible lease deletion. Recovery не выполнен, slot reservation остаётся. Нужен однозначный ответ пользователя с разрешением удалить только `lease-9e65ca2f956c0f061eb3ac021d9f6b6f` / `vf-9e65ca2f956c0f061eb3ac021d9f6b6f`. Это approval blocker, не новый сбой Virfield backend.
|
||
|
||
### Recovery и новый образ, 2026-10-14 22:30 Asia/Bishkek
|
||
|
||
После явного ответа пользователя «Разрешаю recovery и удаление указанной VM» повторно проверен остановленный prepare job, затем выполнен штатный exact-target CLI `resolve`. Cleanup `job-1fe239f3064566b2a4b3f75ebce13813` завершился `succeeded` в 16:29:45 UTC. Предыдущий approval blocker снят; освобождена только собственная аренда Monterey. Работающая macOS 27 VM `vf-6fde5d2f33c234f2e885583fb6a8fd34` не менялась.
|
||
|
||
Чтобы избежать cross-container clone, запущен новый `image_create` непосредственно в `release-check`: template/VM `ipad-editors-monterey-xcode-1341-20261014`, image `image-f8c888fcafbd1a2df2a3b9a02821685d`, job `job-076452fa609adc3e6d4093a8e047a693`. Exact profile: macOS 12.7.6/21H1320, Xcode 13.4.1/13F100, SIP enabled, тот же approved digest-pinned Tart upstream. Образ пока строится; это не подтверждение готовности worker или успешной сборки приложения.
|
||
|
||
### Cross-container admission fix: source versus installed (2026-10-14)
|
||
|
||
Monterey rejection выше относится к установленному `aee89c1`. В опубликованном source `624bdfa` проверка `Controller.cloneLocationCandidates` возвращает `invalid_request` при explicit wrong container для local Tart golden ДО reservation/job; `TestLocalTartGoldenRejectsWrongStorageBeforeReservation` проверяет отсутствие записанной lease. Без явного destination несовместимые default/fallback locations также отфильтровываются. Это уже исправлено в source, установка ещё ждёт освобождения рабочей macOS 27 lease. Cross-container golden copy не реализован; новый image в нужном container — допустимый отдельный workflow. Чужая iPad-сессия и её journal не менялись этой проверкой.
|
||
|
||
### Исторический checkpoint: keychain/UI package (2026-10-14 16:49 UTC; superseded by 9a740c0)
|
||
|
||
Published source `624bdfa7a88738809729e6889c679eaf0241eb78`, branch `codex/retire-lume-release-hardening`; clean worktree и remote branch совпадают. Package этого checkpoint `/private/tmp/virfield-release-keychain-624bdfa-20261014/virfield-v0.0.0-keychain-candidate-darwin-arm64.tar.gz`, SHA-256 `be29654ef02f4ab6cd747b1815c2a72532717aaf2d423a2a4d8a93e4013634bb`. Проверены extraction, все manifest binary hashes, native browser signature и deployment config-check. Idle-only installer `/private/tmp/virfield-install-624bdfa.py` подготовлен, не запускался; прежний installer/archive `8a29774` — исторический срез. Установлен по-прежнему `aee89c1`. На 16:49 UTC рабочая macOS 27 VM всё ещё running, её lease needs_attention; также работает отдельный image build `job-076452fa609adc3e6d4093a8e047a693` чужой iPad-сессии. Установка требует idle pool и ждёт выбранного пользователем освобождения рабочей lease. Полный GHCR roundtrip/node acceptance/live restore остаются release gates.
|
||
|
||
Fresh stdio MCP из clean package `624bdfa` также прошёл initialize/discovery (18 tools), актуальный embedded runbook, read-only status и проверку новых native GUI/SSH keychain + 1920×1080 descriptions. Во время smoke VM/lease mutations не выполнялись.
|
||
|
||
### Текущий candidate и разрешённое продолжение (2026-10-14 17:19:56 UTC)
|
||
|
||
Current published source `9a740c0f2a5cf64ccd9fc00cff705ff5abc90d08`, clean checkout и remote `codex/retire-lume-release-hardening` совпадают. Последний clean package: `/private/tmp/virfield-release-readiness-9a740c0-20261014/virfield-v0.0.0-readiness-candidate-darwin-arm64.tar.gz`, SHA-256 `065413f0ea81bef181230227c91ac0446ab5c040ca1dc66522eb1d0d51ae9182`. Extraction, все шесть manifest binary hashes, native browser signature и действующий config-check — PASS. Idle-only installer `/private/tmp/virfield-install-9a740c0.py` подготовлен, не запускался. Архивы/установщики прежних commits — исторические; старый installer не соответствует новому HEAD.
|
||
|
||
- Полный локальный make check: docs (26 файлов / 65 links), 9 Python tests, gofmt/vet/full Go race — PASS. Pinned Staticcheck v0.7.0 и Gitleaks v8.30.1 current tree — PASS. GitHub CI не использовался как acceptance.
|
||
- Найден отдельный stale MCP client: уже подключённый процесс отдаёт старые Lume instructions, хотя установленный daemon использует Tart. Existing stdio processes стартовали до замен executable и сохраняют старый код/docs в памяти. Новый live MCP gate проверяет точную package version и все четыре embedded runbooks/resources against exact source; negative fixtures со старой version и stale runbook отклоняются. Fresh stdio нового package (version `0.0.0-readiness-candidate`, 18 tools, все четыре runbooks/resources, status Tart/HTPC) — PASS. Приёмка уже подключённых owning clients после их безопасного reconnect ещё нужна; чужие MCP процессы не завершались.
|
||
- Acceptance journal теперь заменяется атомарно с fsync; failure до replacement сохраняет последний полный replay record. Body сохранён как точная JSON-копия отправленного запроса и не меняется при последующем изменении caller object; несовпадающий replay отклоняется до dispatch. Regression tests — PASS.
|
||
- GHCR read-only preflight: configured account `mallexxx` подтверждён, token имеет `write:packages`; acceptance package пока 404 и preflight tag `registry_not_found`. Ничего не опубликовано. Подготовлен `/private/tmp/virfield-release-roundtrip.py`: требует exact installed commit/hashes и свободный pool, создаёт новые factory/pull names и уникальный tag, проверяет private visibility/digest, выполняет по два sequential clone/workload/artifact/release, удаляет только собственные goldens и сверяет исходный image baseline. Requests/IDs сохраняются; частичная clone pair требует проверки сохранённых identity/lease IDs. Runner ещё не запускался.
|
||
- На последней read-only проверке pool занят 2/2: `lease-6fde5d2f33c234f2e885583fb6a8fd34` (`needs_attention`, VM running) и рабочая iPad lease `lease-327bb8e4a3a06b7d5ac8e527c57d1907` (`ready`). Active jobs отсутствуют: Monterey image build уже завершился. Установлен по-прежнему `aee89c1`; foreign leases/VM не изменены. Lume override `disabled`, system service отсутствует, порт 7777 закрыт — повторно подтверждено.
|
||
- Пользователь явно разрешил однократное фоновое продолжение «Продолжай доделывать до готовности». Existing heartbeat `virfield-lease` обновлена, ACTIVE каждые 15 минут; после освобождения чужих VM/jobs продолжает установку актуального кандидата, live Tart/node/MCP, factory/private GHCR, локальные CI, документацию и source push, затем отключается. Пока pool занят, установки и рестарта нет. Это согласие не закрывает отдельный ещё ожидающий approval вопрос о правах существующих HTPC goldens.
|
||
|
||
Candidate остаётся не release-accepted до installed/live gates. Full private GHCR roundtrip, node acceptance, current-client reconnect и live restore/rollback ещё не выполнены.
|
||
|
||
### Monterey: проверка причины и результата rebuild (2026-10-14 17:43:03 UTC)
|
||
|
||
Проверена именно Monterey/Xcode 13.4.1 из iPad-сессии. macOS здесь 12.7.6 / 21H1320; 13.4.1 / 13F100 — версия Xcode.
|
||
|
||
- Исходный `resource_exhausted` на Samsung объясняется full disk reservations и safety reserve; свободный VM slot не гарантирует достаточно зарезервированного места для ещё одного диска.
|
||
- Исходная cross-container lease `lease-9e65ca2f956c0f061eb3ac021d9f6b6f` клонировала local golden из `samsung-tart` в `release-check`. Tart backend детерминированно отклоняет этот путь до вызова clone; установленный `aee89c1` принял destination в admission, затем скрыл исходную причину за `clone_outcome_unknown` и quarantine. После разрешённого exact-target recovery эта lease `released`, её prepare job `canceled`; активной reservation больше нет.
|
||
- Новый image `image-f8c888fcafbd1a2df2a3b9a02821685d` / template `ipad-editors-monterey-xcode-1341-20261014` построен непосредственно в `release-check`. Build job `job-076452fa609adc3e6d4093a8e047a693` succeeded в 17:09:43 UTC. Qualification `~/.virfield-tart/images/image-f8c888fcafbd1a2df2a3b9a02821685d/verification.json` подтверждает точные OS/build/Xcode, SIP enabled, desktop и FileVault off/unlocked APFS; upstream остаётся `ghcr.io/cirruslabs/macos-monterey-vanilla@sha256:4bc904cf8f2447dfa6e6fb9a5eb70eba14196dd0f4236d30fc92aff9c2391842`. Recipe SHA-256 `c68480032289a6b8d9891765915509e8abdbd1fc5e4c39149256e27e38adcdd6`.
|
||
- Новая рабочая lease `lease-327bb8e4a3a06b7d5ac8e527c57d1907` ready и использует этот image. Сессия «Найти редактор Markdown для iPad» реально собрала Notepad Example и iVim для armv7 и экспортировала products. Локально проверены export/package verification records, а `~/Developer/ipad-editors/exported-editors/iVim-upstream/build.log` содержит `** BUILD SUCCEEDED **`, `ARCHS=armv7` и SDK iPhoneOS15.5. Это подтверждает работоспособность нового worker; успех всего iPad workload/всех приложений здесь не заявляется.
|
||
- Rebuild в правильном контейнере обходит исходный ошибочный маршрут, а не устанавливает fix в daemon. Published source `9a740c0` уже проверяет incompatible local Tart destination до reservation и возвращает `invalid_request`; regression и полный make check проходили. В production всё ещё `aee89c1`, поэтому старый admission-дефект может повториться до ожидаемой безопасной установки.
|
||
- Native GUI/SSH keychain readiness нового кандидата на Monterey после установки остаётся отдельной live-проверкой. Текущие успешные сборки с disabled Apple signing не заменяют эту приёмку; действующая lease агента для неё не изменялась.
|
||
|
||
### iPad workload: CocoaPods и новый vm_drift (2026-10-14 18:08 UTC / 2026-10-15 Asia/Bishkek)
|
||
|
||
На ready Monterey `lease-327bb8e4a3a06b7d5ac8e527c57d1907` реально собраны Notepad Example и официальный iVim 1.40. .app, revisions, toolchain и полные build logs экспортированы на Mac; оба armv7 IPA fake-signed SHA1, установлены на физический iPad2,5 / iOS 9.3.5 через USB, процессы и UI подтверждены screenshots. Процедура: [[personal/how-to/ipad-ios935-build-deploy]]. SSH iPad отдельно настроен запрошенным пользователем `ssh-copy-id`; это другой сервер/ключ, не SSH Virfield.
|
||
|
||
Проблемы гостевого toolchain, встреченные в этой VM (не доказанные ошибки Virfield backend):
|
||
|
||
- System Ruby 2.6.10 universal.arm64e на Monterey падает Bus Error в FFI/Ethon, как с FFI 1.15.5, так и 1.17.3. Причина на уровне ABI/PAC не установлена; воспроизведение на require Ethon подтверждено. Рабочий обход — отдельный `.gems-x64` / x86_64 Ruby/CocoaPods 1.11.3 через Rosetta. Native gems не удалялись. Rosetta installation завершилась successfully; warning installKBytes не помешал `arch -x86_64` smoke check. Helpers сохранены в `~/Developer/ipad-editors/setup-cocoapods*-on-monterey.sh`.
|
||
- Историческая Edhita требует old lockfile metadata: `pod install --deployment` возвращает changes for Bootstrap/Megrim/github-markdown-css checksums, repo aliases и CocoaPods 1.6.1 → 1.11.3. Host helper теперь допускает metadata migration, но проверяет точное равенство before/after массива PODS. Новый helper не успел попасть в guest из-за drift.
|
||
- Flutter 2.10.5/Dart 2.16.2 x64 реально запустился; его git version-check завис на fetch/HTTP2 EOF. Используется `--no-version-check`. Pub resolution GitJournal остановился на публично недоступном GitJournal/ext_storage (404), host fallback опубликованного 1.0.3 ещё не проверен в guest.
|
||
|
||
**Новый infrastructure blocker:** event 865 `lease.drift` в 2026-10-14T17:57:04.260529Z перевёл собственную Monterey VM `vf-327bb8e4a3a06b7d5ac8e527c57d1907` из ready в needs_attention, code vm_drift, message `Ready VM identity, address or running state changed; release the lease`. IP/SSH port очищены в lease, manager закрыл tunnel `127.0.0.1:60131`. SCP изменений и SSH сборки завершились banner timeout / connection reset, pub-get connection closed. Эти переносы не считать выполненными.
|
||
|
||
Read-only status в 18:08:52 UTC снова показывает ту же VM running, IP **192.168.64.251**, SSH available true — адрес соответствует прежнему ready worker. Pool 2/2; вторая, чужая VM macOS27 не менялась. Job preparation собственного worker succeeded; новые queued/running Virfield jobs отсутствовали. Edhita/GitJournal compile завершённым не считается.
|
||
|
||
Исследование источников установленного `aee89c1`: Tart `inspect` оставляет VM.IP пустым при любом error `tart ip --wait 0`, не возвращая lookup error; Controller считает две подряд несовпадающие runtime observations drift и необратимо сбрасывает ready/tunnel. Current source добавляет проверку canceled ctx и отбрасывает такой refresh. Это подтверждённый механизм возможного ложного drift, **но точный ipErr/observation в момент event 865 не записан**, поэтому конкретная первопричина данного события не доказана. Восстановившийся running/IP snapshot не возвращает lease в ready.
|
||
|
||
Installed Operations допускает для needs_attention штатный exact-target recovery с cleanup; не предусмотрено re-adopt ready существующей VM. Direct-IP SSH, изменение SQLite, restart чужого daemon или direct Tart manipulation не выполнялись. Новое удаление `vf-327bb8…` требует отдельного разрешения пользователя: разрешение на старую `vf-9e65…` не распространяется на эту VM. Запрошено 2026-10-15; готовые IPA уже сохранены локально, исходники/SDK воспроизводимы. Golden `ipad-editors-monterey-xcode-1341-20261014` остаётся image_ready и доступен для замены worker после разрешённого cleanup.
|
||
|
||
### Monterey: новый vm_drift (2026-10-14 18:08 UTC)
|
||
|
||
Heartbeat обнаружила изменение после предыдущей проверки: `lease-327bb8e4a3a06b7d5ac8e527c57d1907` перешла из ready в needs_attention в 17:57:04 UTC, error `vm_drift`. В свежем inventory её VM `vf-327bb8e4a3a06b7d5ac8e527c57d1907` всё ещё running, IP `192.168.64.251`, SSHAvailable true. Lease IP после перехода очищен. Это не отменяет фактические успешные build/export выше, но текущая API-readiness уже не ready. Причина конкретного drift не установлена; в прочитанных daemon diagnostics за 17:56–17:58 UTC записей нет. Source canceled-inventory fix пока не установлен, его наличие не доказывает причину этого случая.
|
||
|
||
Pool занят 2/2, active jobs нет; рабочая macOS 27 lease также не released. Ни foreign lease, ни VM, ни их tunnels/keys не изменялись этой проверкой. Установка и рестарт сохраняют ожидание согласно решению пользователя; heartbeat остаётся активной.
|
||
|
||
### Разрешённый recovery второй Monterey VM, 2026-10-14 18:15 UTC
|
||
|
||
Пользователь явно ответил «Разрешаю recovery и удаление этой VM Monterey». Exact-target CLI resolve для `lease-327bb8e4a3a06b7d5ac8e527c57d1907` / `vf-327bb8e4a3a06b7d5ac8e527c57d1907`, idempotency `ipad-editors-recover-20261015-327bb8e4`, завершился cleanup job `job-5cb66a109f395c15cd51633ab858bee7` succeeded в 18:15:12.999253 UTC; lease released. Старый blocker снят. Replacement acquire принят с новым caller key и сохранённым запросом `~/Developer/ipad-editors/virfield-acquire-replacement.json`: lease `lease-9c1a94ff2b56b396fee7f1bbd2e0dcea`, prepare `job-b47d43f833f4bc28e4ec880f8fa40b00`, тот же ready golden в release-check. Worker пока готовится; чужая macOS27 не менялась.
|
||
|
||
### Разрешённый release macOS 27 и новый pool blocker (2026-10-14 18:23 UTC)
|
||
|
||
Exact-target release `lease-6fde5d2f33c234f2e885583fb6a8fd34` / `vf-6fde5d2f33c234f2e885583fb6a8fd34` выполнен по явному разрешению пользователя. Durable idempotency request сохранён до dispatch; cleanup `job-3168397fcd2d6cf4bc821abe7dead124` succeeded. Проверены released state, отсутствие VM в inventory, сохранение исходных семи images/manifest hashes и состояния чужой Monterey на момент завершения. Private evidence: `/private/tmp/virfield-authorized-macos27-release-20261015/journal.json`.
|
||
|
||
Позже старая Monterey `lease-327bb8e4a3a06b7d5ac8e527c57d1907` released владельцем, а новая `lease-9c1a94ff2b56b396fee7f1bbd2e0dcea` уже ready с 18:15:57 UTC; тот же template `ipad-editors-monterey-xcode-1341-20261014`, location `release-check`. Pool остаётся 1/2 occupied. Installer `9a740c0` не запускался, binaries/config/daemon не заменялись. Проверенное разрешение касается только macOS 27; текущую Monterey оставляем владельцу.
|
||
|
||
### Replacement worker: Edhita deploy и GitJournal compatibility (2026-10-15)
|
||
|
||
Replacement `lease-9c1a94ff2b56b396fee7f1bbd2e0dcea` ready, actual macOS12.7.6/Xcode13.4.1 verified; IP192.168.64.252, pinned loopback tunnel55530. x86_64 CocoaPods preparation succeeded. Edhita build `20261015T001900Z` BUILD SUCCEEDED; PODS arrays before/after identical. Export, armv7/minimumOS checks, SHA1 fake sign, USB install and detached launch passed; screenshot shows Documents browser/Editor/Browser/Dual. Это третий успешно установленный редактор; процесс задокументирован в iPad how-to.
|
||
|
||
Оставшиеся ошибки GitJournal относятся к upstream dependencies, не Virfield: public ext_storage fork unavailable, Firebase8 plugin minimum iOS10 при Runner9, downgrade Firebase6 конфликтует quiver2 с dart-git/quiver3, незакреплённые git HEAD refs обновляются до Dart3 при изменении resolution. Final local compatibility patch закрепляет четыре git deps исходными resolved-ref, использует опубликованный ext_storage1.0.3 и отключает optional Firebase analytics с удалением отсутствующего GoogleService-Info plist resource. `pub get` прошёл 8.8s, CocoaPods/native compile ещё идёт. Markdown/Git code не удалялся. Точный diff сохраняется в checkout; launch/Git sync пока не проверены.
|
||
|
||
### iPad workload завершён; Monterey released (2026-10-14 18:51 UTC)
|
||
|
||
На replacement завершена и GitJournal armv7 build. Final compatibility дополнительно закрепляет platform3.1.0/photo_view0.13.0 для Flutter2.10/Dart2.16 и генерирует пустой локальный Sentry config через reviewed upstream setup_env.dart. BUILD SUCCEEDED,49 Mach-O armv7/minimum≤9.3.5, SHA1 fake sign, USB install Complete/exit0 и detached launch/отображённый onboarding UI проверены. Таким образом четыре варианта реально установлены и запущены: Edhita2.3.0, Notepad Example, upstream iVim1.40 и GitJournal1.76+local compatibility patch. Full holzschu fork требует отсутствующих armv7 зависимостей и не установлен. Реальный vault/Git remote sync отдельно не настраивался. Полная процедура и ограничения — [[personal/how-to/ipad-ios935-build-deploy]].
|
||
|
||
Пользователь явно поручил «Monterrey релизь если больше не нужен». До удаления экспортированы .app/IPA, metadata, exact source diffs/lockfiles, build logs и diagnostics/Gemfile.lock на Mac. Штатный vm_release exact `lease-9c1a94ff2b56b396fee7f1bbd2e0dcea`, key `ipad-editors-release-20261015-9c1a94ff`, cleanup job `job-efbdecc8f058d3b33ab55a2e03c2b448` succeeded в 18:51:19.492842 UTC. Lease released, runtime VM vf-9c1a94ff… отсутствует. Новый golden image-f8c888… image_ready сохранён. Никакой чужой lease этим агентом не освобождалась; daemon/journal/source installation не менялись.
|
||
|
||
|
||
## Installed Monterey native acceptance — 2026-10-14 19:37 UTC
|
||
|
||
`4a53b67ce04fd1adc164750b47e780c4bdde9ea6` установлен в idle pool с private backup, прежней Developer/FDA identity и сохранением всех семи goldens. Archive `virfield-v0.0.0-pixel-display-darwin-arm64.tar.gz`, SHA-256 `a71ceaf53dae64c2c91545cdfcff5749c656ba69677411fb154c3a3e6e301f19`; полный make check/Staticcheck/Gitleaks (206 commits) PASS, branch pushed. HTTP и fresh stdio exact-version/all-four-runbooks/resources/status smoke PASS для `0.0.0-pixel-display`.
|
||
|
||
Два новых disposable clones именно свежего `ipad-editors-monterey-xcode-1341-20261014` (`lease-ef13cff121fecbc93f3a43a12b915702`, `lease-990032a673fa5826a2efa6396c271294`) прошли native WhenUnlocked add/read/data comparison/delete отдельно в Aqua и новом SSH до/после настоящего reboot с новым boot UUID/nonce; actual GUI 1920×1080, exact OS/build/SIP, разные SSH host keys и cross-key rejection, artifact export, RFB desktop, подтверждённый release и отказ обоих tunnels после release. Оба own VM удалены, iPad golden сохранён. Private evidence `/private/tmp/virfield-installed-monterey-pixel-4a53b67-20261015/journal.json`.
|
||
|
||
Это закрывает воспроизведённый display-before-keychain defect свежего Monterey. Старый Samsung Monterey, Ventura, macOS 27 и HTPC native matrix ещё выполняются отдельно; current connected MCP по-прежнему возвращает исторический Lume runbook, owning-client reconnect не принят. Factory/private GHCR roundtrip ещё не запускался. Это не acceptance всей DDG UI-suite или всего v3 roadmap.
|
||
|
||
|
||
## Installed Tart matrix — 2026-10-14 19:48 UTC
|
||
|
||
Все четыре configured Tart profiles приняты на installed `4a53b67`: fresh iPad Monterey, Samsung Monterey, Ventura/Xcode15.2 и macOS27. По два свежих клона на каждый профиль (8/8). Каждый прошёл native GUI/новый SSH WhenUnlocked I/O до/после реального reboot с новым boot UUID/nonce и сохранённым pinned host key; actual GUI1920×1080, exact OS/build/SIP, cross-key rejection, разные host keys, artifact export, RFB desktop, штатный release и SSH/desktop revocation. Все own VM отсутствуют; семь goldens сохранены. Journals `/private/tmp/virfield-installed-monterey-pixel-4a53b67-20261015` и `/private/tmp/virfield-installed-tart-native-4a53b67-20261015`.
|
||
|
||
Дополнительно найден native Apple browser defect: trustedOrigin требовал `state_dir == deployment`, что несовместимо с действующим separate state `~/.virfield-tart`. Исправление source `8e07015cde200a41fee6b490da97a44437803d7f` разрешает отдельный private owner state, проверяет владельца/права deployment/config/state, отвергает config/state symlink и не-loopback/подменённый origin. Реальный compiled Swift trust check на текущем config PASS; boundary regression tests, full make check (10 Python tests + Go race) PASS, source pushed. New exact package `virfield-v0.0.0-browser-state-darwin-arm64.tar.gz`, SHA256 `63c697126d63d3be3160ce57848d0338d2dfd1fe04a2ebbd267e105103b510e6`; установка выполняется после Tart cleanup. VM code/guest script этого коммита идентичны принятому `4a53b67`.
|
||
|
||
Lume повторно подтверждён disabled/unloaded, port7777closed. HTPC secured goldens всё ещё0444; отдельный permission question пользователю остаётся pending, chmod не выполнялся. Live HTPC native matrix, portable private GHCR roundtrip, current owning MCP reconnect и live restore/rollback остаются gates.
|
||
|
||
|
||
## HTPC inventory race — 2026-10-15 03:39 UTC
|
||
|
||
Первая concurrent native matrix installed8e получила vm_missing сразу после confirmed clone. Только собственные lease-f760d6dc6090dd47cd10a5dd2669588f и lease-c8dd5ae4e8bf8cf8532f7634a8c73500 штатно released; отдельный native SSH probe подтвердил отсутствие обеих папок и Podman containers. Private journal `/private/tmp/virfield-installed-htpc-native-8e07015-20261015`.
|
||
|
||
Причина воспроизведена детерминированным тестом: node mutation отмечала cache changed до команды; concurrent Observe успевал снять флаг и закэшировать отсутствие ещё не созданной VM. Новый source повторно инвалидирует cache после любого outcome, а Control ждёт snapshot, начатый после clone completion. Red/green regression tests, full local CI, Staticcheck PASS. Source2f46faadcce3bf9080b093e1bdab6bf26327a82f pushed и установлен с private backup, прежней signing/FDA identity и сохранением7goldens. Archive `virfield-v0.0.0-node-inventory-darwin-arm64.tar.gz`, SHA256 `1a94f247c9f0f57b10011b022dc580ac10401b4859805686ef9e59b26b4c4450`, PID6332. HTTP/fresh stdio exact-version/all-four-runbooks/resources/status PASS для0.0.0-node-inventory. Повторная матрица `/private/tmp/virfield-installed-htpc-native-2f46faa-20261015` выполняется, результаты пока не приняты. Host Wake API дал fresh available03:38UTC, private HDD root сохранён.
|
||
|
||
Попытка native browser GUI smoke застала locked Mac и не завершилась проверкой; GUI launch не принят. Повтор CUA откладывается до явной разблокировки. Native compiled Swift trust check на actual split deployment/state и URL-scheme registration прошли ранее. Owning MCP reconnect остаётся отдельным gate. Существующие secured HTPC goldens0444 не менялись; async question на0400 файлов/0700 каталога пока без ответа.
|
||
|
||
|
||
## HTPC HDD boot / внешний Steam I/O — 2026-10-15 04:01 UTC
|
||
|
||
Повтор2f46faa прошёл clone/start после race fix, но оба concurrent Sonoma не достигли SSH к10-минутному deadline. Guest framebuffer показывал macOS boot (без kernel panic); I/O pressure full около44%. Оба own fixtures9687…/925a… released, native папки/containers absent. Новый source/installed ab9a2ad92ed2b97ca7714e800a6fa1261edaee5f задаёт DISK_CACHE=writeback/DISK_IO=threads (guest flushes enabled). Full CI/Staticcheck PASS; Gitleaks209 commits clean, fresh govulncheck0reachable/imported (module-only unused openpgp notice остаётся). Archive SHA256935fce3268e115e9ea496dc1209bc18c56ceb7100c25bd36b610b9692faef192; private backup/signing identity/7goldens сохранены. HTTP/fresh stdio exact-version/all-four-runbooks/resources/status PASS.
|
||
|
||
Активная новая matrix `/private/tmp/virfield-installed-htpc-native-ab9a2ad-20261015`: собственные lease-81111c749a09dafe75ab4886809f5b0b и lease-783b910082aef60af102b947f3034e4e. Внешний Steam PID12980 создаёт около42MB read и42MB write за2сек, имеет62FD на том же VM HDD; content log подтверждает AppID766570 staging33,619,622,671bytes с09:39local. Это реальная общая I/O нагрузка; Steam не менялся. Новые QEMU env writeback/threads и NOCOW storage/data подтверждены, но улучшение boot и native node acceptance пока не доказаны. Evidence `external-io-blocker.json` в private matrix root. Нужен повтор после разгрузки HDD; не ослаблять keychain/readiness.
|
||
|
||
Owning MCP PID65967 установлен через единственный новый API socket от текущего законченного read-only status request. Только этот старый adapter остановлен; остальные не менялись. Auto-reconnect не сработал (Transport closed), вручную переподключить Virfield MCP должен текущий client. Async request на unlock Mac + reconnect и отдельный permission question на0400/0700 остаются без ответа.
|
||
|
||
|
||
## Controller-state live restore PASS — 2026-10-15 04:11 UTC
|
||
|
||
Installed ab9a2ad, backup24b8cc75c691697893d48d44c6163bfb. Private copied SQLite/images/node management identity + new owner token запущены через existing launchd service на том же listener после атомарной смены config и SIGTERM; sudo bootout до этого не прошёл и ничего не изменил. Один manager/listener. Старый owner token отклонён401, exact HTTP/fresh stdio MCP PASS,7image identities/manifest сохранены. Два own Monterey clones a523fc64…/cd09f148… прошли native Aqua/SSH I/O, реальный reboot, display/workload/artifact/desktop/release/revocation. Read-only SQLite comparison доказал, что их records только в restored copy, original journal не менялся. Byte-exact original config/state возвращены, оба VM удалены. Evidence `/private/tmp/virfield-live-restore-drill-20261015/report.json` passed и `state-isolation-evidence.json`. Runtime disks не копировались; это controller-state restore, не VM-disk disaster recovery.
|
||
|
||
## Factory capacity fix / GHCR roundtrip in progress — 2026-10-15 04:43 UTC
|
||
|
||
Первый own factory image-b3dba0ef… failed до публикации: diskutilresize120GB successful, immediate rootdf14GB, grow script exit66. Packer/process/native VM absent подтверждены; private logs сохранены в `/private/tmp/virfield-release-roundtrip-20261014/failed-factory-attempt1`, exact-name journaled recovery delete job-eafb8752… succeeded. Новый логический attempt2 имеет отдельный durable key; исходные replay records сохранены, tag ещё не использовался.
|
||
|
||
Source/installed2f23ae609a4f650130f5c84835f89931d6e70592: capacity проверяется на writable Data, до30сек после одного resize, реальная нехватка/invalidstats fail closed. Regression fixtures stale-root/delayed/full/invalid PASS, full localCI/Staticcheck PASS, branch pushed. Node prepare20min основан на историческом9min HDD cold boot до новых keychain checks; caller lease TTL и primary10min unchanged. Archive `virfield-v0.0.0-capacity-readiness-darwin-arm64.tar.gz`, SHA2569defb127d54a06c722d403e02ce90b2b427b2597613d51145d6eba2b81de60a1, installedPID88439, private backup/signing/FDA/7goldens preserved. Exact installed MCP version0.0.0-capacity-readiness/all4runbooks/resources PASS.
|
||
|
||
Factory-r2 image-9b543d55… /job-007f3937… built/qualified/stopped: writable Data87,827,148KiB free (check0), subsequent rootdf тоже обновлён. Это подтверждает исправленный capacity gate; уникальный механизм initial stale root df отдельно не доказан. Два worker clones43b88366…/a9fb0d78… прошли SSH/key isolation, exact OS/build/SIP, workload/artifact/desktop/release. Portable publication image-92b7abe44ddaa89b910af025cce0e863 /job-3e83652b… построена заново из pinned public base, qualified и sanitized, private managed golden не клонировался для upload. Push в `mallexxx/virfield-hardening-acceptance:release-check-0644cb90dac8` выполняется (~20%); manifest/digest/private visibility/pull-back/workload/cleanup ещё не приняты. Durable journal `/private/tmp/virfield-release-roundtrip-20261014/journal.json`, planned pull `release-check-pull-0644cb90dac8`. При неизвестном исходе не менять replay keys и не повторять push вслепую.
|
||
|
||
|
||
## Factory/private GHCR и controller rollback PASS — 2026-10-15 05:12 UTC
|
||
|
||
Factory roundtrip завершён на installed `2f23ae6`: fresh public-base factory-r2/qualification и два worker workloads; отдельный новый portable public-base build с public bootstrap credentials и sanitization; push в разрешённый private `mallexxx/virfield-hardening-acceptance:release-check-0644cb90dac8`, verified private visibility, digest `sha256:a5d42b4e6e48641fba1af7171158de39252e4439d3087c1b019f392223054e73` (21,460,835,255 descriptor bytes); pull/qualification, ещё два clone/workload/artifact/desktop/release. Собственные factory/pull goldens удалены через journaled jobs; семь baseline IDs/manifests сохранены. Private managed golden не загружался. Durable evidence `/private/tmp/virfield-release-roundtrip-20261014/journal.json`, `passed:true`; registry artifact сохранён как evidence. Законченный roundtrip не повторять без относящихся к нему изменений.
|
||
|
||
Source/installed `2724f94ed52696e5482ad8431a19d1a62a427e0b`, version `0.0.0-node-image-privacy`, archive SHA256 `7cff304d53dd3a59a1aed59fe25907d88495043a66bbb7c3f64ad07813bbe6d4`. Реальная empty Podman conversion воспроизвела mode0644 несмотря на внешний umask; OCI `--umask 0077` даёт0600. Исправление задаёт оба umask, применяет0400 до publish, отказывает при неоднозначном staging и удаляет только свой exact staging. Existing HTPC secured goldens0444 не менялись; отдельный approval остаётся pending. Exact full local make check, Staticcheck0.7.0, Govulncheck1.6.0 (0reachable/imported, один unused module-only openpgp notice) и Gitleaks211commits PASS. Signed install/private backup/FDA identity/7goldens сохранены, HTTP/fresh stdio exact-version/all-four-runbooks/resources/status PASS.
|
||
|
||
Signed controller-binary rollback `2724 -> 2f23 -> 2724` PASS через один existing launchd service/listener; версии, свежиеPID, hash, исходныйconfig и7образов проверены. Первый probe остановился на transient startup inventory; inspect/resume принял уже запущенный старый controller и вернул новый без повторного rollback. Receipt `/private/tmp/virfield-controller-rollback-drill-2724f94-20261015/report.json` passed. Это controller-binary drill, не весь package/client rollback и не VM-disk DR.
|
||
|
||
Steam завершил staging, HDD pressure до запуска новых VM почти0. Текущая HTPC matrix `/private/tmp/virfield-installed-htpc-native-2724f94-20261015` выполняется с20min prepare budget, own Sonoma leases `lease-ae6f4954e787d989c0d35d3264bd8b7a` и `lease-b236c8eb2ef310a66f42b00d6e3a3036`,8CPU/16GiB/200GiB reservations; native acceptance пока не принята. Lume повторно disabled/unloaded/7777closed. Manual owning MCP reconnect, unlockMac/nativebrowserGUI и exact existinggolden permissions approval по-прежнему без ответа.
|
||
|
||
|
||
## HTPC: уточнение timeout и зависший warm reboot — 2026-10-15 05:57 UTC
|
||
|
||
Установлен/pushed edcb756, archive SHA25682b7f7199948ba117a58a4e5067f4b12c56ab7811919038f2eadda7f8a0f80c1, version0.0.0-gui-observation. Exact local CI/Staticcheck/package/install/HTTP/fresh stdio all4runbooks/resources PASS. Оба concurrent Sonoma первоначально ready, один за304.6sec. После reboot первый verify снова failed с пустым output до native proof. Важное уточнение предыдущей записи: наличие startup proof76sec после boot и failure~2sec раньше не доказывает, что сработал именно60sec startup guard; существовал ещё30sec console-login guard. Исторический scope не заменяем предположением. Source теперь различает эти ошибки и bounded120sec console wait; реальный shell-block regression delayed login40 observations red на старом30 и green на120, absent console fail-closed.
|
||
|
||
Следующий собственный diagnostic pair `lease-2537a3600bbb6adc2993526e88cffc62` / `lease-bc896a94e0345ba4f044cc17c5aa3ac3` достиг ready. Первый real guest reboot остался без новогоSSH/boot UUID, framebuffer сохранил часы до reboot. QEMU CPU активны, disk idle длится минуты; это не принятый reboot. Runner65766 был SIGSTOP до короткого harness cleanup, затем SIGTERM+SIGCONT завершён после сохранения evidence. Никакого второго reboot/reset не было. Обе exact leases затем released через исходный private journal и durable release keys. Root `/private/tmp/virfield-htpc-console-diagnostic-edcb756-20261015`, `runner-handoff.json`, framebuffer и journal. Новые foreign ресурсы не трогались.
|
||
|
||
HTPC CPU i7-6700K, все CPU constant_tsc+nonstop_tsc, active clocksource tsc, VMX tsc_scaling absent. Actual QEMU Skylake-Client-v4 не получает invtsc. Pinned /run/proc.sh ошибочно ориентируется на tsc_scaling; upstream correction https://github.com/qemus/qemu/pull/1513 подтверждает отдельный capability defect. Source даёт +invtsc только по стабильным host signals на всех CPU, иначе -invtsc; heterogeneity/missing flags/non-TSC tests PASS. Это ещё не доказательство причины именно нашего stall; требуется live A/B.
|
||
|
||
На framebuffer найден блокирующий Keyboard Setup Assistant. Реальный IORegistry QEMU USB Keyboard vendor1575/product1/country0, preference имел только Apple virtual65535-1452-0. Source добавляет только QEMU ANSI40, сохраняет остальные mappings, закрывает assistant в own VM и не принимает GUI ready с запущенным assistant. Actual defaults на disposable plist подтвердил integer40. Native node/UI/reboot matrix этим source ещё не пройдена. Все семь goldens сохранены; existing0444/0755 permissions pending отдельного approval. Manual owning MCP reconnect/unlockMac также без ответа.
|