From 68afa28a863fc7aa703d5a8f47e3efe68480cf88 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Thu, 15 Oct 2026 20:59:26 +0600 Subject: [PATCH] [2026-10-15] eagle: personal/plans/balda-callee-prism-plan.md personal/projects/balda/execution-broker.md --- personal/plans/balda-callee-prism-plan.md | 3 +-- personal/projects/balda/execution-broker.md | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/personal/plans/balda-callee-prism-plan.md b/personal/plans/balda-callee-prism-plan.md index ecfd973f..a9427d16 100755 --- a/personal/plans/balda-callee-prism-plan.md +++ b/personal/plans/balda-callee-prism-plan.md @@ -12,7 +12,7 @@ Balda ведёт исходную беседу и durable waits; Broker упра - Native runtime archives проверены на Darwin/Linux ARM64/AMD64, включая физический Intel Mac с Monterey и физический Linux x86_64. - Generic tooling для Make/C, Python, Node, JVM и Go, immutable repository cache, artifact inputs и opt-in environment checkpoints реализованы и проверены. - Реальная Mattermost-беседа прошла owner approval через Telegram, outage/restart, возврат в ту же сессию, проверенные артефакты и cleanup. -- Linux Claude/OpenCode прошли реальные Story и reuse/restart. Codex прошёл две полные Story на свежих macOS VM, включая restart Broker/issuer. Тесты из артефактов выполнены независимо. +- Linux Claude/OpenCode прошли реальные Story и reuse/restart. Linux Codex прошёл две изолированные Story с restart Broker/gateway/issuer и финальную Story через production Broker/Prism; `nested-v1` сохраняет Docker guards и реально блокирует read-only запись. Gateway и exact worker pin развёрнуты. Codex также прошёл две более ранние Story на свежих macOS VM, включая restart Broker/issuer. Тесты из артефактов выполнены независимо. - Read-only permission-handler Claude/OpenCode отклоняет инъецированные ACP-запросы записи; тестовый файл не создаётся. У OpenCode native plan policy не менялась. - Исправленные macOS bootstrap развёрнуты; прежние архивы и конфиг сохранены для отката. Подготовлен защищённый GPG escrow; шесть тестов используют синтетические ключи. @@ -20,7 +20,6 @@ Balda ведёт исходную беседу и durable waits; Broker упра | Область | Условие завершения | | --- | --- | -| Linux Codex | Две полные Story и credential reuse/restart Broker/gateway/issuer прошли на `nested-v1`; независимые unit tests и реальные read-only write denials подтверждены. Проверенный gateway и exact worker pin развёрнуты; итоговый production-прогон выполняется | | Recovery после потери хоста | Отдельная гарантия: независимый recovery public key или secret store, off-host escrow и восстановление реальных аккаунтов; рабочие ключи пока не экспортированы. Обычный restart/reuse принят; исправления Virfield/Docker от выбора escrow не зависят | | Provider failure lifecycle | Реальные expiry/upstream revocation и повторная авторизация на отдельных тестовых identity; рабочую Claude-сессию отзывать запрещено | | macOS worker readiness / Codex | Три production-прогона, включая новый контроллер `614daf5`, остановились до bootstrap на Virfield guest_keychain_failed; все три lease удалены. Нужны принятая GUI/SSH Keychain readiness текущего контроллера, production Story и Codex denied-write gate | diff --git a/personal/projects/balda/execution-broker.md b/personal/projects/balda/execution-broker.md index a970a5f2..0828504d 100755 --- a/personal/projects/balda/execution-broker.md +++ b/personal/projects/balda/execution-broker.md @@ -60,7 +60,7 @@ Managed lifecycle и native wait restart проверены на развёрн | --- | --- | | macOS worker readiness | Три production-попытки после обновления bootstrap, включая новый контроллер `614daf5`, остановились на Virfield guest_keychain_failed до выполнения Runner/Callee. Все три VM удалены штатно. Нужны повторная приёмка GUI/SSH Keychain текущего Virfield и итоговая production Story; прежние изолированные успехи этот gate не закрывают | | Recovery | Выбран порядок: unattended восстановление рабочих ключей из защищённой копии, затем OAuth при неудаче восстановления/refresh. Это отдельная гарантия восстановления после потери хоста/Keychain; обычный restart и повторное использование авторизаций уже проверены. Production escrow ещё не настроен: нужен независимый recovery public key или secret store. Отсутствие escrow не блокирует исправления Virfield/Docker. Подготовлен 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 прошёл также component-проверку: фактический permission-handler обеих read-only ролей отклонил инъецированные ACP-запросы записи; marker не создан. Expiry/upstream revocation остаются открыты. Linux Codex прошёл две полные Story на свежих workers с `nested-v1`: все шесть ролей, quality, независимые unit tests (4/4 и 3/3), SHA256 артефактов, restart Broker/gateway/issuer, checkpoint/reuse и cleanup. Штатный Codex fallback сохраняет Docker proc masks; отдельные AppArmor/seccomp профили сохраняют non-root, cap-drop, read-only root и no-new-privileges. Реальная попытка записи в read-only workspace отклонена. Исправление `f9ca7c3`, gateway развёрнут с точным worker pin; итоговая production Story выполняется. Default Docker policy не поддерживает нужные namespaces. Expiry/upstream revocation остаются отдельными gates. Проверка запрета записи OpenCode прошла на Linux и свежей macOS VM: обе read-only сессии получили прямые ACP-запросы записи, Callee отклонил их, marker отсутствовал; native plan policy не менялась. Это protocol fault injection, а не попытка tool call, выбранная моделью | +| 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 прошёл две полные Story на свежих workers с `nested-v1`: все шесть ролей, quality, независимые unit tests (4/4 и 3/3), SHA256 артефактов, restart Broker/gateway/issuer, checkpoint/reuse и cleanup. Штатный Codex fallback сохраняет Docker proc masks; отдельные AppArmor/seccomp профили сохраняют non-root, cap-drop, read-only root и no-new-privileges. Реальная попытка записи в read-only workspace отклонена. Исправление `f9ca7c3`, gateway развёрнут с точным worker pin; итоговая Story через production Broker/Prism также прошла все шесть ролей, quality, независимые unit tests (3/3), SHA256 артефактов и cleanup=done. Default Docker policy не поддерживает нужные namespaces. Expiry/upstream revocation остаются отдельными gates. Проверка запрета записи 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.