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

70 lines
13 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 — историческая эксплуатация
> [!important] Текущий статус — 2026-10-19
> Прежние MCP `execution-broker` и `execution-prism` отсутствуют в runtime основного Balda, plugin `execution-broker` выключен. Оригинальные `prism`/`prism-callee` 0.7.0 включены.
> Доступом управляют отдельные SSH Manager и Workspace Manager; актуальные версии, пути и границы приёмки: [[personal/projects/balda/setup]].
> Нижеследующие комплекты, workflows и результаты — датированный архив 2026-10-16/18, а не текущая конфигурация Balda. Состояние старых отдельных Broker services этой сверкой не перепроверялось.
## Архив прежнего контура
> [!important] Граница нового брокера — 2026-10-18
> Текущий план: [[personal/plans/balda-remote-agent|Balda — удалённый агент по SSH]].
> Штатный `generic_acp` Balda уже передаёт ACP по SSH; собственный ACP-транспорт для проверенного пути не требуется.
> Ветка `broker-rebuild` начата с пустого дерева; в ней пока README, новой реализации нет.
> На дату 2026-10-18 старые MCP и plugin ещё оставались подключены; текущий статус приведён выше.
> Сведения о версиях, workflow и прежней приёмке ниже — исторический срез 2026-10-16; установка Balda обновлена в [[personal/projects/balda/setup]].
Проверено: **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 | Опубликованный stable Latest и установленная версия — [v2.1.1](https://github.com/mallexxx/virfield/releases/tag/v2.1.1), source `2c64888`. Точный пакет прошёл direct native VM и полный Broker/XCTest; публичные archive/SHA256SUMS скачаны без авторизации и сверены побайтно; [[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. Исправленный кандидат прошёл отдельную fresh VM и новый полный Broker/XCTest run `run-3b679ccc08ae5aafb94643d60f0410dd`: 1/1 XCTest, настоящий xcresult, все заново скачанные артефакты сверены по SHA256, Story closed, cleanup=done и lease released. Исходный failed run сохранён как отказ; его тестовая Story закрыта с причиной архивирования.
- Virfield `main 2c64888` прошёл GitHub CI на macOS/Linux: race/make check/build, Staticcheck, module verify, Govulncheck и Linux gitleaks. Установленный свежий MCP сообщает 2.1.1: 20 tools/4 resources, authenticated status, девять исходных образов, ноль workers/jobs. Уже запущенные адаптеры других чатов принудительно не перезапускались.
- Финальная проверка пяти production services: точные новые image IDs и binary hashes, health200, ноль Broker runs с незавершённым cleanup; issuer generations568/172/217 сохранены.
- После публикации повторно сверены последние upstream heads Balda/Callee/Broker/Virfield и работающие images/binaries пяти сервисов. Установленные Virfield binaries/browser совпадают с проверенным подписанным stage; опубликован исходный пакет с тем же SHA256. Планы и личные журналы остаются в Obsidian, source checkout чистый.
- 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`, `macos-candidate-production-verification.json`, `virfield-installed-mcp-2.1.1.json`, `virfield-fix-github-ci.json`, `live-final-health.json`, `virfield-v2.1.1-publication-verification.json`, `post-publication-runtime-verification.json`, `upstream-heads-after-publication.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 и успешный новый XCTest на пакете опубликованного v2.1.1 учитываются отдельно выше; исторические результаты не подменяют свежую проверку.
План и решение о границах: [[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.