Files
obsidian-vault/personal/projects/balda/execution-broker.md
T

7.4 KiB
Raw Blame History

Execution Broker — эксплуатация

Проверено: 2026-10-15 по исходникам, работающим контейнерам и локальным проверкам. Полная release-ready приёмка ещё не завершена.

Развёрнутый комплект

Компонент Текущее состояние
Репозиторий /Users/admin/Developer/execution-broker, codex/production-readiness, HEAD 18b224a; исходники закоммичены
Broker execution-broker:a260a9a
Gateway execution-broker-gateway:a260a9a
Prism execution-prism-adapter:a260a9a
Smoke worker execution-broker-worker:a260a9a; один immutable image pin в Broker и gateway
OpenCode worker execution-broker-executors:rc27-go1269; один immutable image pin в Broker и gateway; Go SDK 1.26.9
macOS bootstrap Четыре пакета *-a260a9a.tar.gz; актуальные Runner/Callee, workflow присутствует, digest совпадает с конфигурацией
Оба Balda Upstream 2eed2ce8, image balda-balda:upstream-2eed2ce8; подробности в personal/projects/balda/setup
Release candidate 0.1.0-rc.27, исходники архивов 18b224a; четыре платформенных архива и plugin в dist/

Docker socket и daemon group удалены из всех coding worker profiles. Docker administrative access остаётся только у gateway. Прежние несовпадения image pins устранены; перед обновлением незавершённых runs не было.

Продолжения и одобрения

В текущем upstream Balda generic webhook запускает изолированное задание и не продолжает исходную сессию. Старые callback routes Broker приостановлены; недоставленные cursors и история сохранены, доставкой они не считаются.

Новый плагин rc27 использует balda.state и balda.session.wait: состояние попытки и возврат в исходную сессию сохраняются до Start/retry. Broker поддерживает execution_lookup и атомарное закрытие потерянного admission, включая поздний Start/retry. Функциональные race/restart-тесты прошли. rc27 активирован у обоих Balda, Enabled=true, Drifted=false. Официальная переустановка сохранила plugin data, старые revisions/catalog snapshots и прежний marketplace. Существующие сессии не сбрасывались. Conversational delivery нового контура ещё не принята.

Настроенный Telegram approval bot получает вопрос исключительно в выбранных исходных сессиях; в остальных вопрос принадлежит исходной беседе. Модель не отвечает за владельца. Подлинный ответ передаётся через bound execution_respond; cancellation через execution_cancel. Повтор coding task — execution_retry с исходным run_id и новым ключом: Broker сохраняет точный task, Story, revision, executor и действительное прежнее одобрение. Изменение scope требует нового решения.

Проверки

  • macOS ARM64 и Linux ARM64: полный race/vet; Callee adapter и security checks.
  • В обновлённом production-комплекте service run run-edb2779a58d36fa10be2ebc6346b20bb: Human → restart Broker/Prism → resume → пять артефактов с проверенными SHA256 → succeeded, cleanup=done; Task и Story закрыты через Prism.
  • Реальный Beads/Dolt: Story projection и replay.
  • Managed plugin lifecycle и native one-shot wait: исходная сессия, restart, новая generation без потери следующего wait.
  • Source/binary govulncheck: reachable vulnerabilities — 0; история gitleaks чистая.
  • Runtime checks rc27: Darwin ARM64 и Linux ARM64 — native; Darwin AMD64 — emulated. Linux AMD64 под эмуляцией показал непостоянный startup-сбой и исследуется. Native AMD64 не проверен.

Это раздельные свидетельства. Сервисный fixture не доказывает, что модель в реальной беседе правильно выберет tools и доставит результат.

Незавершённый объём

Область Что остаётся
Balda boundary Завершить plugin upgrade, принять реальный conversational run и outage/restart с видимым результатом
Универсальные стеки Декларативные Linux/macOS tooling profiles, версии и approved sources, probes, безопасное восстановимое изменение окружения
Caches Общие immutable tooling/Git caches; существующий Go SDK cache их не заменяет
Артефакты между runs Digest-bound inputs и retention holds
Платформы и recovery Native AMD64, устранение/классификация AMD64 emulation failure; off-host/Keychain loss recovery не подтверждён

Источник требований — docs/work-plan.md. iPad, прикладные UI/PR workflows и права Obsidian относятся к вызывающему проекту или Balda.

Конфигурация и восстановление

Приватный Compose: state/deploy/compose.production.json; конфиги broker.json, worker.json, assets в state/deploy/assets. Токены остаются только в secret-файлах.

После выбора проверенного образа применять из репозитория:

docker-compose -f state/deploy/compose.production.json -p execution-broker up -d --no-build worker broker prism

Git commit сам по себе deployment не меняет. До обновления завершить runs/cleanup и сохранить согласованные state/config/image pins.

Backup перед этим обновлением: state/backups/20261014-before-rc27. Проверены SHA256, 30 SQLite databases и inert restore шести компонентов, включая зашифрованный credential vault. Все три identity были освобождены и checkpointed. Master keys Keychain в backup отсутствуют; это проверка восстановления на том же хосте, не после его потери.

Контракты и процедуры: docs/protocol.md, docs/operations.md, docs/telegram-approvals.md, docs/recovery.md, docs/testing.md. Существующие Balda сессии сохраняют capability snapshot; новая беседа принимает обновлённый плагин без изменения старой истории.