[2026-10-02] eagle: personal/projects/virfield.md
This commit is contained in:
1 parent
7767f9d64a
commit
c0c70f1113
1 file changed
+24
-49
@@ -7,38 +7,27 @@ tags: [virfield, macos, vm, go, infrastructure]
|
||||
---
|
||||
# Virfield — текущий статус и продолжение
|
||||
|
||||
**Следующее действие:** изучить реализацию авторизации и загрузки в исходниках `XcodesOrg/xcodes` и `XcodesOrg/XcodesApp`; затем реализовать в Virfield вход через ссылку для пользователя и автоматическую загрузку Xcode 13.4.1 без ожидания файла в папке хоста.
|
||||
**Следующее действие:** дождаться завершения существующего `job-057b0898f3746df8b12fb8b5c4c34c1c` (macOS 12.6 / 21G115 + Xcode 13.4.1 / 13F100), затем проверить итоговый golden и обычный клон. Не запускать второй образ и не прерывать этот job. Мониторинг ведёт heartbeat `virfield-xcode` раз в 15 минут; отключить после завершённой проверки.
|
||||
|
||||
**Кандидат ещё не production-ready.** Sequoia 15.2 прошла clean portable publish → GHCR pull-back → два обычных clone workload → cleanup. Monterey и реальный Xcode workflow ещё не приняты; release gates ниже остаются.
|
||||
**Текущий результат (2026-10-02 08:16 UTC):** вход на Apple Developer прошёл через native `VirfieldAppleBrowser`; Virfield продолжил точный job. Загрузка Xcode идёт, на 08:16 было 27%, фаза `download_dispatched`. Полная установка, Monterey golden и обычный клон ещё не приняты. Sequoia 15.2 ранее прошла clean GHCR publish → pull-back → два обычных клона/workload → cleanup.
|
||||
|
||||
Эта заметка содержит только актуальное состояние, оставшийся план и действующие pitfalls. История изменений — в Git; API/команды/runbook — в документации репозитория.
|
||||
**Статус выпуска:** кандидат не production-ready. Текущий checkout `codex/versioned-images` / `340c6f9` содержит незакоммиченные изменения по аудиту и Apple auth; они ещё не опубликованы. Установлен локальный кандидат с native browser и Broker plugin `execution-broker@0.1.0-rc.15`; `release.json` указывает фактические бинарники и hashes. Установленный Lume service/CLI: patched `0.5.3-virfield4`. Хранение завершённой истории jobs/events — 30 дней в текущем кандидате.
|
||||
|
||||
## 1. Точка остановки
|
||||
|
||||
| Что | Значение |
|
||||
| Что | Где проверить |
|
||||
|---|---|
|
||||
| Репозиторий | `/Users/admin/Developer/virfield`, [mallexxx/virfield](https://github.com/mallexxx/virfield) |
|
||||
| Рабочая ветка / HEAD | `codex/versioned-images` / `340c6f9` |
|
||||
| Рабочее дерево / публикация | Чистое; 23 локальных коммита поверх `origin/codex/versioned-images` (`58c56db`). Новые изменения не пушились, не сливались в main и не выпускались |
|
||||
| Опубликованная база | `main` / `v2.0.0`, commit `ee3aa1d`; это не текущий установленный кандидат |
|
||||
| Установленный runtime | `689904e`, SQLite schema 6; backup `backup-367abb275292f5367c332f3683714e5a` проверен |
|
||||
| Deployment / VM storage | `/Users/admin/.virfield-v2` / `/Users/admin/.lume`; локальный выбор оператора, не встроенные требования проекта |
|
||||
| API / Lume | `127.0.0.1:7780` / `127.0.0.1:7777` |
|
||||
| Сервисы | `ai.virfield.virfieldd`, `ai.virfield.lume`; запущены от владельца VM |
|
||||
| Hypervisor | Lume API service: `0.5.3-virfield1`; registry CLI: `0.5.3-virfield3` с проверкой ошибок upload и полноты частей; оба закреплённые 0.5.3 |
|
||||
| Пул после E2E | `used: 0`, `available: 2`, активных jobs нет. Другие задачи могут занять пул позднее — проверять заново |
|
||||
| Runtime / storage | `/Users/admin/.virfield-v2` / `/Users/admin/.lume`; API `127.0.0.1:7780`, Lume `127.0.0.1:7777` |
|
||||
| Точный статус job | `virfield -url http://127.0.0.1:7780 -token-file /Users/admin/.virfield-v2/token job job-057b0898f3746df8b12fb8b5c4c34c1c` |
|
||||
| Текущая приёмка и открытые риски | `docs/VERIFICATION.md` и аудит `1-virfield-v2-audit-2026-10-02.md` |
|
||||
| Выпущенная база | `main` / `v2.0.0` — не текущий кандидат |
|
||||
|
||||
**Последняя проверка:** после clean GHCR round-trip и удаления двух временных клонов `used: 0`, `available: 2`, активных jobs нет. `vf-ghcr-sequoia152` и `vf-e2e-sequoia152-r2-20261002` — `image_ready`, остановлены. Lume API service не перезапускался во время активной VM.
|
||||
Фактическую версию сервиса проверять по `release.json` и hashes. Checkout сам по себе сервис не обновляет. Не повторять одноразовые скрипты из `/private/tmp`. Старые SQLite binaries нельзя возвращать поверх новой схемы без процедуры backup/restore из Operations.
|
||||
|
||||
Фактическую версию сервиса проверять по `/Users/admin/.virfield-v2/release.json` и hashes. Коммит checkout сам по себе сервис не обновляет. Runtime обновлён из `689904e` (активный MCP-клиент может требовать переподключения). Resolver установленного API отклоняет неполный старый tag с `registry_invalid` и принимает полный r2. Последний snapshot: `upgrades/recovery-continue-689904e-20261002`. Системный Lume API service остался на предыдущем бинарнике; registry subprocess использует новый проверенный CLI из `image_tools.lume`.
|
||||
|
||||
Схема 5 → 6 уже обновлена с разрешения пользователя и проверенным backup. Старый бинарник со schema 5 нельзя просто вернуть поверх schema 6. Предшествующий snapshot: `backup-ff4570a85e703b595b92a9c2606cf3f3`; снимки каждой замены runtime — в deployment `upgrades/registry-*`. Процедуру backup/restore брать из Operations. Не повторять одноразовые `/private/tmp/virfield-install-*.py` из предыдущего чата.
|
||||
|
||||
## 2. Подтверждённое состояние
|
||||
## 1. Подтверждённое состояние
|
||||
|
||||
Virfield v2 — Go control plane для golden images и одноразовых macOS VM: durable jobs/events, leases, лимит 2 VM, SSH isolation/tunnels, expiry/cleanup, CLI, аутентифицированные HTTP/stdio MCP и встроенная web console. Четыре бинарника: `virfieldd`, `virfield`, `virfield-mcp`, `virfield-lume`. В текущем коде нет v1; архивная реализация хранится только в Git-ветке `v1`.
|
||||
|
||||
Кандидат добавляет каталог версий macOS/Xcode, GHCR resolve/pull/portable publish, security profiles и 17 MCP tools. Это реализованные возможности, а не утверждение о проверке каждой версии macOS/Xcode. MCP содержит `virfield_help` и четыре документационных ресурса; агентский workflow не должен требовать чтения исходников или Obsidian.
|
||||
Кандидат добавляет каталог версий macOS/Xcode, GHCR resolve/pull/portable publish, security profiles и 18 MCP tools. Это реализованные возможности, а не утверждение о проверке каждой версии macOS/Xcode. MCP содержит `virfield_help` и четыре документационных ресурса; агентский workflow не должен требовать чтения исходников или Obsidian.
|
||||
|
||||
### Образы и приёмка
|
||||
|
||||
@@ -53,7 +42,7 @@ Virfield v2 — Go control plane для golden images и одноразовых
|
||||
| Pull-back | Clean job `job-5c0bf72ab62c50355e7eaf94184013b3` закрепил r2 digest и создал `vf-e2e-sequoia152-r2-20261002`, `image_ready`; System/Data unencrypted/unlocked, SIP/SSH/Finder после reboot прошли |
|
||||
| `macos-27-golden` | Сохранён. Ранее принят полный `uitest-27-v1` с Xcode 27.2 beta / 27B5019j на macOS 27 / 26A428; результаты относятся к указанному в Verification кандидату, не заменяют новые versioned/GHCR проверки |
|
||||
| Monterey 12.6 / 21G115 | Принятого golden нет. При FileVault=false оба тома оставались Encryption=true, обычные клоны не доходили до SSH. Неудачный encrypted golden и его два клона удалены |
|
||||
| Xcode 13.4.1 / 13F100 | Каталог/совместимость разрешаются; реальная установка ещё не принята. В `Downloads` и deployment `imports` точного `.xip` при последней проверке нет; требуется авторизованный Apple archive/доступ |
|
||||
| Xcode 13.4.1 / 13F100 | Совместимость подтверждена каталогом; живой job скачивает Apple archive после входа. Установка ещё не принята |
|
||||
|
||||
Первый `vf-ghcr-sequoia152` был получен с operator recovery. Новый r2 golden прошёл полностью clean round-trip без ручного восстановления. Два его обычных клона прошли `TestLiveLeaseSSH` за 67.27 s; оба удалены через API, источник и новый golden сохранены.
|
||||
|
||||
@@ -63,7 +52,7 @@ Virfield v2 — Go control plane для golden images и одноразовых
|
||||
- Удалённые r2 E2E-клоны: `lease-a4a01025e370187507229df4996e4460`, `lease-af2861ac848aca915a42aaa1ff21f7e4`. Ранние клоны: `lease-54c01094abd7c71b4bde58c715ce0095`, `lease-568d0c97a002f56a81fadeea55c2373b`.
|
||||
- Приватные доказательства: `/Users/admin/.virfield-v2/images/image-d99fdbe7a626a10f84a265ab297b38b5/verification.json` и `/Users/admin/.virfield-v2/acceptance-sequoia-clones-20261001.log`. Не копировать credential files в заметки/репозиторий.
|
||||
|
||||
`make check` (race/vet, 23 Python regression checks, deployment checks, docs), build, staticcheck, `go mod verify` прошли. После `04c9f13` повторно прошли `make check`, Go build, Swift registry-integrity test, clean pinned Lume build/checksums/signature и live public GHCR metadata test. Установленный HTTP/stdio MCP: 17 tools/help/status работают, anonymous доступ отклоняется. Gitleaks текущих исходников — без находок. Govulncheck: нет уязвимостей в используемом коде и импортируемых пакетах; одна advisory относится к неиспользуемому пакету требуемого модуля. Ранее были проверки release archive/full Git history/пустого HOME; повторить их для финального релиза.
|
||||
`make check` (race/vet, 23 Python regression checks, deployment checks, docs), build, staticcheck, `go mod verify` прошли. После `04c9f13` повторно прошли `make check`, Go build, Swift registry-integrity test, clean pinned Lume build/checksums/signature и live public GHCR metadata test. Установленный HTTP/stdio MCP: 18 tools/help/status работают, anonymous доступ отклоняется. Gitleaks текущих исходников — без находок. Govulncheck: нет уязвимостей в используемом коде и импортируемых пакетах; одна advisory относится к неиспользуемому пакету требуемого модуля. Ранее были проверки release archive/full Git history/пустого HOME; повторить их для финального релиза.
|
||||
|
||||
### GHCR и клиенты
|
||||
|
||||
@@ -73,28 +62,14 @@ Virfield v2 — Go control plane для golden images и одноразовых
|
||||
|
||||
`image_publish` **пересобирает закреплённый recipe в новой portable VM**, а не выгружает текущий диск golden. Ручные изменения/рабочие файлы исходного golden не экспортируются. Portable build использует публичный bootstrap `lume/lume`, очищает гостевые SSH identities/history, проверяет диск, штатно останавливается, публикует и удаляет собственную временную VM. Import снова изолирует credentials. Публикация текущего приватного managed disk не поддерживается.
|
||||
|
||||
Virfield MCP в Codex и Claude Code ещё не зарегистрирован; это отложено до приёмки кандидата. Balda/Broker могут использовать тот же пул: их состояние и задачи проверять отдельно, чужие VM не останавливать.
|
||||
Virfield MCP зарегистрирован и включён в Codex CLI; полный workflow там ещё не принят. Регистрацию Claude Code и его workflow проверить отдельно после приёмки образа. Balda/Broker могут использовать тот же пул: их состояние и задачи проверять отдельно, чужие VM не останавливать.
|
||||
|
||||
## 3. Хэндоф: авторизация Xcode через ссылку (остановка 2026-10-02)
|
||||
## 3. Хэндоф: Apple Developer → Xcode download (обновлено 2026-10-02)
|
||||
|
||||
**Последнее требование пользователя:** Balda через Mattermost запускает создание Monterey golden с Xcode 13.4.1, присылает ссылку для входа Apple; после прохождения ссылки Virfield должен сам скачать Xcode и продолжить установку. Пользователь **отклонил** предложенное ожидание XIP в папке загрузок хоста. Перед реализацией требуется смотреть код существующих загрузчиков `xcodes`/XcodesApp и добиваться поведения, похожего на OAuth. На этом сессия остановлена по просьбе пользователя; Xcode auth flow не реализован, полный Monterey прогон не готов. Не выдавать архивный импорт или cookie file за исполнение этого требования.
|
||||
|
||||
### Что выяснено и что уже работает
|
||||
|
||||
- Каталог Xcode **уже подключён** в `internal/catalog/catalog.go` через `https://xcodereleases.com/data.json`; macOS IPSW берутся из IPSW.me. `image_catalog` MCP выдаёт доступные версии/совместимость, `image_create` принимает `macos`, точный `xcode`, `security`, `location`, idempotency key и создаёт durable job. Но каталог пока не сообщает отдельно состояние локальной загрузки/установки и ссылку/состояние авторизации. Это нужно добавить и описать для агента.
|
||||
- Для 13.4.1 / 13F100 каталог даёт Apple XIP `https://download.developer.apple.com/Developer_Tools/Xcode_13.4.1/Xcode_13.4.1.xip`, SHA-1 `40e8628555b6231b361471183f3ce17b378036fd`, минимум macOS 12.0. [Xcode Releases](https://xcodereleases.com/) ведёт браузер по `https://developer.apple.com/services-account/download?path=%2FDeveloper_Tools%2FXcode_13.4.1%2FXcode_13.4.1.xip`; неавторизованного пользователя Apple перенаправляет на `idmsa.apple.com`, затем браузер начинает загрузку. Прямой запрос XIP без Apple-сессии ранее возвращал 302 на `/unauthorized/`.
|
||||
- `internal/images/xcode.go` уже умеет резюмируемую прямую загрузку с операторским Netscape cookie file, импорт точного XIP из `image_tools.xcode_archives`, SHA-1, XIP signature, codesign/version/build проверку, распаковку и установку в гостя по SSH (`provision.go`). Если Apple отклоняет прямой запрос, выходит `apple_auth_required`; job требует ручного recovery. **Ссылки, callback и автоматического продолжения после входа нет.** VirtioFS в Monterey 12 не служит готовым решением.
|
||||
- Найден [Homebrew `xcodes`](https://formulae.brew.sh/formula/xcodes) и [исходный проект](https://github.com/XcodesOrg/xcodes); README описывает Apple ID/пароль, 2FA, хранение пароля в Keychain и сессионную загрузку. [XcodesApp](https://github.com/XcodesOrg/XcodesApp) — второй источник для анализа. Это пока только обзор README, **исходный код auth/download не разобран**. Не утверждать, что у Apple есть стандартный OAuth grant для Developer Downloads: официальные Sign in with Apple документы описывают identity, не такой download grant. Нужно проверить точный механизм/ограничения до архитектурного решения, в том числе доступность browser/passkey flow. Не передавать пароль/2FA коды Балде, MCP-агенту, в job/event/log или в URL.
|
||||
- Локальный API Virfield на `127.0.0.1:7780` защищён bearer token, cookies/query tokens не использует; установленный runtime `689904e` старее checkout. Mattermost-ссылка должна работать на машине пользователя и безопасно передавать результат авторизации Virfield; пока не доказано, как отдать браузерную сессию загрузчику без секрета/ручного импорта. Нельзя считать обычный Apple download URL достаточным: он запускает скачивание **в браузере**, а не в daemon.
|
||||
|
||||
### План следующей сессии
|
||||
|
||||
1. Открыть и прочитать исходники `XcodesOrg/xcodes` и `XcodesOrg/XcodesApp`: auth/session, 2FA, cookies, запросы Apple download, redirect и возобновление загрузки. Сравнить с официальным браузерным `services-account/download` flow; документировать подтверждённые возможности и ограничения, не называть его OAuth без реального grant/callback.
|
||||
2. Спроектировать и реализовать **авторизованную ссылку с возвратом управления Virfield** и последующей прямой загрузкой демоном; одноразовое ограниченное состояние, защита от утечки Apple credentials/session, отказ при истечении и restart-safe job. Если Apple не поддерживает такой обмен без ввода Apple ID в сторонний клиент, доказать это исходниками/протоколом и предложить честный эквивалент на согласование до реализации. Не возвращаться самовольно к watcher папки хоста.
|
||||
3. Вывести через MCP/HTTP каталог macOS/Xcode с состояниями «доступно / локально загружено / установлено», совместимостью и параметрами `image_create`; выдать Балде понятные auth actions/link и job progress. Обновить `docs/AGENT-GUIDE.md`, `docs/IMAGE-PIPELINE.md`, `docs/OPERATIONS.md`, embedded `virfield_help` и проверки безопасности/интеграции.
|
||||
4. Прогнать auth/download/install Xcode 13.4.1 на совместимом госте, затем Mattermost → Balda → MCP → ссылка → Apple вход → daemon download → Xcode install. **Отдельный блокер Monterey:** native 12.6 до сих пор даёт `Encryption=true` на System/Data при FileVault Off; clone gate это отвергает. Не ослаблять disk policy и не объявлять полный Monterey golden готовым, пока этот блокер не устранён и не пройдён live E2E.
|
||||
|
||||
Попытка текущей сессии добавить `browser_downloads`/watcher и поля catalog status отменена после явного отказа пользователя; по завершении `git status --short` должен быть пустым, HEAD остаётся `340c6f9`. Новых коммитов, push, deployment и live-прогонов в этой сессии не было. Два заданных уточняющих вопроса (про приемлемость upload и где открывается ссылка) ответа не получили; последний запрет на watcher имеет приоритет. Записи о Xcode в дальнейших разделах этой заметки относятся к старому ручному пути и не означают готовности нового flow.
|
||||
- `image_create` создаёт durable job с точными macOS/Xcode build и security profile; каталог и `image_apple_auth` доступны через MCP. Для неавторизованной загрузки daemon выдаёт одноразовый 15-минутный `deep_link` приложения и HTTP fallback. Balda plugin rc.15 должен показывать прямую кликабельную ссылку и ссылку fallback.
|
||||
- Native `VirfieldAppleBrowser` сразу открывает Apple Developer в WebKit. Вход и 2FA проходят на сайте Apple, без локальной формы пароля. Приложение передаёт daemon только ограниченные download cookies, автоматически закрывает окно после успеха и завершает процесс после закрытия последнего окна. Окно ограничено экраном, меню Edit содержит Cmd+V.
|
||||
- Реальный вход 2026-10-02 возобновил существующий Xcode job. На 08:16 UTC загрузка 27%. Продолжать наблюдать именно `job-057b0898f3746df8b12fb8b5c4c34c1c`; не пересоздавать ВМ. После `image_ready` проверить macOS/Xcode версии, диск, обычный клон, SSH/workload и cleanup. Если job завершится ошибкой, зафиксировать точную фазу и код и исправить причину перед повтором.
|
||||
- Из аудита остаются release gates: Monterey clone при APFS Encryption=true, отдельные source hardening пункты (Recovery VNC password/port, кеш registry layers, crash recovery длительных мутаций), чистый release artifact и acceptance в Codex/Claude/Balda. Подробный статус — `docs/VERIFICATION.md`. Не ослаблять disk gate и не объявлять любое сочетание macOS/Xcode проверенным только по каталогу.
|
||||
|
||||
## 4. Полный оставшийся план
|
||||
|
||||
@@ -102,19 +77,19 @@ Virfield MCP в Codex и Claude Code ещё не зарегистрирован;
|
||||
|
||||
Найти и воспроизвести подготовку Monterey с **реально незашифрованными System и Data**, а не только FileVault Off. [Apple описывает](https://support.apple.com/en-nz/guide/security/sec4c6dc1b6e/web) шифрование APFS на Apple silicon даже при FileVault Off; это согласуется с измеренным Monterey-гостем, но не доказывает, что другой поддерживаемый способ подготовки невозможен. Затем выполнить нормальное клонирование с новой VM identity, SSH/Finder/reboot и security `automation`. Нельзя снимать disk gate, игнорировать black-screen или возвращать отклонённый пользователем workaround сохранения machineIdentifier. Если сочетание неосуществимо в поддерживаемом VZ/Lume, документировать доказанный предел, а не выдавать его за поддержку.
|
||||
|
||||
Получить точный Apple-signed Xcode 13.4.1 / 13F100 через авторизованный доступ/импорт, проверить digest/signature, установку, first launch/license и реальную сборку Swift/Xcode на совместимой macOS. Провести полный versioned OS + Xcode + security → clone → workload → artifact → cleanup. Для других объявляемых поколений macOS расширять evidence matrix реальными прогонами; наличие версии в каталоге не равно E2E-приёмке. Не обещать «любая macOS/любой Xcode» без проверенной совместимости.
|
||||
Дождаться текущей авторизованной загрузки Apple-signed Xcode 13.4.1 / 13F100, проверить digest/signature, установку, first launch/license и реальную сборку Swift/Xcode на совместимой macOS. Провести полный versioned OS + Xcode + security → clone → workload → artifact → cleanup. Для других объявляемых поколений macOS расширять evidence matrix реальными прогонами; наличие версии в каталоге не равно E2E-приёмке. Не обещать «любая macOS/любой Xcode» без проверенной совместимости.
|
||||
|
||||
### 2. Завершить production audit
|
||||
|
||||
Провести финальное review модулей, конфигурации, guest bootstrap/recovery, registry boundary, ошибок/idempotency и документации. Проверить все новые автоматические пути на отсутствие локально зашитых HOME/checkout/credentials. Сборка и установка должны проходить из чистого checkout с другой конфигурацией путей/портов; локальные image tool paths допустимы только как operator config.
|
||||
|
||||
Закрыть либо явно ограничить в release scope оставшиеся VM-mutation crash points, продолжительный soak и VM-disk disaster recovery; SQLite snapshot не заменяет backup/restore VM-дисков. Проверить live rollback/обновление с учётом schema 6. Повторить race/vet/staticcheck/build/dependencies/vulnerability scans, gitleaks всей Git history и чистого release archive. Второй физический Mac ещё не принят. Container routing/TLS/per-principal auth и Broker/Runner/Balda integration — отдельные границы; не приписывать им результаты локального Virfield E2E.
|
||||
Закрыть либо явно ограничить в release scope оставшиеся VM-mutation crash points, продолжительный soak и VM-disk disaster recovery; SQLite snapshot не заменяет backup/restore VM-дисков. Проверить live rollback/обновление с учётом текущей SQLite schema. Повторить race/vet/staticcheck/build/dependencies/vulnerability scans, gitleaks всей Git history и чистого release archive. Второй физический Mac ещё не принят. Container routing/TLS/per-principal auth и Broker/Runner/Balda integration — отдельные границы; не приписывать им результаты локального Virfield E2E.
|
||||
|
||||
### 3. Подключить Codex и Claude, принять агентский workflow
|
||||
|
||||
После приёмки VM/registry кандидата зарегистрировать установленный `virfield-mcp` у Codex и Claude Code по Operations; CLI читает token file, токен не вставляется в prompt/config. Обновить установленные embedded docs. В каждом клиенте проверить discovery/help/status и самостоятельный workflow image/create или acquire → ready → pinned SSH workload → artifact export → release. Проверить общий лимит 2 VM, same-key retry и понятные ошибки.
|
||||
|
||||
Agent guide должен содержать все 17 tools, inputs, job polling, security/version selection, GHCR contract, operator recovery boundary, SSH/SCP и cleanup — так, чтобы агенту не приходилось читать исходники или Obsidian. Проверить взаимодействие с Balda/Broker через их собственную актуальную документацию и реальную сквозную приёмку.
|
||||
Agent guide должен содержать все 18 tools, inputs, job polling, security/version selection, GHCR contract, operator recovery boundary, SSH/SCP и cleanup — так, чтобы агенту не приходилось читать исходники или Obsidian. Проверить взаимодействие с Balda/Broker через их собственную актуальную документацию и реальную сквозную приёмку.
|
||||
|
||||
### 4. Зафиксировать и выпустить принятый результат
|
||||
|
||||
@@ -132,11 +107,11 @@ Agent guide должен содержать все 17 tools, inputs, job polling
|
||||
|
||||
## 6. Где читать дальше
|
||||
|
||||
Каноническая текущая документация находится в локальном checkout (новые коммиты ещё не запушены):
|
||||
Каноническая текущая документация находится в локальном checkout (текущие изменения ещё не закоммичены и не запушены):
|
||||
|
||||
| Источник | Назначение |
|
||||
|---|---|
|
||||
| `/Users/admin/Developer/virfield/docs/AGENT-GUIDE.md` | Полный workflow агента и контракты 17 MCP tools; также `virfield_help` после установки актуальной сборки |
|
||||
| `/Users/admin/Developer/virfield/docs/AGENT-GUIDE.md` | Полный workflow агента и контракты 18 MCP tools; также `virfield_help` после установки актуальной сборки |
|
||||
| `/Users/admin/Developer/virfield/docs/VERIFICATION.md` | Доказательства текущей приёмки, live test commands и release gates |
|
||||
| `/Users/admin/Developer/virfield/docs/OPERATIONS.md` | Deployment, конфигурация, services/MCP, backup, leases/SSH |
|
||||
| `/Users/admin/Developer/virfield/docs/IMAGE-PIPELINE.md` | Catalog/Xcode, golden/security, recovery и зависимости |
|
||||
|
||||
Reference in new issue
Block a user