From 530eed962a463e0886438c74f0216f6ae1730c41 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 16 Oct 2026 16:23:42 +0600 Subject: [PATCH] [2026-10-16] eagle: personal/plans/balda-callee-prism-plan.md personal/projects/balda/execution-broker.md --- personal/plans/balda-callee-prism-plan.md | 2 +- personal/projects/balda/execution-broker.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/personal/plans/balda-callee-prism-plan.md b/personal/plans/balda-callee-prism-plan.md index e8d11698..1f9258a2 100755 --- a/personal/plans/balda-callee-prism-plan.md +++ b/personal/plans/balda-callee-prism-plan.md @@ -28,7 +28,7 @@ Balda ведёт исходную беседу и durable waits; Broker упра | Область | Условие завершения | | --- | --- | | Recovery после потери хоста | Отдельная гарантия: независимый recovery public key или secret store, off-host escrow и восстановление реальных аккаунтов; рабочие ключи пока не экспортированы. Обычный restart/reuse принят; исправления Virfield/Docker от выбора escrow не зависят | -| Provider failure lifecycle | Реальные expiry/upstream revocation и повторная авторизация. 2026-10-16 владелец явно разрешил использовать боевые аккаунты Codex, Claude и DeepSeek; отдельных тестовых аккаунтов нет. Прежнее ограничение на рабочую Claude-сессию отменено этим указанием. Проверять по одному провайдеру с подтверждённой возможностью повторного входа; локальный revoke не подменяет upstream revocation | +| Provider failure lifecycle | Natural access-token expiry/refresh Claude на Docker проверена; реальный upstream revocation и browser reauthentication не проверены. 2026-10-16 владелец уточнил: боевые аккаунты использовать через существующие доступы, сами аккаунты не трогать. Прежняя запись об отмене запрета на отзыв рабочей Claude-сессии была ошибочной интерпретацией агента. Не создавать, не отзывать и не ротировать ключи/сессии ради приёмки; не требовать входа в кабинеты провайдеров | Задачи и их статусы ведутся в локальном Beads/Prism, корневая Story `eb-71b7971ac3fdd03b8ff6b198`. Этот документ задаёт границы приёмки, а не второй backlog. Контракты и команды — в `docs/work-plan.md`, `docs/support.md`, `docs/recovery.md`, `docs/executors.md` репозитория Broker. diff --git a/personal/projects/balda/execution-broker.md b/personal/projects/balda/execution-broker.md index 70ca4d86..75ca1562 100755 --- a/personal/projects/balda/execution-broker.md +++ b/personal/projects/balda/execution-broker.md @@ -62,7 +62,7 @@ Managed lifecycle и native wait restart проверены на развёрн | --- | --- | | 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; итоговая 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-приёмки. 2026-10-16 владелец разрешил использовать боевые аккаунты Codex, Claude и DeepSeek вместо отсутствующих тестовых; прежний запрет на отзыв рабочей Claude-сессии отменён. Нужен подтверждённый способ повторного входа перед отзывом | +| 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-приёмки. 2026-10-16 владелец уточнил: использовать существующие боевые доступы, сами аккаунты не трогать. Вывод агента об отмене запрета на отзыв рабочей Claude-сессии был ошибочным. Создание/отзыв/ротация ключей и сессий ради приёмки не разрешены; вход в кабинеты провайдеров не требуется | Источник требований — `docs/work-plan.md`. iPad, прикладные UI/PR workflows и права Obsidian принадлежат вызывающему проекту или Balda. @@ -78,7 +78,7 @@ Production Story `run-d643dd9154d4766fe82b72805dabdc9e` завершилась ` Итоговые `make check` (race/vet/scripts), Callee compatibility/race, Staticcheck (0 findings), source/binary Govulncheck и source/artifact secret scans прошли. Достижимых уязвимостей нет. Семь binaries собраны для Darwin/Linux ARM64/AMD64; это cross-build gate, не новая native archive-приёмка. Результаты — `source-validation.json`, `cross-build.json`, `staticcheck-final.log`. -Beads `.6.4` macOS и `.6.5` Linux закрыты. Общая Story остаётся открытой по двум первоначальным пунктам: `.4` — host-loss recovery, `.6.6` — реальные provider expiry/revocation. Не выбран независимый recovery recipient/store и reachable off-host destination; локальных GPG public keys/rclone remotes нет, настроенный HTPC SSH route недоступен, Kraken не прошёл SSH banner. Отдельных test identity в vault нет; нужны аккаунты и разрешение отзыва только их авторизаций. Подготовлен `escrow-plan.json` для трёх рабочих identity, master keys не экспортировались; рабочие сессии не отзывались. Предыдущие автоматические отказы rollout/production-прогонов сняты явными подтверждениями владельца; соответствующие разрешённые действия выполнены. +Beads `.6.4` macOS и `.6.5` Linux закрыты. Общая Story остаётся открытой по двум первоначальным пунктам: `.4` — host-loss recovery, `.6.6` — реальные provider expiry/revocation. Не выбран независимый recovery recipient/store и reachable off-host destination; локальных GPG public keys/rclone remotes нет, настроенный HTPC SSH route недоступен, Kraken не прошёл SSH banner. Отдельных test identity в vault нет. Владелец разрешил использовать существующие боевые доступы и уточнил, что сами аккаунты трогать нельзя; создание/отзыв/ротация ключей и сессий ради теста не разрешены. Реальный upstream revocation остаётся непроверенным, вход в кабинеты не запрашивать. Подготовлен `escrow-plan.json` для трёх рабочих identity, master keys не экспортировались; рабочие сессии не отзывались. Предыдущие автоматические отказы rollout/production-прогонов сняты явными подтверждениями владельца; соответствующие разрешённые действия выполнены. ## Конфигурация и восстановление