6.5 KiB
Execution Broker — текущий локальный контур
Проверено: 2026-10-12, 23:32 Бишкек. Репозиторий: /Users/admin/Developer/execution-broker.
Состояние приёмки
Исходники сохранены и запушены в codex/telegram-approvals, HEAD 91a592b. Broker развёрнут как execution-broker:production-91a592b, /healthz возвращает 0.1.0-rc.23+91a592b. Main пока 2ef0675: перенос выполняется после сквозной проверки. Полный make check и Callee adapter checks прошли; последний коммит меняет только документацию.
Сквозной прогон: run-207e0e159b6bb53b2a383b130d70e49f, Story eb-bae3eaa3bfcaeb17678c1bc7: Claude на disposable macOS 27 VM, новый локальный Go CLI. Успех, публикация кода и закрытие Story пока не подтверждены. Предыдущий прогон прошёл компиляцию и тесты, но был отклонён quality gate из-за отсутствующего контекста одобрения/detached checkout и неполной проверки README; эти требования исправлены в authored workflow. Реальная доставка причины ошибки и отдельного cleanup=done подтверждена в исходном Mattermost-треде.
Конфигурация и перезапуск
- Действующий Compose-файл:
/Users/admin/Developer/execution-broker/state/deploy/compose.production.json(приватный, не коммитить). Это полный снимок действующей конфигурации вместо цепочки временных override. - Broker config:
state/deploy/broker.json; worker config:state/deploy/worker.json; bootstrap assets:state/deploy/assets. - Контейнеры Broker/gateway/Prism:
execution-broker-broker-1,execution-broker-worker-1,execution-broker-prism-1. Balda:balda-mm-mac. - Применение выбранного образа:
docker-compose -f state/deploy/compose.production.json -p execution-broker up -d --no-deps brokerиз каталога репозитория. Изменение Git само по себе ничего не разворачивает. - Перед изменением активной конфигурации сохранять образ, config и согласованный Broker backup; не прерывать чужие задачи.
Одобрения
telegram_approvals.enabled=true и выбранная исходная сессия: запрос только в @balda_approval_bot; при выключенном Telegram — в исходном канале Balda. Результат, причина сбоя и очистка приходят в исходный Mattermost-тред. Original execution_respond сохранён для восстановления. Токены находятся только в приватных secret-файлах.
Бот отправляет одно читаемое сообщение с кнопками. Длинный план явно помечен как preview; полный файл отправляется только по кнопке «Полный план». Просмотр не одобряет задачу. Reply на сообщение с кнопками передаёт замечания к плану: до трёх доработок в том же run с повторным одобрением. Обычное сообщение или Reply на вложение не считается ответом. Для ACP permission нужно выбрать предложенный вариант, для остановки — «Отменить задачу».
Это одобрения Broker workflows и worker ACP. Прямые ACP-запросы хостовых агентов Balda и operator grants для существующих папок/managed hosts — отдельные механизмы. Контекстный субагент для autoapproval остаётся плановой работой.
Автоматическое окружение и качество
Новые Broker-managed проекты не требуют ручного allowlist в каждой VM: Broker выводит guest config для своей Git namespace, а run-bound Git capability ограничивает доступ конкретным проектом. Digest пакета и версии workflow проверяются до запуска.
Go 1.26.9 Darwin ARM64 автоматически загружается Broker, проверяется по SHA256, кешируется и устанавливается только в disposable VM. Golden image и пользовательский Mac не меняются. SDK wrapper задаёт правильный GOROOT и доступные права каталогов.
Detached HEAD — штатный checkout закреплённой ревизии; локальные коммиты сохраняются в commits.bundle. Одобрение — факт workflow journal, переданный subsequent roles, а не файл в репозитории. Quality gate требует выполненных проверок и отсутствия нерешённых findings. exit_code должен совпадать с expected_exit_code (по умолчанию 0); ожидаемая ошибка CLI допустима только с явным ожиданием и evidence. Сборка/test suites ожидают 0.
execution_diagnostics проверяет checksum артефактов и извлекает bounded причину из callee.log, даже без quality.json. Cleanup, завершившийся во время отложенной доставки terminal, получает отдельное уведомление; более поздний receipt не скрывает его.
Подробные контракты: docs/telegram-approvals.md, docs/operations.md, docs/protocol.md, docs/testing.md. Будущие host permissions, SSH command catalog, iPad и прочие миграционные задачи — отдельные планы в docs/work-plan.md; они не объявлены реализованными этой приёмкой.