[2026-10-02] eagle: personal/plans/balda-callee-prism-plan.md
This commit is contained in:
1 parent
c1bccfa4f5
commit
dbd0da1252
1 file changed
+12
-9
@@ -1,20 +1,23 @@
|
||||
# Balda + Prism/Beads + Execution Broker + Callee + Codex / Claude / OpenCode
|
||||
|
||||
> Обновлено: 2026-10-02
|
||||
> Статус на 2026-10-02: **public stable NO-GO.** Balda `v0.4.2+deepseekfix` и managed plugin RC10 отвечают существующему Mattermost `testuser`; chat-origin Story пока не принят. Docker+OpenCode+DeepSeek на чистом RC10 checkout прошёл полный изолированный Story `run-b1457f019946c05fa514fd1beedd8f46` с Human approval, review/quality, SHA артефактов и cleanup. Исправления Docker-образа и verifier включены только в локальную release-ветку `codex/claude-release-fixes` (`5792cff`); `main`, GitHub Actions и public release не тронуты. Live Docker-профиль и Mattermost-origin acceptance ещё не пройдены.
|
||||
> Текущий проект и runbook: [[personal/projects/virfield]].
|
||||
> Обновлено: 2026-10-02 после push ветки workspace.
|
||||
> Статус: **локальный Docker/OpenCode сценарий принят; live Balda → Broker → Prism/Mattermost и public stable ещё NO-GO.** Удалённая ветка `codex/broker-workspace-repos` проверена на GitHub: HEAD `f237556` (основная реализация `7eda0d6`). Удалённый `main` — `cb9d54b`; workspace-ветка в него не слита.
|
||||
> Канонический смежный проект Virfield: [[personal/projects/virfield]]. Исторические результаты ниже сохраняются как хронология; текущие статус и приоритеты — в этом блоке.
|
||||
|
||||
### Приёмка Docker/OpenCode и точка продолжения — 2026-10-02
|
||||
### Текущий handoff — создание локального репозитория Broker
|
||||
|
||||
**Handoff завершения сессии:** больше не запрашивать отдельный репозиторий у ассистента. Оператор сам напишет Balda в Mattermost, какой новый repo создать или использовать для приёмки. Задача ассистента на следующей сессии — наблюдать фактический Balda → Broker запуск, чинить интеграцию по фактам и не подменять пользовательский сценарий synthetic Story.
|
||||
**Реализовано и запушено:** MCP `execution_repository_create` и HTTP `POST /v1/workspaces` создают идемпотентный Git-репозиторий под настроенным `workspace_root` (на этом Mac — `/Users/admin/Developer`). Balda выбирает короткий `name_hint` сама, передаёт текущие `chat_id/topic_id`, получает `workspace://` и полный commit SHA, затем передаёт их в `execution_start`. Нельзя просить пользователя заранее создавать или называть репозиторий. Gateway проверяет принадлежность chat/topic, чистый checkout и точный revision; одноразовый worker получает mount только конкретного repo в `/workspace`. Docker worker остаётся с отдельным образом установленного OpenCode/Callee/Runner; issuer разрешает workspace IDs только при явном `--workspace-repositories`. Плагин содержит инструкцию Balda использовать новый инструмент. Код и тесты находятся в удалённой ветке `codex/broker-workspace-repos`.
|
||||
|
||||
**Прошло:** чистый RC10 checkout: полный `make check`, сборка Docker worker, запуск под UID 65532 с read-only root/no network/cap-drop/no-new-privileges. После исправления `.dockerignore`, установки C compiler для `go test -race` и уточнения протокола verifier, Story `run-b1457f019946c05fa514fd1beedd8f46` прошёл шесть ролей, approval, 5/5 executed checks, reviewer/quality, SHA шести артефактов, удаление контейнера и volume. Патч Go CLI отдельно прошёл `go test -race` и `go vet`. Итоговый image ID `sha256:95f83bedfd47e8335960d63021241a74e40849a628d1d5f6a08c5bbc1e3d03bd`; workflow digest `sha256:fd3f4db4b7be43288c9bffad3cc05f5a4aea802abb42b48b0e647380fc193a8d`.
|
||||
**Проверено локально:** отдельный Broker/gateway/issuer создали `workspace://balda-go-cli-d427a5a9a939` в `~/Developer/balda-go-cli-d427a5a9a939`. Synthetic Story `run-7d10077b345641df09bb9af459c2dd7e` с OpenCode/DeepSeek прошёл роли, Human approval, verifier (9 выполненных проверок), reviewer, quality gate, 6 SHA-проверенных артефактов и cleanup `done`; финальный run — `succeeded`. В репозитории локальный commit `dbb2519`, checkout чистый, remote не добавлялся. Отдельная сборка `docker build --network=none` из созданного Dockerfile прошла на хосте; образ напечатал `Hello, Ada!`, пустое имя завершилось с ожидаемым кодом 2. `make check` прошёл в изолированной рабочей копии `state/isolated/broker-workspace-repos`. Тестовый стек остановлен, credential lease освобождён.
|
||||
|
||||
**Слито локально:** только пять файлов Docker/OpenCode в приватную publication ветку `codex/claude-release-fixes`, коммит `5792cff`. Это не merge в `main` и не push. GitHub Actions не запускать. Параллельные изменения Virfield в shared checkout не затронуты. Подробные сбои двух предыдущих прогонов и результаты: `/Users/admin/Developer/execution-broker/state/private-publication-audit-20261001/release-readiness-rc10.md`.
|
||||
**Граница доказательства:** это прямой изолированный вызов Broker, не сообщение Balda из Mattermost и не Prism Story. Живые Broker/gateway/Balda на новый workspace-профиль и MCP tool не переключались. Пушнутая workspace-ветка основана на RC9 `6091a61`, а проверенные Docker/OpenCode runtime-исправления находятся отдельно в локальном `codex/claude-release-fixes` (`5792cff`): в запушенном Dockerfile worker пока нет Go/Python, `GOTMPDIR` и нужных runtime-настроек. Проверенный успешный прогон использовал собранный локально образ с этими исправлениями. Поэтому одного push `f237556` недостаточно для live-развёртывания. В логах успешного Story встречался ACP `fs/write_text_file: Method not found`; на результате этого прогона не сказалось, но совместимость ACP требует проверки.
|
||||
|
||||
**Не принято:** live Broker/gateway ещё не содержат принятый Docker+OpenCode worker для пользовательского Mattermost-сценария. Balda отвечает `testuser` в DM, но chat-origin Story до Broker, approval и доставки артефактов не проверен. Изолированное выполнение на существующем Callee не заменяет эту проверку. Производственный Docker sandbox, disposable upstream revoke, managed-host identity/TLS/rollback, clean-machine distribution и подпись/provenance также открыты.
|
||||
**Следующие шаги:**
|
||||
|
||||
**План следующей приёмки:** оператор отправляет обычное сообщение Balda в Mattermost с просьбой создать/использовать нужный repo и собрать Go CLI через Docker + OpenCode + DeepSeek. После ответа Balda проверить, что выбран allowlisted Docker/OpenCode worker, Broker реально создал Story, approval прошёл, артефакты доставлены, cleanup выполнен. Только после этой приёмки сливать release-ветку в `main`.
|
||||
1. Свести workspace-ветку с проверенными Docker/OpenCode изменениями `5792cff`, закрепить workflow digest и worker image ID, прогнать `make check` и Docker Story на точном объединённом commit.
|
||||
2. Развернуть этот commit в live Broker/gateway: отдельный `linux-container` профиль с `workspace_root=/Users/admin/Developer`, mount корня только в gateway, workspace scope в issuer; обновить managed plugin Balda и проверить, что она видит `execution_repository_create`.
|
||||
3. Попросить Balda в Mattermost создать новый проект **без имени repo и без готового checkout**. Проверить фактическую цепочку: MCP create → Prism Story → `execution_start` → Human approval в той же теме → события/артефакты в Mattermost/Prism → terminal cleanup и чистый локальный Git commit.
|
||||
4. После live-приёмки проверить ACP-ошибку, CI точного SHA, release/rollback и оставшиеся security gates; только затем считать public stable готовым.
|
||||
|
||||
## 1. Цель
|
||||
|
||||
|
||||
Reference in new issue
Block a user