70 lines
13 KiB
Markdown
Executable File
70 lines
13 KiB
Markdown
Executable File
# 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.
|