From ad461bca9c9be86429750cbc2eb6413b5fd1b2c6 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Wed, 30 Sep 2026 13:01:48 +0600 Subject: [PATCH] [2026-09-30] eagle: personal/plans/balda-callee-prism-plan.md --- personal/plans/balda-callee-prism-plan.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/personal/plans/balda-callee-prism-plan.md b/personal/plans/balda-callee-prism-plan.md index 10d15530..31946881 100755 --- a/personal/plans/balda-callee-prism-plan.md +++ b/personal/plans/balda-callee-prism-plan.md @@ -1,7 +1,7 @@ # Balda + Prism/Beads + Execution Broker + Callee + Codex > Обновлено: 2026-09-30 -> Статус: Virfield v2.0.0 опубликован. Этот план описывает целевую интеграцию Balda → Broker → VM → Runner/Callee; сквозная приёмка ещё не подтверждена. +> Статус: Virfield v2.0.0 опубликован. Этот план описывает целевую интеграцию Balda → Broker → VM → Runner/Callee; локальная цепочка Balda-container MCP → Broker → Virfield → Callee/Codex прошла полный workflow; Mattermost, remote hosts и публичный релиз ещё не приняты. > Текущий проект и runbook: [[personal/projects/virfield]]. ## 1. Цель @@ -311,6 +311,24 @@ Callee поддерживает `Parallel`, но это fan-out Role visits вн Хостовый Virfield API разрешает только операции жизненного цикла VM. Balda и Broker не получают `docker.sock`, пользовательский `~/.ssh` или произвольный shell на Mac. +### Credential management — обязательный scope (2026-09-30) + +OAuth-вход выполняется один раз при enrollment или при необходимости повторной авторизации у провайдера. Перезапуск или пересоздание VM сам по себе не должен требовать нового входа. + +Владелец provider credentials — отдельный host credential issuer Execution Broker. Virfield управляет VM/SSH leases, но не хранит OAuth пользователя. Balda, Prism/Beads и Callee-события получают только состояние; токены в их сообщения не передаются. + +Обязательные свойства: + +- долговременное зашифрованное хранилище вне VM и Git; на macOS master key находится в Keychain; права 0700/0600, atomic write и fsync; +- выдача в конкретный run, repository и agent profile после durable admission; приватный файл в HOME гостя, не в checkout, environment, argv или golden/bootstrap; +- одна OAuth identity арендуется одним run одновременно, чтобы VM не конкурировали за refresh token; ownership переживает restart Broker/issuer; +- перед release VM обновлённый cache сохраняется обратно через приватный канал только после остановки ролей; блокировка снимается после подтверждённого удаления VM; +- local revoke, provider-side revoke как отдельная операция, безопасное восстановление после утраты VM, отсутствие токенов в публичных API/артефактах; TTL Broker не считается upstream revocation. + +Приёмка: новый clone выполняет реальные Codex роли без браузерного login; Broker/issuer переживают restart; checkpoint сохраняется до cleanup; следующий clone использует сохранённую сессию. Отдельно тестируются конфликт владельца, повреждение vault, отказ refresh, revoke и невозможность восстановить отозванный токен поздним checkpoint. Потерянный checkpoint блокирует повторную выдачу до явного восстановления, а не молча использует старый token. + +Реализация и границы текущей версии: `/Users/admin/Developer/execution-broker/docs/credentials.md`. Поддержка автоматического issuer сначала включена для macOS VM; Docker/remotes требуют отдельной приёмки того же жизненного цикла. OAuth может требовать нового входа после provider revoke/refresh rejection; это не штатный шаг каждого запуска VM. + ### Workspace и артефакты Текущий recipe Virfield создаёт VM без shared host folders. Код, mutable workspace и Xcode build живут на локальном диске VM; перенос исходников/результатов — через scoped SSH и Git либо `rsync/scp`. Артефакты выгружаются до release lease и получают уникальный путь `run_id/...`. @@ -343,7 +361,7 @@ Callee поддерживает `Parallel`, но это fan-out Role visits вн ### Требует проверки до production -- установка и авторизация Codex внутри golden VM; +- credential-free установка Codex; отдельное долговременное credential management с выдачей в каждую disposable VM (авторизация в golden image запрещена); - доступность Dolt/Beads из Prism adapter после рестартов; - формат и размер Xcode артефактов; - восстановление Broker после падения во время `waiting_human`;