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

53 lines
9.2 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Execution Broker — эксплуатация
Проверено: **2026-10-16** по GitHub, исходникам, работающим контейнерам, binary hashes, MCP и сохранённому state. Broker и Virfield очищены от планов и персональных журналов в tracked файлах; актуальная установка и приёмка ведутся в Obsidian.
## Развёрнутый комплект
| Компонент | Фактически установленное состояние |
| --- | --- |
| Broker Git | `/Users/admin/Developer/execution-broker`, только `main`; local HEAD и GitHub `13c29ac6ccb3ec59cb7fa4d824bdfb350bf540e6`, checkout чистый |
| Broker | `0.1.0-rc.34`, image `sha256:04ff684bf5b051e15ff603e7cd4a8adba35a000b8b222205b197549f54b1695e`; binary сверён с source `13c29ac` |
| Prism | `execution-prism-adapter 0.1.0-rc.34`, image `sha256:2683c10db981f4b1912b372a48f8175e751fe5de30c2282390fb345fdeb533aa`; код adapter находится в том же Broker repo/main |
| Gateway | `execution-worker 0.1.0-rc.34`, image `sha256:35b442404db5da72907936a57798d18491d54c0bbf6423f4969f18cc6b388e5c`; новые Runner/Callee также вложены в оба image-build contexts |
| Native credential issuers | Все три binary из Broker `13c29ac`, `rc34`; прежние launchd definitions, vault и токены сохранены |
| Callee | Последний проверенный upstream `95f7f1105489f26d0aa24c4b9b76296b34c503c7`; Broker adapter и security override `x/net v0.60.0`, Go 1.26.9 |
| Оба Balda | Чистый upstream `3a58254bb05747fdeecde070b1828e770ed589a4`, image `sha256:ee0567594b8f8422d71b3bb37aa47ef1222b089af6b24e17d50ac9c63a4ef22f`, без локальных патчей; [[personal/projects/balda/setup]] |
| Linux images | Smoke `sha256:2b82611cb0f35b1be006faadcad05eed558e675576cc00ecccaeb9d43cac2f81`; OpenCode/DeepSeek `sha256:526ee8382465e8f5fe3e9c55d78b3b62dff83cc8e1085c8b6f7935d2aba7848c`; Codex `sha256:cdce756babb910ac141ad926b2297d25784532d069ec774a8321a23d4e4ecd92`; dynamic Claude `sha256:a785411160b4384887654c2179cb19d92bf9ff91e1c5f5d60ccccf8ad1c1ba87`. Во всех четырёх фактические Runner/Callee bytes сверены с latest builds |
| macOS bootstrap | Все четыре profiles указывают на новые `*-rc34-13c29ac.tar.gz`; Runner/Callee hashes проверены. Provider runtimes и согласованные workflow policies сохранены |
| Virfield | Опубликованный latest — `v2.1.0`, source `9658646`. После двух fresh-VM preparation failures временно установлен исправленный **кандидат v2.1.1**, source `2c64888`, для native проверки. Он пока не опубликован; [[personal/projects/virfield]] |
| Release archives Broker | Исторически принятые `rc33` из `ae92c15` сохранены в `dist/`, четыре native targets проверены. Текущий production `rc34/13c29ac` новее; GitHub Release Broker не публиковался |
Broker, gateway и workers имеют согласованные immutable pins. macOS profiles используют `macos27`; роли Codex — pack `b09f2be2`, Claude/OpenCode — собственный `1b8b5ded`. Нельзя подставлять workflow Codex в OpenCode image.
## Проверка обновления
- Broker `make check` (race/vet/scripts), Callee adapter/race, полный Balda race/lint, managed plugin lifecycle и native wait restart прошли на новых исходниках.
- Два production Balda независимо прошли authenticated discovery: 26 Broker tools и 5 Prism tools; `execution_profiles` доступен из обеих network namespaces.
- Exact deployed Linux smoke image прошёл настоящий Callee → fixed Human → restart → пять артефактов → cleanup, включая non-root, read-only root, cap-drop и отсутствие bind mounts/Docker socket. Это изолированный fixture без production provider credentials и сообщений.
- Новый Claude image построен штатным resolver развёрнутого gateway; provider calls и worker start не выполнялись. Binaries всех четырёх Linux profiles совпадают с latest source builds.
- Сохранены все **2277** прежних событий основного Balda, 49 session metadata/bindings, provider sessions, home volumes, environment values, config hashes и auth. Изменение порядка Env при recreate не является изменением значений.
- Все три Broker credential identity остались свободными, checkpointed/unrevoked: Claude generation568, Codex172, DeepSeek217. Account login/revoke/rotation не выполнялись.
- Новый macOS run `run-aadbbadcbb508f6473a3574ae700eef3` завершился до bootstrap/workload: `guest_keychain_failed`, затем `cleanup=done`; lease released. Повторная прямая диагностика локализовала `launchctl bootstrap` собственного GUI-agent, exit5. Её private logs сохранены, диагностическая VM released. Проверка исправленного кандидата сейчас продолжается; этот failed run не считается пройденным macOS gate.
- GitHub Actions для Broker main не запустил ни одного шага: account billing/spending-limit rejection. Локальные gates прошли; удалённый CI не объявляется зелёным.
Доказательства текущего обновления: `state/main-production-sync-20261016/`: `production-deployment.json`, `prepared-deployment.json`, `all-linux-runtime-provenance.json`, `linux-worker-integration.json`, `live-baldda-mcp.json`, `virfield-candidate-upgrade.json`, `macos-readiness-diagnostic/finding.json`.
## Границы приёмки
Предыдущая приёмка закрыта в явном согласованном режиме **«Да, закрыть в проверенном режиме»**. Beads Story `eb-71b7971ac3fdd03b8ff6b198` и все дочерние задачи closed. Производственные Story, отмена, restart, sandbox/write denial, артефакты, controlled provider refusals и protected working-account recovery приняты в своих dated receipts.
Реальный upstream revoke рабочих авторизаций и последующий browser login исключены владельцем и остаются непроверенными. Linux provider-failure checks не доказывают macOS failure lifecycle. Новое post-upgrade macOS preparation failure явно учитывается выше; исторический успех на прежнем binary не заменяет текущую проверку.
План и решение о границах: [[personal/plans/balda-callee-prism-plan]]. Старые подробные результаты: [[personal/projects/archive/broker-before-main-deployment-2026-10-16]]. Удалённые из Git планы/журналы сохранены и сверены здесь: [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/index]]. В product repo остаются контракты и инструкции.
## Конфигурация и восстановление
Приватный Compose: `state/deploy/compose.production.json`; `broker.json`, `worker.json`, токены и assets находятся в `state/deploy/`, вне tracked Git. Образы и bootstrap выбираются по конкретным immutable pins, а не по случайному Git HEAD.
Перед обновлением проверены ноль активных Broker runs/cleanup и свободные identities. Согласованный private snapshot: `state/main-production-sync-20261016/coordinated-stack-snapshot/`; отдельные Balda homes/configs и прежние native issuers — в `active-deployment-before/`. SHA256 и SQLite integrity/foreign-key checks прошли. Не восстанавливать старые OAuth caches поверх более новых без fencing.
Независимое восстановление трёх рабочих identity без Mac/Keychain принято ранее: зашифрованные original master keys, matching vault и private GPG recipient сохранены на HTPC вне lease workspace (0700/0600), все три read-only provider API ответили HTTP200, временные plaintext key-files удалены. Retained restore runtime — исходный rc33 `d296c73`. Приватные receipts: `state/broker-acceptance-20261016/offhost-working-restore-verification.json`, `offhost-before-final-lease-release.json`.
Контракты: `docs/protocol.md`, `docs/support.md`, `docs/operations.md`, `docs/recovery.md`, `docs/executors.md`; work plan теперь в Obsidian.