53 lines
13 KiB
Markdown
Executable File
53 lines
13 KiB
Markdown
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, reviewer `os.open` → EPERM, восемь заново скачанных SHA256-проверенных артефактов, независимый повтор четырёх тестов, закрытая Prism Story, credentials свободны и cleanup подтверждён. Приватное доказательство: `state/broker-acceptance-20261016/verification.json`. Задача `.6.4` закрыта; старые неудачные попытки сохранены как история.
|
||
- Reviewer fix `6c70647` включён в запушенный Broker main `13c29ac`; добавлены развёрнутое Darwin zombie-group исправление и native regression. Исходный workflow совпадает с принятым macOS pack `b09f2be2`. В этом 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.5` closed; `.6.4` macOS также 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`, source `ae92c15`: четыре 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|архив 11 документов]].
|
||
|
||
Опубликованный 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]]. Они не описывают текущую установку.
|