diff --git a/personal/projects/virfield.md b/personal/projects/virfield.md index 3f694dfe..1abb4e63 100755 --- a/personal/projects/virfield.md +++ b/personal/projects/virfield.md @@ -12,7 +12,9 @@ tags: --- # Virfield — текущее состояние -Актуально на 2026-10-15: installed code `f60efe3310cd3806c18481b5d22089c421849f8b`, version `0.0.0-browser-transport-trace`, daemon PID65903 после подтверждённой миграции службы в Standard. Source/pushed docs HEAD `0ef5ba2` — актуальные Verification, Operations, Agent Guide и Image Pipeline с границей Broker/macOS27 повторной приёмки; guest/browser/SSH код не менялся. Для `0ef5ba2` docs/link/diffcheck и `go test -race ./internal/mcpadapter ./docs` PASS; pinned Gitleaks231commits — предыдущий receipt для `c878c15`. Ветка `codex/retire-lume-release-hardening`, clean. Установка выполнена в полностью idle pool с приватным backup, прежними signing/FDA identity, config/keys и всеми семью baseline images/manifests. Archive SHA256 `941da8a267107103918ddc553290419f104148f5bebb7503917b130328265c00`. Exact archive stdio18tools/all4runbooks/resources/status PASS; installed HTTP/freshstdio exact version/all4runbooks/resources/status/anonymous401 PASS1.22sec. Пользователь подтвердил Restart Virfield MCP, но последующий реальный owning-client help всё ещё вернул `Transport closed`; этот gate открыт. +Актуально на 2026-10-15: installed code `f60efe3310cd3806c18481b5d22089c421849f8b`, version `0.0.0-browser-transport-trace`, daemon PID65903 после подтверждённой миграции службы в Standard. Source/pushed docs HEAD `ea0ba06d68139feaf314101a18ef4484801707b3`, ветка `codex/retire-lume-release-hardening`, clean. Актуализированы все поддерживаемые repo runbooks и план; прежний Verification сохранён без потери evidence в датированном архиве. Для документационного коммита: 27 Markdown files /97 local links, diffcheck, `go test -race ./internal/mcpadapter ./docs` PASS; pinned Gitleaks8.30.1 —233commits/no leaks. Это docs-only revision: установленный f60 по-прежнему содержит прежние embedded runbooks и гостевую password rotation. Установка сохранила private backup, signing/FDA identity, config/keys и семь baseline images/manifests; archive SHA256 `941da8a267107103918ddc553290419f104148f5bebb7503917b130328265c00`. Exact archive stdio и installed HTTP/freshstdio version/all4runbooks/resources/status/anonymous401 PASS; post-Standard smoke0.18sec. Реальный owning-client help повторно возвращает `Transport closed`, несмотря на подтверждённый Restart; этот gate открыт. + +**Решение пользователя: стандартный VM account `admin/admin`, без автоматической случайной смены пароля.** Удаление rotation явно поручено, но ещё не реализовано ни в source, ни в installed f60. Это первый пункт актуального плана; старые goldens могут всё ещё содержать generated credentials. Сохраняются независимые caller/management SSH keys, fresh host keys/pins, key-only SSH и cross-key rejection. Существующие login-keychain items, workspace и protected goldens не удаляются/не перезаписываются; совместимый переход старых образов должен быть отдельно проверен. Старые PASS относятся к старой password policy и не принимают ещё не написанную новую. **Broker/macOS27: открыта повторная приёмка.** Три production-попытки 2026-10-15 завершились `guest_keychain_failed` до bootstrap и запуска provider roles; последний проверенный installed был `614daf5`. Все три lease штатно released, Broker cleanup=done. Позднейшие `f60efe3` и миграция службы в Standard ещё не проверены через этот Broker/macOS27 путь. Общий код ошибки не устанавливает конкретную причину в GUI/SSH native I/O или состоянии консоли. Границы доказательств и критерии закрытия — в [Virfield Verification](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/VERIFICATION.md#broker-macos27-reacceptance); точные operational references хранятся только в этой приватной карточке и private Broker evidence. Нужны свежая native GUI/new SSH/console qualification, production Story, явный Codex denied-write, независимые тесты, artifacts/checkpoint/release; успехи других OS/profile этот gate не закрывают. @@ -26,11 +28,15 @@ tags: Последний prepare job создан 2026-10-15 14:34:14 UTC на installed `614daf59cbabe2a56085e7c188ffca0e212b3f2d`. Последующий install `f60efe3` — checkpoint 14:48 UTC; по read-only Broker journal после него macOS-запусков пока нет. Точный GUI/SSH/console подэтап трёх отказов по сохранившимся публичным событиям не установлен. -Полная release acceptance НЕ пройдена. Samsung Monterey614daf5 прошла2/2 полных native GUI/new SSH WhenUnlocked I/O, реальных reboot/new UUID/nonces, actual1920×1080, exactXcode13.4.1/13F100+Swift compile/run, workload/artifact/RFB/release/revocation циклов. Новый public-base factory13.7.4 qualified и два её клона прошли native/reboot/workload/artifact/RFB. Собственные factory/workers удалены; все7 baseline image/manifests сохранены, повторного registry push не было. Журналы: `/private/tmp/virfield-installed-samsung-monterey-614daf5-20261015/journal.json` и `/private/tmp/virfield-installed-native-factory-614daf5-20261015/journal.json`. +Полная release acceptance **не пройдена**. На installed f60 +Standard HTPC Sequoia прошла **2/2 полных** native Aqua/new SSH WhenUnlocked I/O, реальных reboot/new UUID/nonces, actual1920×1080/unlocked/no dialogs, pinned SSH/RFB before-after, workload/artifact hash/cross-key/release/revocation циклов. Оба own fixtures удалены. Samsung Monterey614daf5 и новый public-base Ventura factory614 сохранили свои2/2 полных native/reboot/workload receipts; Monterey дополнительно exactXcode13.4.1/13F100+Swift compile/run. Собственные factory/workers удалены, семь baseline manifests сохранены, registry push не повторялся. Новая standard-password policy пока не реализована и этими PASS не принята. -На первой614 HTPC Sonoma production auth вернул current/status0/cache_refresh_validated=true/cache_refreshed=true; nativeGUI+newSSH I/O/1920/unlocked console/no visible dialogs до reboot прошли. Reboot gate прервал verifier на отдельном60sec reconnect timeout, до общего20min deadline. Это ошибка verifier, не доказанный keychain failure; оба fixtures released+revoked, кадр boot сохранён. Исправление повторяет только read-only reconnect, никогда reboot. +Историческая первая614 HTPC Sonoma прошла native GUI/new SSH/1920/unlocked/no-dialog checks до reboot, включая validated current-password cache refresh. Тот verifier прервал один60sec read-only reconnect до общего20min deadline; это не был исчерпанный reboot gate. Исправлен только private verifier: повторяет read-only reconnect в исходном общем бюджете, никогда reboot. Последующий f60 Sonoma действительно исчерпал полный1200sec budget — отдельный открытый дефект ниже. -Отдельная fresh HTPC-пара9d8c/7570 затем FAILED inherited-desktop preflight до создания worker credentials. Оба original desktop.log записали context deadline после1min команды при общем2min desktop budget; позже inherited CLI SSH/console diagnostics отвечали. Конкретный заблокированный SSH/guest подэтап пока неизвестен. Сохранены private logs/framebuffers; обе exact VM released исходными durable keys, cleanup завершён. Private verifier также исправлен: terminal needs_attention job не считается активным preparer. Журнал `/private/tmp/virfield-installed-htpc-native-614daf5-reconnect-20261015/journal.json`. Целевая диагностика установленного f60 после Standard migration: собственная Sonoma ea2c и Sequoia c0c7 достигли ready; inherited desktop probe прошёл за123.66/152.68ms, в том числе при двух собственных VM. Прежний60sec preflight timeout пока не воспроизведён; причинную связь со Standard не утверждаем. Native Aqua/newSSH/1920/unlocked/noDialog до reboot прошли. На Sonoma после единственного reboot guestSSH banner отсутствует даже с HTPC loopback при работающем QEMU; новый boot UUID ещё не доказан. Sequoia подтвердила Shutdown NOW и ждёт возврата. Reboot не повторяется, own frames/private logs сохранены. Журналы `/private/tmp/virfield-htpc-transport-diagnostic-f60efe3-20261015/journal.json` и `/private/tmp/virfield-htpc-sequoia-diagnostic-f60efe3-20261015/journal.json`; актуальный исход проверять до cleanup/новых mutations. +Отдельная историческая614 HTPC-пара9d8c/7570 FAILED inherited-desktop preflight до создания worker credentials; original desktop.log показывает60sec command timeout, позднейшие read-only CLI/console отвечали. Точный подэтап/причина не установлены. Оба fixtures released исходными durable keys, bounded evidence сохранены. На f60 после Standard initial probes Sonoma/Sequoia прошли за123.66/152.68ms; старый timeout не воспроизвёлся, причинная связь со Standard не доказана. + +**Sonoma f60: FAIL после одного reboot dispatch и полного1200sec бюджета.** Новый boot UUID не получен, guest SSH banner отсутствовал даже через HTPC loopback, при этом QEMU/container оставались running; конкретная причина stall не установлена. Native GUI/newSSH/display до reboot PASS. Собственная `lease-ea2c1fae75020ef8f99c1a9b0e324dda` затем released исходным journal key, SSH и зарегистрированный desktop listener отозваны. Журнал `/private/tmp/virfield-htpc-transport-diagnostic-f60efe3-20261015/journal.json`; bounded logs и failed framebuffer сохранены. Sequoia f60 обе полные проверки завершила PASS, журналы `virfield-htpc-sequoia-diagnostic-f60efe3-20261015` и `virfield-htpc-sequoia-second-f60efe3-20261015`. + +**macOS27 f60: два standalone FAIL native login authentication.** GUI agent exit65/login-rekey, current/previous/user candidates — native copy-unlock `-25293`; display passed, readiness/workload не прошли. В retained diagnostic VM все пять независимых native auth/item-preservation fixtures прошли, но copy оригинального login отвергала все исследованные известные candidates. Guest identity совпала с controller/source credentials; шесть image credential files/backups содержат один исходный secret. Это не доказательство конкретного исторического password mismatch либо corruption и не Broker Story acceptance. Оригинальные items/default/search/bytes сохранены; reset и полная выгрузка keychain на host не выполнялись. Обе own leases `lease-b1f28375d03161cd57d908f854d5e8d5` и `lease-0d8301218eee761cae8e09cdf42a1a1f` released/revoked после bounded logs/native statuses/frames. Evidence `virfield-macos27-native-f60efe3-20261015` и `virfield-macos27-auth-diagnostic-f60efe3-20261015`. Последующий API snapshot:0/2, worker leases/jobs нет, семь image-ready records сохранены. Пользователь подтвердил Mac unlock. Installed Apple browser реально открыл окно и обработал Safari URL handoff с синтетической ссылкой; загрузилась настоящая Apple Sign In page. Никаких account credentials не вводилось, реального ожидающего Apple-auth download нет; тестовое окно и вкладка закрыты. Найден layout defect: длинный URL вытесняет Continue. В новых исходниках адрес вынесен в отдельную ограниченную строку. Также исправлен compiler target: старый Mach-O требовал26 вопреки plist13, новый build явно использует plist minimum и otool показывает13.0. Это compiler/metadata proof, не live hostmacOS13 acceptance; Новый installed f60 GUI layout визуально проверен: адрес в отдельной ограниченной строке, Continue/Back/Restart видимы; свежий процесс обработал Safari URL handoff и загрузил Apple Sign In. Continue с синтетической недействительной ссылкой показал понятный expired-link отказ; credentials не вводились, authenticated download не проверен. Собственные тестовые app/tab закрыты. @@ -46,9 +52,21 @@ Diagnostic d263 отдельно прошла source-staged повторную a Monterey — macOS12.7.6/Xcode13.4.1, не macOS13/Ventura. Старые Samsung750 2/2, Tart4a53 8/8 и iPad677/8c receipts сохраняют только свой датированный scope. Новый iPad repeat блокирует internal storage: на13:52≈75.7GB free при требовании≈150GB full-growth+reserve. Reserve не снижается, чужие данные не удаляются; local Tart cross-container clone пока запрещён. -Factory/private GHCR roundtrip2f23, controller-state restore и signed controller-binary rollback завершены; evidence сохранены. Это не VM-disk DR и не весь V3 roadmap. Lume повторно проверен14:07 UTC: disabled/unloaded/7777closed; rollback files сохранены. Пользователь выполнил одобренную Standard migration. Внешняя проверка подтвердила ровно одно изменение plist — ProcessType Background→Standard, свежий daemon PID65903, прежние signed hashes/config/keys/7 baseline images; API healthy и pool idle. Post-migration exact installed HTTP/freshstdio/version/all4runbooks/status/anonymous401 PASS0.18sec. Receipt `/private/tmp/virfield-standard-migration-external-verification-20261015.json`. GUI f60 layout/URLhandoff/Applepage после свежего запуска PASS; реальный authenticated download отдельно не проверен. Existing HTPC goldens0444/dir0755 требуют отдельного pending approval на0400/0700; общее продолжение и MCP Restart этого не заменяют. +Factory/private GHCR roundtrip2f23, controller-state restore и signed controller-binary rollback завершены; evidence сохранены. Это не VM-disk DR и не весь V3 roadmap. Lume повторно проверен14:07 UTC: disabled/unloaded/7777closed; rollback files сохранены. Пользователь выполнил одобренную Standard migration. Внешняя проверка подтвердила ровно одно изменение plist — ProcessType Background→Standard, свежий daemon PID65903, прежние signed hashes/config/keys/7 baseline images; API healthy и pool idle. Post-migration exact installed HTTP/freshstdio/version/all4runbooks/status/anonymous401 PASS0.18sec. Receipt `/private/tmp/virfield-standard-migration-external-verification-20261015.json`. GUI f60 layout/URLhandoff/Applepage после свежего запуска PASS; реальный authenticated download отдельно не проверен. Existing HTPC goldens0444/dir0755 оставлены без изменений. Предложение0400/0700 — опциональный hardening, пользователь его не одобрил; для работы VM оно не требуется и не исправляет keychain/reboot. Это не причина незавершённой функциональной приёмки. -После завершения, проверки и push текущей readiness работы пользователь поручил внести в поддерживаемый план и реализовывать пять пунктов: non-destructive lease recovery с identity+SSH revalidation/workspace preservation; durable expected/observed drift+tunnel cause; resource admission arithmetic free/reserved/request/reserve; verified golden transfer между storage; optional legacy iOS Rosetta/Ruby/CocoaPods с FFI/Ethon load checks. Запрос сохранён в private checkpoint; sequencing ещё не достигнут, реализованным не отмечен. Automation virfield-lease ACTIVE15min до завершения расширенной задачи. CI только локально, push только рабочей ветки с skip ci; main/tags/release не менялись. История ниже сохраняет датированный scope. +## Актуальный порядок работ и пять новых пунктов + +[Поддерживаемый repo-план](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/VIRFIELD-3-PLAN.md) полностью обновлён по последнему прямому поручению пользователя; пять пунктов уже внесены, прежнее «sequencing ещё не достигнут» более не действует. Порядок: (1) убрать random account rotation, сохранить `admin/admin` и данные старых образов; (2) диагностировать/исправить macOS27 keychain и Sonoma reboot; (3) local CI/clean exact package/idle install и новая native provider matrix; (4) actual owning MCP и production Broker macos27; (5) дальнейшая реализация feedback. Verified local transfer можно сделать раньше как dependency storage-constrained iPad repeat. + +| Пункт | Текущий пробел | Критерий готовности | +|---|---|---| +| F1: восстановление lease без удаления VM | transient inventory уже сохраняется, но confirmed vm_drift не возвращается ready; operator resolve означает cleanup | Durable exact-lease revalidation identity/provenance/pinned SSH с сохранением VM/workspace/keys/deadline; без Prepare/clone/password rotation; отказ для expired/released/foreign/mismatched/in-flight; workspace hash сохраняется через реальный drift/recovery | +| F2: drift/tunnel diagnostics | warning частично пишет expected/observed, durable event generic и endpoints очищаются; close reason отсутствует | Сохранять expected/observed IP/state/port/time/backend error до перехода; отдельные причины pause/resume/listener close/stream EOF/release/expiry/drift/shutdown/I/O; bounded redacted evidence после cleanup/restart. Историческую причину не выдумывать | +| F3: ресурсный отказ с расчётом | status содержит limits/reserved/free, но disk/node/cache errors не объясняют все слагаемые | Snapshot по host/storage: free, reserved growth, requested full potential size, reserve/headroom, failed constraint; bytes+GB/GiB; CPU/RAM/cache/unknown metrics, consistent CLI/MCP/Console. Причина прежнего отказа при251GB без contemporaneous snapshot не установлена | +| F4: перенос verified golden между storage | Tart cross-container acquire пока запрещён; registry не является переносом managed golden | Journaled destination copy/new identity с capacity/hash/provenance/OS/toolchain checks и atomic registration; source сохраняется, interrupted copy quarantined; реальный Monterey/Xcode transfer и native/reboot/workload/artifact/release; source delete только по отдельному разрешению, без upload private golden | +| F5: optional legacy iOS profile | успешные ручные armv7 builds не являются reusable profile | Opt-in Monterey12.7.6/Xcode13.4.1, Rosetta только AppleSilicon, pinned compatible Ruby/CocoaPods/architecture, actual FFI/Ethon native load и representative armv7 build/lockfiles | + +Все пять — **planned, не implemented**. Полный V3 (Orchard live pool, node-agent/grants/APIv3/extension/noVNC/другие providers, soak/VM-disk DR/package-client rollback) отделён от текущей функциональности и её релизной приёмки. Automation virfield-lease остаётся ACTIVE15min; CI только локально, push только рабочей ветки с skip ci, main/tags/release не менялись. История ниже сохраняет только свой датированный scope. ## Runtime и deployment @@ -73,7 +91,7 @@ Factory/private GHCR roundtrip2f23, controller-state restore и signed controlle - 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. -## Исторические checkpoints приёмки (2026-10-14) +## Исторические checkpoints приёмки (2026-10-14 — 2026-10-15) Следующие абзацы сохраняют состояние ранних кандидатов и старых пакетов на дату их проверок. Актуальный installed и открытые gates указаны в начале заметки; последующие датированные PASS по GHCR/restore/rollback заменяют ранние pending, а не противоречат им. diff --git a/work/wiki/apple-browsers/ci-pipeline.md b/work/wiki/apple-browsers/ci-pipeline.md index 2572a46a..53c87c25 100755 --- a/work/wiki/apple-browsers/ci-pipeline.md +++ b/work/wiki/apple-browsers/ci-pipeline.md @@ -3,7 +3,7 @@ source: ~/DuckDuckGo/apple-browsers.git/main/.github/workflows/ confidence: 1 namespace: work last_updated: '2026-04-28T00:00:00.000Z' -virfield_updated: '2026-10-14' +virfield_updated: '2026-10-15' tags: - ci - github-actions @@ -134,9 +134,14 @@ execution and result collection belong to Runner/Executor, using the VM's local disk. See [[work/wiki/apple-browsers/vm-ui-testing]] for the current flow and [[personal/projects/virfield]] for the release and installation reference. -The new Broker/Runner → apple-browsers UI-test integration is not yet accepted. -The current Virfield recipe targets macOS 27/Xcode 27+, so equivalence with the -project's CI/Xcode version must be checked explicitly for the chosen branch. +The full Broker/Runner → apple-browsers UI-test integration is not yet accepted. +The UI-test profile `uitest-27-v1` targets macOS 27/Xcode 27; other configured +Virfield profiles have their own OS/Xcode evidence. On 2026-10-15 installed f60 +failed standalone macOS 27 native login-keychain qualification, and the production +Broker repeat remains open. The operator requires standard `admin/admin` without +automatic random account-password rotation; that implementation is still pending. +Match the selected branch's CI/Xcode requirements explicitly; historical profile +qualification and other OS passes do not establish the current full UI workflow. ### Key notes diff --git a/work/wiki/apple-browsers/vm-ui-testing.md b/work/wiki/apple-browsers/vm-ui-testing.md index 0ec389c1..2de5b8f4 100755 --- a/work/wiki/apple-browsers/vm-ui-testing.md +++ b/work/wiki/apple-browsers/vm-ui-testing.md @@ -2,18 +2,20 @@ source: 'https://github.com/mallexxx/virfield/tree/codex/retire-lume-release-hardening' confidence: 1 namespace: work -last_updated: '2026-10-14' +last_updated: '2026-10-15' tags: - ui-testing - vm - virfield - xcode -virfield_updated: '2026-10-14' +virfield_updated: '2026-10-15' --- # VM UI Testing — Virfield Host manager — Virfield на Go; текущий runtime — Tart + SSH nodes. Опубликованный релиз, установленный кандидат, проверенная матрица OS/Xcode и незакрытые release gates различаются; их актуальный статус — только в [[personal/projects/virfield]]. Эта заметка описывает границу UI-test integration; установка, API/MCP и команды поддерживаются в [Operations](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/OPERATIONS.md). +Обновление2026-10-15: standard VM account — `admin/admin`, автоматическую случайную rotation пользователь отменил. Изменение ещё не реализовано в source/installed f60; ранее secured images могут содержать generated passwords. Native GUI/new SSH key storage, unlocked console, pinned key-only SSH и key isolation остаются обязательны. macOS27 f60 сейчас дважды не прошла standalone native login-keychain qualification; production Broker/macOS27 repeat открыт. Старый UI-test profile PASS не закрывает этот новый отказ. + ## Поток UI-теста 1. Получить lease подготовленного image с отдельным caller-owned SSH public key через CLI/API или MCP `vm_acquire`; дождаться состояния `ready`. @@ -30,7 +32,7 @@ Virfield управляет VM и соединением, а не выполня - Локальный Tart pool: максимум две macOS VM в текущем deployment с учётом внешних VM и reservations; удалённые ноды имеют отдельные slots; `capacity_exhausted` — повод поставить run в очередь Broker. - Успешный acquire означает принятый job, не готовность гостя. Использовать lease только после `ready`. - Recipe не монтирует host shared folders. Build workspace находится в VM; личные host SSH keys и provider credentials не запекаются в golden. -- Full UI-test profile `uitest-27-v1` проверен на macOS 27 build `26A428` и требует Xcode 27+. Кандидат поддерживает выбор версий через каталог; реально принятые сочетания перечислены в карточке Virfield и Verification. Совместимость с конкретной веткой apple-browsers проверяется отдельно. +- Full UI-test profile `uitest-27-v1` имеет историческую приёмку на macOS27/26A428, но текущая macOS27 qualification f60 не принята из-за native login-keychain failure. Нужен исправленный exact installed candidate и свежий Broker/UI-test прогон; успех Monterey/Sequoia не заменяет этот gate. Совместимость OS/Xcode с выбранной веткой apple-browsers проверяется отдельно. - Реальный golden/clone E2E Virfield прошёл на одном Mac. Это не подтверждение XCUITest run для apple-browsers через новый Broker/Runner. ## Ссылки