[2026-10-15] eagle: personal/plans/balda-callee-prism-plan.md personal/projects/balda/execution-broker.md personal/projects/virfield.md
This commit is contained in:
1 parent
0d4587a5d3
commit
efb351552a
3 files changed
+12
-11
No files matched your search
@@ -20,10 +20,10 @@ Balda ведёт исходную беседу и durable waits; Broker упра
|
||||
|
||||
| Область | Условие завершения |
|
||||
| --- | --- |
|
||||
| Linux Codex | Совместимый nested sandbox при сохранённой изоляции Docker worker; сейчас namespace creation завершается отказом |
|
||||
| Recovery рабочих аккаунтов | Независимый recovery public key или secret store, off-host escrow и проверенное восстановление реальных аккаунтов; рабочие ключи пока не экспортированы |
|
||||
| Linux Codex | Две полные Story и credential reuse/restart Broker/gateway/issuer прошли на `nested-v1`; независимые unit tests и реальные read-only write denials подтверждены. Проверенный gateway и exact worker pin развёрнуты; итоговый production-прогон выполняется |
|
||||
| Recovery после потери хоста | Отдельная гарантия: независимый recovery public key или secret store, off-host escrow и восстановление реальных аккаунтов; рабочие ключи пока не экспортированы. Обычный restart/reuse принят; исправления Virfield/Docker от выбора escrow не зависят |
|
||||
| Provider failure lifecycle | Реальные expiry/upstream revocation и повторная авторизация на отдельных тестовых identity; рабочую Claude-сессию отзывать запрещено |
|
||||
| macOS worker readiness / Codex | Два production-прогона остановились до bootstrap на Virfield guest_keychain_failed; оба lease удалены. Нужны принятая GUI/SSH Keychain readiness текущего контроллера, production Story и Codex denied-write gate |
|
||||
| macOS worker readiness / Codex | Три production-прогона, включая новый контроллер `614daf5`, остановились до bootstrap на Virfield guest_keychain_failed; все три lease удалены. Нужны принятая GUI/SSH Keychain readiness текущего контроллера, production Story и Codex denied-write gate |
|
||||
|
||||
Задачи и их статусы ведутся в локальном Beads/Prism, корневая Story `eb-71b7971ac3fdd03b8ff6b198`. Этот документ задаёт границы приёмки, а не второй backlog. Контракты и команды — в `docs/work-plan.md`, `docs/support.md`, `docs/recovery.md`, `docs/executors.md` репозитория Broker.
|
||||
|
||||
|
||||
@@ -8,10 +8,11 @@
|
||||
| --- | --- |
|
||||
| Репозиторий | `/Users/admin/Developer/execution-broker`, `codex/production-readiness`; основной комплект `fee5409`, Broker hotfix `1b09e0f` |
|
||||
| Broker | `execution-broker:1b09e0f`, версия `0.1.0-rc.32+approval30.1b09e0f`, immutable SHA256 pin в Compose |
|
||||
| Gateway | `execution-broker-gateway:fee5409`, версия `0.1.0-rc.32` |
|
||||
| Gateway | `sha256:f13b362a49100050a1ae8a70db1a9c7a4d7e059dc7d71b413dc29b681ab21f99`, версия `0.1.0-rc.32+nested-sandbox`; проверенный `nested-v1` включён только для `linux-codex-default` |
|
||||
| Prism | `execution-prism-adapter:fee5409`, версия `0.1.0-rc.32` |
|
||||
| Smoke worker | `execution-broker-worker:fee5409`; один SHA256 image pin в Broker и gateway |
|
||||
| OpenCode worker | `execution-broker-executors:workflow-alias-20261015`, image `sha256:99e4c786a47fe03877dd4d8186528a5e4fe8676f5677116f89c8543e1d942734`; одинаковый pin в Broker/gateway, оба workflow `docker/story` и `opencode/story`, Go SDK 1.26.9 |
|
||||
| Codex Linux worker | `sha256:5e8568bd1d8cb57af791ac28647ea6278dec894645da866539d0079ff14d204f`; фиксированный одинаковый pin в Broker/gateway, отдельные enforce-mode AppArmor/seccomp `nested-v1` |
|
||||
| macOS bootstrap | Codex/Claude/OpenCode — три пакета `*-c5f63ef.tar.gz` с исправленным ACP launcher и фильтрацией runtime links; Runner/Callee binaries прежнего комплекта. Xcode — `macos-xcode-fee5409.tar.gz`. SHA256 и rollback config в `state/provider-acceptance-20261015/` |
|
||||
| Оба Balda | Source `6238856b`: upstream `6621b189` + исправление контекста канала; image `balda-balda:upstream-6621b189-channel-fix`; подробности в [[personal/projects/balda/setup]] |
|
||||
| Managed plugin | rc32 у обоих, Enabled=true, Drifted=false; прежние plugin data, revisions и marketplace сохранены |
|
||||
@@ -46,7 +47,7 @@ Managed lifecycle и native wait restart проверены на развёрн
|
||||
- Production service acceptance: настоящий Callee Human → restart Broker/Prism → resume → шесть артефактов с проверенными SHA256 и provenance Git cache → `succeeded`, `cleanup=done`; Task и Story закрыты.
|
||||
- Реальная Balda-сессия: исправленный Mattermost-контекст → durable waits → Broker smoke → фактический Telegram approval → шесть скачанных артефактов с проверенными SHA256 → `cleanup=done` → итог в исходной Mattermost-беседе. Доставка и отсутствие дубликата подтверждены readonly API.
|
||||
- Настоящая macOS VM: verified Go archive через scoped tunnel, `tooling.json`, один XCTest без ошибок и сохранённый xcresult; восемь артефактов с проверенными SHA256, включая `repository.json`, VM cleanup подтверждён.
|
||||
- Codex на macOS: две полные Story на свежих VM, включая restart Broker/issuer и восстановление того же run; quality, SHA256 всех артефактов, независимый повтор unit tests, credential checkpoint и cleanup подтверждены без нового OAuth. Две последующие production-попытки остановились до bootstrap на Virfield guest_keychain_failed; оба lease released, cleanup=done. До новой приёмки GUI/SSH Keychain текущего контроллера production macOS gate остаётся открытым. Изолированный успех не считается завершением этой проверки.
|
||||
- Codex на macOS: две полные Story на свежих VM, включая restart Broker/issuer и восстановление того же run; quality, SHA256 всех артефактов, независимый повтор unit tests, credential checkpoint и cleanup подтверждены без нового OAuth. Три последующие production-попытки, включая обновлённый контроллер `614daf5`, остановились до bootstrap на Virfield guest_keychain_failed; все три lease released, cleanup=done. До новой приёмки GUI/SSH Keychain текущего контроллера production macOS gate остаётся открытым. Изолированный успех не считается завершением этой проверки.
|
||||
- Реальные Make/C, Python, Node и JVM проекты на macOS и Linux; Docker builder/Runner/Callee cache hit и изменение Node SDK; durable смена окружения с двумя рестартами и одним выполнением внешнего действия; отдельная проверка реального `go run` при `/tmp noexec`.
|
||||
- Artifact input transfer/restart/cleanup и установка из Linux ARM64 release archive без исходников и Go прошли.
|
||||
- Runtime archives: все четыре платформы — native. Linux AMD64 проверен на физическом htpc x86_64; Darwin AMD64 — на MacBook Pro 13″ 2014, Intel i5-4278U, macOS 12.6.8 (21G725), Python 3.8.9 через pinned Virfield SSH. Оба AMD64-прогона проверили семь binaries, MCP/auth rejection, synthetic vault import/revoke, SQLite backup и graceful shutdown; рабочие provider credentials не использовались.
|
||||
@@ -57,9 +58,9 @@ Managed lifecycle и native wait restart проверены на развёрн
|
||||
|
||||
| Область | Что остаётся |
|
||||
| --- | --- |
|
||||
| macOS worker readiness | Две production-попытки после обновления bootstrap остановились на Virfield guest_keychain_failed до выполнения Runner/Callee. Обе VM удалены штатно. Нужны повторная приёмка GUI/SSH Keychain текущего Virfield и итоговая production Story; прежние изолированные успехи этот gate не закрывают |
|
||||
| Recovery | Выбран порядок: unattended восстановление рабочих ключей из защищённой копии, затем OAuth при неудаче восстановления/refresh. Production escrow ещё не настроен: нужен независимый recovery public key или secret store. Подготовлен helper для GPG escrow исходных master keys и безопасного восстановления key-files/Keychain; шесть тестов с синтетическими ключами прошли, включая восстановление encrypted vault, отказ при порче/чужом recipient и запрет замены существующего ключа. Рабочие master keys не экспортировались; production host-loss recovery не принят |
|
||||
| Docker providers | Linux OpenCode/DeepSeek прошёл две полные Story на свежих workers: реальные роли, повторное выполнение quality assertions, SHA256 всех артефактов, restart Broker/issuer, credential checkpoint/reuse, `cleanup=done`, без нового OAuth. Linux Claude также прошёл две полные Story на свежих workers, включая restart Broker/issuer: шесть ролей, независимый повтор unit tests, SHA256 семи артефактов каждого запуска, checkpoint и cleanup подтверждены; новый OAuth не понадобился. Linux Claude прошёл также component-проверку: фактический permission-handler обеих read-only ролей отклонил инъецированные ACP-запросы записи; marker не создан. Expiry/upstream revocation остаются открыты. Linux Codex блокируется sandbox текущего Docker host: bubblewrap не может создать user namespace при сохранённых cap-drop/read-only/no-new-privileges и default seccomp/AppArmor. Это воспроизведено offline без credentials. Отдельная enforce-mode namespace-политика не решила конфликт с Docker proc masks; legacy Landlock в pinned Codex также требует bubblewrap для изоляции app-server sockets. Контроли с отключёнными защитами не приняты. Тестовый профиль удалён, production guards сохранены. Исправления OAuth cache/ACP launcher закоммичены в c5f63ef и проверены на macOS; production macOS bootstrap обновлены, Docker gateway candidate не установлен; Story/reuse/restart ещё не приняты; для Linux OpenCode — upstream revocation. Проверка запрета записи OpenCode прошла на Linux и свежей macOS VM: обе read-only сессии получили прямые ACP-запросы записи, Callee отклонил их, marker отсутствовал; native plan policy не менялась. Это protocol fault injection, а не попытка tool call, выбранная моделью |
|
||||
| macOS worker readiness | Три production-попытки после обновления bootstrap, включая новый контроллер `614daf5`, остановились на Virfield guest_keychain_failed до выполнения Runner/Callee. Все три VM удалены штатно. Нужны повторная приёмка GUI/SSH Keychain текущего Virfield и итоговая production Story; прежние изолированные успехи этот gate не закрывают |
|
||||
| Recovery | Выбран порядок: unattended восстановление рабочих ключей из защищённой копии, затем OAuth при неудаче восстановления/refresh. Это отдельная гарантия восстановления после потери хоста/Keychain; обычный restart и повторное использование авторизаций уже проверены. Production escrow ещё не настроен: нужен независимый recovery public key или secret store. Отсутствие escrow не блокирует исправления Virfield/Docker. Подготовлен helper для GPG escrow исходных master keys и безопасного восстановления key-files/Keychain; шесть тестов с синтетическими ключами прошли, включая восстановление encrypted vault, отказ при порче/чужом recipient и запрет замены существующего ключа. Рабочие master keys не экспортировались; production host-loss recovery не принят |
|
||||
| Docker providers | Linux OpenCode/DeepSeek прошёл две полные Story на свежих workers: реальные роли, повторное выполнение quality assertions, SHA256 всех артефактов, restart Broker/issuer, credential checkpoint/reuse, `cleanup=done`, без нового OAuth. Linux Claude также прошёл две полные Story на свежих workers, включая restart Broker/issuer: шесть ролей, независимый повтор unit tests, SHA256 семи артефактов каждого запуска, checkpoint и cleanup подтверждены; новый OAuth не понадобился. Linux Claude прошёл также component-проверку: фактический permission-handler обеих read-only ролей отклонил инъецированные ACP-запросы записи; marker не создан. Expiry/upstream revocation остаются открыты. Linux Codex прошёл две полные Story на свежих workers с `nested-v1`: все шесть ролей, quality, независимые unit tests (4/4 и 3/3), SHA256 артефактов, restart Broker/gateway/issuer, checkpoint/reuse и cleanup. Штатный Codex fallback сохраняет Docker proc masks; отдельные AppArmor/seccomp профили сохраняют non-root, cap-drop, read-only root и no-new-privileges. Реальная попытка записи в read-only workspace отклонена. Исправление `f9ca7c3`, gateway развёрнут с точным worker pin; итоговая production Story выполняется. Default Docker policy не поддерживает нужные namespaces. Expiry/upstream revocation остаются отдельными gates. Проверка запрета записи OpenCode прошла на Linux и свежей macOS VM: обе read-only сессии получили прямые ACP-запросы записи, Callee отклонил их, marker отсутствовал; native plan policy не менялась. Это protocol fault injection, а не попытка tool call, выбранная моделью |
|
||||
| Provider lifecycle | Для macOS Claude не закрыта реальная expiry/upstream revocation; для macOS OpenCode/DeepSeek — upstream revocation; component-проверка фактического ACP-запрета записи обеими read-only ролями прошла на свежей VM с неизменённой native policy. Claude умеет сохранить явный отказ native cache как reauthentication-required и запросить OAuth при следующем admission; это не доказательство реальной provider-приёмки |
|
||||
|
||||
Источник требований — `docs/work-plan.md`. iPad, прикладные UI/PR workflows и права Obsidian принадлежат вызывающему проекту или Balda.
|
||||
|
||||
@@ -12,7 +12,7 @@ tags:
|
||||
---
|
||||
# Virfield — текущее состояние
|
||||
|
||||
Актуально на 2026-10-15: installed и pushed HEAD `614daf59cbabe2a56085e7c188ffca0e212b3f2d`, ветка `codex/retire-lume-release-hardening`; рабочие browser/SSH diagnostic fixes пока не закоммичены. Installed version `0.0.0-keychain-cache-refresh`, daemon PID98102. Установка выполнена в полностью idle pool с приватным backup, прежними signing/FDA identity, config/keys и всеми семью baseline images/manifests. Archive SHA256 `46af5d84ca32bc60871dec884a1da5166909ea4d42b5e0d3ad12525025750090`. Exact archive stdio18tools/all4runbooks/resources/status PASS; installed HTTP/freshstdio exact version/all4runbooks/resources/status/anonymous401 PASS1.21sec. Пользователь подтвердил Restart Virfield MCP, но последующий реальный owning-client help всё ещё вернул `Transport closed`; этот gate открыт.
|
||||
Актуально на 2026-10-15: installed code `f60efe3310cd3806c18481b5d22089c421849f8b`, version `0.0.0-browser-transport-trace`, daemon PID56593. Source/pushed HEAD `50a0a80` — только актуализация Verification после установки; guest/browser/SSH код не менялся. Ветка `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 открыт.
|
||||
|
||||
Полная 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`.
|
||||
|
||||
@@ -22,7 +22,7 @@ tags:
|
||||
|
||||
Пользователь подтвердил 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; новый GUI layout ещё не проверен после установки.
|
||||
|
||||
Working tree содержит browser fixes и private fixed-DesktopProbe SSH trace (channel-open / exec acknowledgement / command exit, original transport/context errors, без command/input). Три real stalled-SSH fixtures и forwarded-timeout regressions PASS. Full localCI и pinnedStaticcheck запущены; новый clean package ещё не установлен. Installed/source614 гостевая политика и daemonPID98102 пока прежние. Для Standard service migration отдельно запрошено admin approval; Mac unlock не подменяет его.
|
||||
Browser fixes и private fixed-DesktopProbe SSH trace входят в clean/pushed/installed f60efe3. Три real stalled-SSH fixtures и forwarded-timeout regressions, full localCI17Python+Govet/fullrace, pinnedStaticcheck0.7.0, Gitleaks229commits PASS. Archive SHA256 `941da8a267107103918ddc553290419f104148f5bebb7503917b130328265c00`; exact archive stdio PASS, installed HTTP/freshstdio exactversion/all4runbooks/resources/status/anonymous401 PASS1.22sec. Установка уже была выполнена; финальный private installer postcheck ошибочно требовалavailable от удалённого собственного catalog template. Read-only resume проверил staged/installed signed hashes, прежнюю Teamidentity, config values и все7 baseline manifests, без повторного deployment/restart. Receipt в upgrades/*-f60efe3/installed.json; sourcefixedGUI ещё требует visual QA.
|
||||
|
||||
Предыдущий installed03b0d23 не прошёл обе Sonoma и Monterey: native login-rekey возвращал-25293; все собственные fixtures released+revoked. Поздний diagnostic trace подтвердил быстрый exit65 Aqua agent, затем лишние пять минут ожидания installer. Прежний wait НЕ доказывал зависание CLI/native API. Отдельный trace опроверг stale Quartz hypothesis: SSH caller следует за реальным root/waiting→admin/desktop login. Исходная причина раннего Sonoma SSH preflight и исторического vm_drift пока не установлена.
|
||||
|
||||
@@ -34,7 +34,7 @@ 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 сохранены. Actual root launchd ещёBackground; Standard migration требует отдельного admin/unlock ответа. Mac unlock подтверждён; GUI launch/URL handoff/Apple page проверены. После browser source fixes требуются новый пакет и visual repeat. 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 сохранены. Actual root launchd ещёBackground; пользователь явно разрешил Standard migration. sudo-n требует пароль, CUA запретил Terminal; пользователю выдана точная команда для ручного локального исполнения. До её исхода не создавать VM/не выполнять параллельный restart и не перехватывать GUI focus. Mac unlock подтверждён; GUI launch/URL handoff/Apple page проверены. После browser source fixes требуются новый пакет и visual repeat. Existing HTPC goldens0444/dir0755 требуют отдельного pending approval на0400/0700; общее продолжение и MCP Restart этого не заменяют.
|
||||
|
||||
После завершения, проверки и 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.
|
||||
|
||||
|
||||
Reference in new issue
Block a user