diff --git a/personal/projects/virfield.md b/personal/projects/virfield.md index 514eabf8..9ceb84ad 100755 --- a/personal/projects/virfield.md +++ b/personal/projects/virfield.md @@ -58,6 +58,7 @@ macOS make check/build/Staticcheck прошли; настоящий read-only vo - **Запись экрана**: на `uitest-27-v1` `screencapture -v` работает по обычному SSH; на macOS 12 (`developer-v1`) `capture error`, нет Screen Recording TCC, SIP включён. Если нужна запись на старых VM, нужен golden с заранее выданным разрешением. - **UI automation**: macOS 12 VM — Developer Mode уже включён, sudo без пароля, но `automationmodetool enable-automationmode-without-authentication` нужно выполнить; `ui_testing` проба помогла бы здесь. Для запуска из SSH нужна консольная GUI-сессия (Terminal `.command`). - **`ready` не подтверждает готовность UI Automation — повторно 2026-10-21.** Две свежие VM, `monterey-xcode-13.4.1` (Tart, macOS 12.7.6/21H1320, ARM64, Xcode 13.4.1/13F100) и `htpc-sonoma-14-xcode-16.2` (node VM, macOS 14.8.9/23J631, Intel, Xcode 16.2/16C5032a), получили успешный prepare и lease `ready`. При этом `/usr/bin/automationmodetool` на обеих сообщил `Automation Mode is disabled` и `This device requires user authentication to enable Automation Mode`. Developer Mode был включён, `admin` входил в `_developer`, консольная сессия принадлежала `admin`. XCTest runner загрузился, но запуск через Terminal и напрямую через pinned SSH завершился `Timed out while enabling automation mode`, exit 65, **0 выполненных тестов**. `sudo automationmodetool enable-automationmode-without-authentication` затем сообщил успех; повторная проверка уже показывала `DOES NOT REQUIRE user authentication`, однако проверенный повтор по-прежнему завершился timeout до тестовых методов. Контрольные минимальные UI-тесты, собранные локально штатными SDK Xcode 13.4.1 на Monterey и Xcode 16.2 на Sonoma (без нового bundle и без shim), тоже завершились `Timed out while enabling automation mode`, exit 65, до тестового метода. Поэтому проблема ещё не закрыта, а совместимость исполнения нового bundle этим прогоном не доказана. Нужны явная проверка Automation Mode при UI-readiness, подготовка соответствующего UI-профиля и короткий настоящий XCUITest с ненулевым числом выполненных тестов; native GUI/Keychain readiness этого не заменяет. Leases: `lease-9ec9281c953de634a53572e293862901`, `lease-6994a85f7abcefd367dd40d45b08e87b`. +- **Уточнение UI-readiness, 2026-10-22:** последующая проверка через pinned SSH без Screen Sharing на новых leases `lease-202db9fd4686e87363ac66171657ba21` (Sonoma Intel/Xcode 16.2) и `lease-22c0cfb96e3253d3ed1f7d8ebee6ab77` (Monterey ARM/Xcode 13.4.1) выполнила настоящие native XCUITest probes: 1/1 на каждой OS. На Sonoma один и тот же CI test bundle выполнил PrintingTests 7/7 и с упакованным runtime, и со штатным XCTest 16. На Monterey исправленный AddressBarSearchQueryEditingTests прошёл 26/26 с первой попытки; полный сброс состояния подтверждён только перед первым методом (flags 1 + 25×0). Для старого XCTest потребовались завершение своего target app между процессами, подготовка autocomplete fixture через defaults и отключение вложенного синтеза событий из TCC polling timer. Это снимает утверждение, что UI Automation на этих образах вообще невозможно запустить, но не доказывает первопричину прежнего automation-mode timeout и не заменяет readiness probe в Virfield. Отдельный sandbox запуск Monterey завис в системных Keychain вызовах до создания окна; продолжается диагностика. ARM Sonoma crash из CI не воспроизведён на Intel. Доказательства сохранены в `/tmp/prebuilt-ui-fix-results/` (включая `monterey-final-evidence.tar.gz`, `sonoma-native-runtime-evidence.tar.gz`). - Remote shell zsh: нет `timeout`, `$var` не разбивается на слова — при автоматизации писать скрипты файлами. - Запуск из `xcodebuild test-without-building -xctestrun` по скопированным `Products` (macOS 27) работает; `Scheme`-pre-actions (`clean-app.sh`, `tests-server`) при этом **не** выполняются. - Повторы `vm_acquire` — с новым idempotency key, если меняется ключ SSH/шаблон; тот же ключ и body только для настоящего retry.