13 KiB
Executable File
Balda / Execution Broker — план приёмки
Проверено: 2026-10-16. Приёмка закрыта в согласованном проверенном объёме; Датированные доказательства принятого контура сохранены; текущая сверка обновления и её macOS gate описаны ниже. Точные работающие версии и доказательства: personal/projects/balda/execution-broker. Запуск двух Balda: personal/projects/balda/setup.
Контур
Balda ведёт исходную беседу и durable waits; Broker управляет admission, одноразовым worker, credentials, deadline и артефактами. Callee выполняет закреплённый workflow через выбранный ACP executor. Prism проецирует факты выполнения в локальные Story/Task Beads. Прикладные iPad/UI-сценарии и права Obsidian относятся к вызывающему проекту и Balda.
Подтверждено
-
Оба Balda обновлены, общие инструменты и policy выровнены; Eagle дополнительно имеет Asana readonly. Модели, аккаунты и история сохранены.
-
Native runtime archives проверены на Darwin/Linux ARM64/AMD64, включая физический Intel Mac с Monterey и физический Linux x86_64.
-
Generic tooling для Make/C, Python, Node, JVM и Go, immutable repository cache, artifact inputs и opt-in environment checkpoints реализованы и проверены.
-
Реальная Mattermost-беседа прошла owner approval через Telegram, outage/restart, возврат в ту же сессию, проверенные артефакты и cleanup.
-
Linux Claude/OpenCode прошли реальные Story и reuse/restart. Linux Codex прошёл две изолированные Story с restart Broker/gateway/issuer и финальную Story через production Broker/Prism;
nested-v1сохраняет Docker guards и реально блокирует read-only запись. Gateway и exact worker pin развёрнуты. Codex также прошёл две более ранние Story на свежих macOS VM, включая restart Broker/issuer. Тесты из артефактов выполнены независимо. -
Read-only permission-handler Claude/OpenCode отклоняет инъецированные ACP-запросы записи; тестовый файл не создаётся. У OpenCode native plan policy не менялась.
-
Исправленные macOS bootstrap развёрнуты; прежние архивы и конфиг сохранены для отката. Подготовлен защищённый GPG escrow; шесть тестов используют синтетические ключи.
-
Production macOS27/Codex принят на Virfield
8bfff9f: фактический owner-approved continuation, revieweros.open→ EPERM, восемь заново скачанных SHA256-проверенных артефактов, независимый повтор четырёх тестов, закрытая Prism Story, credentials свободны и cleanup подтверждён. Приватное доказательство:state/broker-acceptance-20261016/verification.json. Задача.6.4закрыта; старые неудачные попытки сохранены как история. -
Reviewer fix
6c70647включён в запушенный Broker main13c29ac; добавлены развёрнутое Darwin zombie-group исправление и native regression. Исходный workflow совпадает с принятым macOS packb09f2be2. В этом macOS прогоне ключи не экспортировались; последующая разрешённая recovery-проверка описана ниже. -
Linux rollout и production-приёмка нового image
e9e1ab5e8c0fзакрыты: одинаковыйb09f2be2в Broker/gateway/worker, два успешных прогона с независимым повтором 4/4 тестов, проверенные SHA256 артефактов. Отмена во время implementer сохранила пять артефактов и checkpoint. Restart Broker/gateway/issuer сохранил тот же run/deadline/owner; после успеха credentials освобождены, собственных container/volume нет, Prism Story закрыта и повторный sync пуст. Beads.6.5closed;.6.4macOS также closed. -
Реальная natural expiry Claude на Docker проверена 2026-10-16: исходный access token истёк 2026-10-15, свежий worker обновил сессию и выполнил specify/design/breakdown; до реализации run отменён, новый cache того же account/organization checkpointed, owner освобождён, пять SHA256-проверенных артефактов, cleanup=done, ресурсов нет.
state/broker-acceptance-20261016/claude-expiry-verification.json. Upstream revocation и повторный browser login этим не проверены. -
Итоговые source gates:
make check/race/vet, Callee adapter, Staticcheck 0 findings, source/binary vulnerability checks, secret scans source/трёх наборов артефактов, сборка семи binaries на четырёх OS/arch targets прошли. Результаты:state/broker-acceptance-20261016/production-cycle-final.json. -
Recovery реальных аккаунтов после потери Mac/Keychain принят 2026-10-16: с явным разрешением владельца GPG-копия трёх исходных master keys и matching encrypted vault сохранена на независимом HTPC. На физическом Linux AMD64 без исходного Keychain восстановлены все три identity, native rc33 issuer прошёл issue/checkpoint/release, authenticated read-only API каждого провайдера ответил HTTP 200. Исходные аккаунты/vault не изменены, временные plaintext key-files удалены. Копия и restore software сохранены вне lease workspace (0700/0600). Доказательства:
state/broker-acceptance-20261016/offhost-working-restore-verification.json,offhost-retention-verification.json..4закрыта. -
Релизный кандидат
0.1.0-rc.33, sourceae92c15: четыре runtime archives и plugin собраны отдельно от rc32; все четыре платформы прошли native binary-only checks, включая физические Intel Mac/Linux AMD64.make check/race/vet и SHA256 прошли.state/broker-acceptance-20261016/rc33-release-verification.json. Публикации не было. -
Контролируемые provider failure checks на Linux с synthetic credentials прошли для Codex/Claude/DeepSeek; все собственные контейнеры/volumes удалены, артефакты проверены по SHA256 и secret scanner.
state/broker-acceptance-20261016/provider-refusal-verification.json. Ошибки подготовки fixture сохранены отдельно и не включены в успешное доказательство.
Сверка main и production — 2026-10-16
Broker/Prism/gateway и native issuers обновлены до rc34 из запушенного main 13c29ac; Callee — чистый upstream 95f7f11, оба Balda — чистый upstream 3a58254. Core binary hashes и Runner/Callee во всех четырёх Linux images и четырёх macOS bootstrap packs сверены. Broker/Prism MCP доступны из обоих Balda; exact Linux worker прошёл Callee/Human/restart/artifacts/cleanup в изолированном fixture. State, sessions, home volumes, config и auth сохранены.
В Broker локально и на origin только main. Завершённые ветки удалены по явному разрешению владельца после проверки содержимого; отсутствовавшие installer/workspace настройки перенесены до удаления. Git bundle не создавались. Планы и личные журналы убраны из tracked source и перенесены с обратным чтением в personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/index.
Опубликованный Virfield v2.1.0 установлен и выявил два fresh macOS preparation failures, оба leases released. Исправление launchctl bootstrap собственного GUI-agent уже в запушенном Virfield main 2c64888. Точный неопубликованный кандидат v2.1.1 прошёл source/package gates и отдельную fresh VM с native GUI/Keychain/SSH; эта VM released. Полный Broker → macOS XCTest на новом комплекте завершился успешно: run-3b679ccc08ae5aafb94643d60f0410dd, 1/1 XCTest, настоящий xcresult, все скачанные артефакты сверены, Story closed, cleanup=done/lease released. Установленный MCP2.1.1 и нулевой active pool проверены. GitHub CI Virfield 2c64888 зелёный на macOS/Linux. Публикация готового v2.1.1 пока ожидает подтверждения; его нельзя называть опубликованным релизом.
GitHub Actions Broker main не стартовал из-за account billing/spending limit; это не ошибка workflow. Локальный make check прошёл, удалённый CI не объявляется зелёным. Точные версии и результаты — personal/projects/balda/execution-broker и personal/projects/virfield. Приватные receipts текущей сверки: state/main-production-sync-20261016/.
Принятый объём и ограничения
2026-10-16 владелец явно согласовал закрытие в проверенном режиме: «Да, закрыть в проверенном режиме». Это изменение границ приёмки. Корневая Story eb-71b7971ac3fdd03b8ff6b198, .6 и .6.6 закрыты после проверки результатов; все дочерние задачи закрыты. Блокирующих пунктов в согласованном объёме нет. Публикация релиза не выполнялась.
| Область | Принято / ограничение |
|---|---|
| Provider failure lifecycle | На отдельных synthetic vault проверены реальные native отказы Codex (HTTP 401/token_expired), Claude (Authentication required + reauthentication_required) и DeepSeek (invalid API key), сохранение артефактов, credential settlement и cleanup. Natural expiry/refresh Claude на Docker принята отдельно. Реальный отзыв существующих авторизаций у провайдеров и последующий browser login не выполнялись и явно исключены владельцем из закрываемого объёма; остаются непроверенным ограничением, а не пройденным тестом. Linux failure checks не доказывают macOS failure lifecycle |
Итог: state/broker-acceptance-20261016/final-release-readiness.json; закрытие Beads — beads-acceptance-closure.json. Финальный rc33 ae92c15 содержит согласованную документацию; exact archives прошли четыре нативные проверки, make check и SHA256. Рабочие аккаунты не изменены, тестовые ресурсы очищены. Независимая recovery-копия сохранена вне тестовых leases; её проверенный runtime — исходный rc33 d296c73, до финального документационного commit.
Задачи и их статусы ведутся в локальном Beads/Prism, корневая Story eb-71b7971ac3fdd03b8ff6b198. Этот документ задаёт границы приёмки, а не второй backlog. Контракты и команды — в docs/support.md, docs/recovery.md, docs/executors.md репозитория Broker. Исходный work-plan перенесён из Git в personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/docs/work-plan.
Исторические исследования и PR-дневник сохранены отдельно: personal/projects/archive/balda-callee-prism-plan-through-2026-10-14. Они не описывают текущую установку.