Files
obsidian-vault/personal/plans/balda-callee-prism-plan.md
T

10 KiB
Executable File
Raw Blame History

Balda / Execution Broker — план приёмки

Проверено: 2026-10-16. Приёмка закрыта в согласованном проверенном объёме; Broker готов к релизу и эксплуатации в принятых конфигурациях. Точные работающие версии и доказательства: 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; добавлены развёрнутое 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 сохранены отдельно и не включены в успешное доказательство.

Принятый объём и ограничения

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/work-plan.md, docs/support.md, docs/recovery.md, docs/executors.md репозитория Broker.

Исторические исследования и PR-дневник сохранены отдельно: personal/projects/archive/balda-callee-prism-plan-through-2026-10-14. Они не описывают текущую установку.