diff --git a/personal/projects/balda/execution-broker.md b/personal/projects/balda/execution-broker.md index f55e4629..7909f3e7 100755 --- a/personal/projects/balda/execution-broker.md +++ b/personal/projects/balda/execution-broker.md @@ -56,8 +56,8 @@ Managed lifecycle и native wait restart проверены на развёрн | Область | Что остаётся | | --- | --- | -| Recovery | Выбран порядок: unattended восстановление рабочих ключей из защищённой копии, затем OAuth при неудаче восстановления/refresh. Production escrow ещё не настроен: нужен независимый recovery public key или secret store. Native перенос тестового vault проверен; рабочие master keys не экспортировались | -| Docker providers | Linux OpenCode/DeepSeek прошёл две полные Story на свежих workers: реальные роли, повторное выполнение quality assertions, SHA256 всех артефактов, restart Broker/issuer, credential checkpoint/reuse, `cleanup=done`, без нового OAuth. Для Linux Codex/Claude остаются реальные Story/reuse/restart и sandbox; для Linux OpenCode — denied-write и upstream revocation | +| 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-приёмки | Источник требований — `docs/work-plan.md`. iPad, прикладные UI/PR workflows и права Obsidian принадлежат вызывающему проекту или Balda.