[2026-10-15] eagle: personal/projects/balda/execution-broker.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-15 18:22:32 +06:00
1 parent e6db2f3a2b
commit 0301d4408a
1 file changed
+3 -3
+3 -3
View File
@@ -12,7 +12,7 @@
| Prism | `execution-prism-adapter:fee5409`, версия `0.1.0-rc.32` |
| Smoke worker | `execution-broker-worker:fee5409`; один SHA256 image pin в Broker и gateway |
| OpenCode worker | `execution-broker-executors:workflow-alias-20261015`, image `sha256:99e4c786a47fe03877dd4d8186528a5e4fe8676f5677116f89c8543e1d942734`; одинаковый pin в Broker/gateway, оба workflow `docker/story` и `opencode/story`, Go SDK 1.26.9 |
| macOS bootstrap | Четыре пакета `*-fee5409.tar.gz` с Runner/Callee этого комплекта |
| macOS bootstrap | Codex/Claude/OpenCode — три пакета `*-c5f63ef.tar.gz` с исправленным ACP launcher и фильтрацией runtime links; Runner/Callee binaries прежнего комплекта. Xcode — `macos-xcode-fee5409.tar.gz`. SHA256 и rollback config в `state/provider-acceptance-20261015/` |
| Оба Balda | Source `6238856b`: upstream `6621b189` + исправление контекста канала; image `balda-balda:upstream-6621b189-channel-fix`; подробности в [[personal/projects/balda/setup]] |
| Managed plugin | rc32 у обоих, Enabled=true, Drifted=false; прежние plugin data, revisions и marketplace сохранены |
| Release archives | `0.1.0-rc.32`, source `fee5409`; четыре платформенных архива и plugin в `dist/`, SHA256 проверены |
@@ -57,8 +57,8 @@ Managed lifecycle и native wait restart проверены на развёрн
| Область | Что остаётся |
| --- | --- |
| Recovery | Выбран порядок: unattended восстановление рабочих ключей из защищённой копии, затем OAuth при неудаче восстановления/refresh. Production escrow ещё не настроен: нужен независимый recovery public key или secret store. Подготовлен helper для GPG escrow исходных master keys и безопасного восстановления key-files/Keychain; шесть тестов с синтетическими ключами прошли, включая восстановление encrypted vault, отказ при порче/чужом recipient и запрет замены существующего ключа. Рабочие master keys не экспортировались; production host-loss recovery не принят |
| Docker providers | Linux OpenCode/DeepSeek прошёл две полные Story на свежих workers: реальные роли, повторное выполнение quality assertions, SHA256 всех артефактов, restart Broker/issuer, credential checkpoint/reuse, `cleanup=done`, без нового OAuth. Linux Claude также прошёл две полные Story на свежих workers, включая restart Broker/issuer: шесть ролей, независимый повтор unit tests, SHA256 семи артефактов каждого запуска, checkpoint и cleanup подтверждены; новый OAuth не понадобился. Для Linux Claude остаются denied-write и expiry/upstream revocation. Linux Codex блокируется sandbox текущего Docker host: bubblewrap не может создать user namespace при сохранённых cap-drop/read-only/no-new-privileges и default seccomp/AppArmor. Это воспроизведено offline без credentials. Исправления OAuth cache/ACP launcher подготовлены, но production gateway не обновлён; Story/reuse/restart ещё не приняты; для Linux OpenCode — denied-write и upstream revocation |
| Provider lifecycle | Для macOS Claude не закрыта реальная expiry/upstream revocation; для macOS OpenCode/DeepSeek — denied-write и upstream revocation. Claude умеет сохранить явный отказ native cache как reauthentication-required и запросить OAuth при следующем admission; это не доказательство реальной provider-приёмки |
| Docker providers | Linux OpenCode/DeepSeek прошёл две полные Story на свежих workers: реальные роли, повторное выполнение quality assertions, SHA256 всех артефактов, restart Broker/issuer, credential checkpoint/reuse, `cleanup=done`, без нового OAuth. Linux Claude также прошёл две полные Story на свежих workers, включая restart Broker/issuer: шесть ролей, независимый повтор unit tests, SHA256 семи артефактов каждого запуска, checkpoint и cleanup подтверждены; новый OAuth не понадобился. Linux Claude прошёл также component-проверку: фактический permission-handler обеих read-only ролей отклонил инъецированные ACP-запросы записи; marker не создан. Expiry/upstream revocation остаются открыты. Linux Codex блокируется sandbox текущего Docker host: bubblewrap не может создать user namespace при сохранённых cap-drop/read-only/no-new-privileges и default seccomp/AppArmor. Это воспроизведено offline без credentials. Исправления OAuth cache/ACP launcher подготовлены, но production gateway не обновлён; Story/reuse/restart ещё не приняты; для Linux OpenCode — upstream revocation. Проверка запрета записи OpenCode прошла на Linux и свежей macOS VM: обе read-only сессии получили прямые ACP-запросы записи, Callee отклонил их, marker отсутствовал; native plan policy не менялась. Это protocol fault injection, а не попытка tool call, выбранная моделью |
| Provider lifecycle | Для macOS Claude не закрыта реальная expiry/upstream revocation; для macOS OpenCode/DeepSeek — upstream revocation; component-проверка фактического ACP-запрета записи обеими read-only ролями прошла на свежей VM с неизменённой native policy. Claude умеет сохранить явный отказ native cache как reauthentication-required и запросить OAuth при следующем admission; это не доказательство реальной provider-приёмки |
Источник требований — `docs/work-plan.md`. iPad, прикладные UI/PR workflows и права Obsidian принадлежат вызывающему проекту или Balda.