[2026-10-16] eagle: personal/plans/balda-callee-prism-plan.md personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/index.md personal/projects/balda/balda.md personal/projects/balda/setup.md personal/projects/virfield.md work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-16 18:30:17 +06:00
1 parent fa9c021729
commit 0743e59633
6 files changed
+73 -22

No files matched your search

+13 -3
View File
@@ -1,6 +1,6 @@
# Balda / Execution Broker — план приёмки
Проверено: **2026-10-16**. Приёмка закрыта в согласованном проверенном объёме; Broker готов к релизу и эксплуатации в принятых конфигурациях. Точные работающие версии и доказательства: [[personal/projects/balda/execution-broker]]. Запуск двух Balda: [[personal/projects/balda/setup]].
Проверено: **2026-10-16**. Приёмка закрыта в согласованном проверенном объёме; Датированные доказательства принятого контура сохранены; текущая сверка обновления и её macOS gate описаны ниже. Точные работающие версии и доказательства: [[personal/projects/balda/execution-broker]]. Запуск двух Balda: [[personal/projects/balda/setup]].
## Контур
@@ -17,7 +17,7 @@ Balda ведёт исходную беседу и durable waits; Broker упра
- Исправленные macOS bootstrap развёрнуты; прежние архивы и конфиг сохранены для отката. Подготовлен защищённый GPG escrow; шесть тестов используют синтетические ключи.
- Production macOS27/Codex принят на Virfield `8bfff9f`: фактический owner-approved continuation, reviewer `os.open` → EPERM, восемь заново скачанных SHA256-проверенных артефактов, независимый повтор четырёх тестов, закрытая Prism Story, credentials свободны и cleanup подтверждён. Приватное доказательство: `state/broker-acceptance-20261016/verification.json`. Задача `.6.4` закрыта; старые неудачные попытки сохранены как история.
- Reviewer fix `6c70647` перенесён в текущую ветку Broker; добавлены развёрнутое Darwin zombie-group исправление и native regression. Исходный workflow совпадает с принятым macOS pack `b09f2be2`. В этом macOS прогоне ключи не экспортировались; последующая разрешённая recovery-проверка описана ниже.
- Reviewer fix `6c70647` включён в запушенный Broker main `13c29ac`; добавлены развёрнутое Darwin zombie-group исправление и native regression. Исходный workflow совпадает с принятым macOS pack `b09f2be2`. В этом macOS прогоне ключи не экспортировались; последующая разрешённая recovery-проверка описана ниже.
- Linux rollout и production-приёмка нового image `e9e1ab5e8c0f` закрыты: одинаковый `b09f2be2` в Broker/gateway/worker, два успешных прогона с независимым повтором 4/4 тестов, проверенные SHA256 артефактов. Отмена во время implementer сохранила пять артефактов и checkpoint. Restart Broker/gateway/issuer сохранил тот же run/deadline/owner; после успеха credentials освобождены, собственных container/volume нет, Prism Story закрыта и повторный sync пуст. Beads `.6.5` closed; `.6.4` macOS также closed.
- Реальная natural expiry Claude на Docker проверена 2026-10-16: исходный access token истёк 2026-10-15, свежий worker обновил сессию и выполнил specify/design/breakdown; до реализации run отменён, новый cache того же account/organization checkpointed, owner освобождён, пять SHA256-проверенных артефактов, cleanup=done, ресурсов нет. `state/broker-acceptance-20261016/claude-expiry-verification.json`. Upstream revocation и повторный browser login этим не проверены.
@@ -27,6 +27,16 @@ Balda ведёт исходную беседу и durable waits; Broker упра
- Релизный кандидат `0.1.0-rc.33`, source `ae92c15`: четыре runtime archives и plugin собраны отдельно от rc32; все четыре платформы прошли native binary-only checks, включая физические Intel Mac/Linux AMD64. `make check`/race/vet и SHA256 прошли. `state/broker-acceptance-20261016/rc33-release-verification.json`. Публикации не было.
- Контролируемые provider failure checks на Linux с synthetic credentials прошли для Codex/Claude/DeepSeek; все собственные контейнеры/volumes удалены, артефакты проверены по SHA256 и secret scanner. `state/broker-acceptance-20261016/provider-refusal-verification.json`. Ошибки подготовки fixture сохранены отдельно и не включены в успешное доказательство.
## Сверка main и production — 2026-10-16
Broker/Prism/gateway и native issuers обновлены до `rc34` из запушенного `main 13c29ac`; Callee — чистый upstream `95f7f11`, оба Balda — чистый upstream `3a58254`. Core binary hashes и Runner/Callee во всех четырёх Linux images и четырёх macOS bootstrap packs сверены. Broker/Prism MCP доступны из обоих Balda; exact Linux worker прошёл Callee/Human/restart/artifacts/cleanup в изолированном fixture. State, sessions, home volumes, config и auth сохранены.
В Broker локально и на origin только `main`. Завершённые ветки удалены по явному разрешению владельца после проверки содержимого; отсутствовавшие installer/workspace настройки перенесены до удаления. Git bundle не создавались. Планы и личные журналы убраны из tracked source и перенесены с обратным чтением в [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/index|архив 11 документов]].
Опубликованный Virfield `v2.1.0` установлен и выявил два fresh macOS preparation failures, оба leases released. Исправление `launchctl bootstrap` собственного GUI-agent уже в запушенном Virfield `main 2c64888`. Точный неопубликованный кандидат `v2.1.1` прошёл source/package gates и отдельную fresh VM с native GUI/Keychain/SSH; эта VM released. Полный Broker → macOS XCTest на новом комплекте ещё проверяется. Этот текущий gate не подменяется историческим успехом на `8bfff9f`.
GitHub Actions Broker main не стартовал из-за account billing/spending limit; это не ошибка workflow. Локальный `make check` прошёл, удалённый CI не объявляется зелёным. Точные версии и результаты — [[personal/projects/balda/execution-broker]] и [[personal/projects/virfield]]. Приватные receipts текущей сверки: `state/main-production-sync-20261016/`.
## Принятый объём и ограничения
2026-10-16 владелец явно согласовал закрытие в проверенном режиме: **«Да, закрыть в проверенном режиме»**. Это изменение границ приёмки. Корневая Story `eb-71b7971ac3fdd03b8ff6b198`, `.6` и `.6.6` закрыты после проверки результатов; все дочерние задачи закрыты. Блокирующих пунктов в согласованном объёме нет. Публикация релиза не выполнялась.
@@ -37,6 +47,6 @@ Balda ведёт исходную беседу и durable waits; Broker упра
Итог: `state/broker-acceptance-20261016/final-release-readiness.json`; закрытие Beads — `beads-acceptance-closure.json`. Финальный rc33 `ae92c15` содержит согласованную документацию; exact archives прошли четыре нативные проверки, `make check` и SHA256. Рабочие аккаунты не изменены, тестовые ресурсы очищены. Независимая recovery-копия сохранена вне тестовых leases; её проверенный runtime — исходный rc33 `d296c73`, до финального документационного commit.
Задачи и их статусы ведутся в локальном Beads/Prism, корневая Story `eb-71b7971ac3fdd03b8ff6b198`. Этот документ задаёт границы приёмки, а не второй backlog. Контракты и команды — в `docs/work-plan.md`, `docs/support.md`, `docs/recovery.md`, `docs/executors.md` репозитория Broker.
Задачи и их статусы ведутся в локальном Beads/Prism, корневая Story `eb-71b7971ac3fdd03b8ff6b198`. Этот документ задаёт границы приёмки, а не второй backlog. Контракты и команды — в `docs/support.md`, `docs/recovery.md`, `docs/executors.md` репозитория Broker. Исходный work-plan перенесён из Git в [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/docs/work-plan]].
Исторические исследования и PR-дневник сохранены отдельно: [[personal/projects/archive/balda-callee-prism-plan-through-2026-10-14]]. Они не описывают текущую установку.
@@ -1,6 +1,6 @@
# Очистка репозитория Execution Broker — 2026-10-16
Сохранены девять исходных документов из commit `ae92c15`. Содержимое каждого проверено обратным чтением. Планы, исследования, отчёты приёмки и персональный deployment state ведутся в Obsidian; в Git остаются продуктовые контракты, инструкции и changelog. Это архив до очистки, его старые открытые пункты не отменяют согласованное закрытие приёмки.
Сохранены одиннадцать исходных документов из commit `ae92c15`. Содержимое каждого проверено обратным чтением. Планы, исследования, отчёты приёмки и персональный deployment state ведутся в Obsidian; в Git остаются продуктовые контракты, инструкции и changelog. Это архив до очистки, его старые открытые пункты не отменяют согласованное закрытие приёмки.
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/README]]
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/CHANGELOG]]
@@ -12,4 +12,7 @@
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/docs/testing]]
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/docs/deployment]]
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/docs/operations]]
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/docs/telegram-approvals]]
Актуальные границы и установка: [[personal/projects/balda/execution-broker]]. Приёмка: [[personal/plans/balda-callee-prism-plan]].
+3 -3
View File
@@ -1,11 +1,11 @@
# Balda — актуальный обзор
Проверено: **2026-10-15**. Balda принимает задачи из чата и связывает provider execution, сессии и интеграции. Текущий локальный запуск — **два инстанса на Mac, Mattermost, Codex ACP**: `balda-mm-mac` и `balda-mm-eagle`. Оба работают на чистом `upstream/main` — `b5f7d5b4`, без локальных патчей; Eagle имеет те же основные MCP и дополнительный Asana readonly. Точные версии и проверенные границы продолжений — в карточке запуска.
Проверено: **2026-10-16**. Balda принимает задачи из чата и связывает provider execution, сессии и интеграции. Текущий локальный запуск — **два инстанса на Mac, Mattermost, Codex ACP**: `balda-mm-mac` и `balda-mm-eagle`. Оба работают на чистом `upstream/main` — `3a58254`, без локальных патчей; Eagle имеет те же основные MCP и дополнительный Asana readonly. Точные версии и проверенные границы продолжений — в карточке запуска.
## Источники текущего состояния
- [[personal/projects/balda/setup|Работающий контейнер, конфигурация, MCP и перезапуск]]
- [[personal/projects/balda/execution-broker|Broker/Balda: проверенные версии, артефакты и незавершённая работа]]
- [[personal/projects/balda/execution-broker|Broker/Balda: проверенные версии, артефакты и границы приёмки]]
- [[personal/projects/balda/soul|Снимок global instruction]]
- [[personal/projects/balda/workspace-context|Provider context]]
@@ -19,7 +19,7 @@ Upstream: [baldaworks/balda](https://github.com/baldaworks/balda). Fork: [mallex
Действующий конфиг: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`. Dev-конфиг в `~/Developer/balda` — отдельный файл. Provider — `codex_acp`, reasoning `medium`; Obsidian MCP — `type: http`, `http://host.docker.internal:3101/mcp`.
Balda и локальные агенты владеют оркестрацией, MCP, search/Obsidian и прикладными workflows. Execution Broker владеет disposable worker, lifecycle, credentials, инструментами и артефактами; его незавершённые задачи перечислены отдельно.
Balda и локальные агенты владеют оркестрацией, MCP, search/Obsidian и прикладными workflows. Execution Broker владеет disposable worker, lifecycle, credentials, инструментами и артефактами; принятый объём и ограничения перечислены в карточке Broker.
Документация кода: [README](https://github.com/baldaworks/balda/blob/main/README.md), [configuration](https://github.com/baldaworks/balda/blob/main/docs/reference/configuration.md), [plugins](https://github.com/baldaworks/balda/blob/main/docs/reference/plugins.md).
+13 -7
View File
@@ -1,8 +1,8 @@
# Balda — актуальный локальный запуск
Проверено: **2026-10-15** по обоим работающим контейнерам, Compose, конфигурации и реальным MCP-вызовам.
Проверено: **2026-10-16** по обоим работающим контейнерам, Compose, binary hashes, сохранённому state и authenticated Broker/Prism MCP.
Обзор: [[personal/projects/balda/balda|Balda]]. Broker, готовность кандидата и оставшаяся работа: [[personal/projects/balda/execution-broker|Execution Broker — текущий локальный контур]].
Обзор: [[personal/projects/balda/balda|Balda]]. Broker, версии и границы приёмки: [[personal/projects/balda/execution-broker|Execution Broker — текущий локальный контур]].
## Что работает сейчас
@@ -11,8 +11,8 @@
| Хост / контейнер | Mac / `balda-mm-mac` |
| Канал | Mattermost |
| Provider | `codex`, type `codex_acp`, reasoning effort `medium` |
| Образ обоих инстансов | `balda-balda:upstream-b5f7d5b4`, pinned image ID `sha256:6703dfc84b0d383cd0bbdd014a803074963a1ce87a11ae036b46cd3a3c0389bd` |
| Balda source | Чистый `upstream/main` — `b5f7d5b485301c3ab21c9622e6bf1dad2f0f307b`, без локальных патчей; Linux ARM64 binary SHA256 `b23268d90b72b3a2f02b28a07340ca85f5c1086fb6da328b84e659be7b330ace` |
| Образ обоих инстансов | `sha256:ee0567594b8f8422d71b3bb37aa47ef1222b089af6b24e17d50ac9c63a4ef22f` |
| Balda source | Чистый `upstream/main` — `3a58254bb05747fdeecde070b1828e770ed589a4`, без локальных патчей; Linux ARM64 binary SHA256 `9baff2c85757e839c6df3bd516518cc3d06bde2ad298a3dfdcdad1479ae186b7` |
| Compose | `/Users/admin/Docker/balda-mm-mac/docker-compose.yml` |
| Активный конфиг | `/Users/admin/Docker/balda-mm-mac/config/config.yaml` |
| State / plugins | `/Users/admin/Docker/balda-mm-mac/state` |
@@ -23,15 +23,15 @@ Config bind-mounted в `/workspace/.config/balda` read-only для контей
## Eagle и общие инструменты
Eagle работает на том же Mac в `balda-mm-eagle`; Compose, config, state и work находятся в `/Users/admin/Docker/balda-mm-eagle/`, service — `eagle`, отдельный home volume — `balda_eagle-home`. Образы обоих инстансов одинаковы. Авторизации Codex раздельные; при обновлении home volumes сохранены. Серверная проверка: models endpoint отвечает HTTP 200 у обоих. У @balda реальная генерация в отдельной ephemeral read-only сессии завершилась ответом `AUTH_OK` и `turn.completed`; исходный аккаунт сохранён. После перечитывания credentials Mattermost websocket подключён, существующие беседы не сбрасывались. Не копировать auth между разными аккаунтами.
Eagle работает на том же Mac в `balda-mm-eagle`; Compose, config, state и work находятся в `/Users/admin/Docker/balda-mm-eagle/`, service — `eagle`, отдельный home volume — `balda_eagle-home`. Образы обоих инстансов одинаковы. Авторизации Codex раздельные; при обновлении home volumes сохранены. Историческая серверная проверка 2026-10-15: models endpoint отвечает HTTP 200 у обоих. У @balda реальная генерация в отдельной ephemeral read-only сессии завершилась ответом `AUTH_OK` и `turn.completed`; исходный аккаунт сохранён. После перечитывания credentials Mattermost websocket подключён, существующие беседы не сбрасывались. Не копировать auth между разными аккаунтами.
У обоих включены одинаковые Obsidian, Execution Broker и Prism MCP, одинаковые права runtime и managed plugin `execution-broker` rc.32. Проверены реальные initialize/tools-list: Obsidian — 15, Broker — 26, Prism — 5 инструментов; списки совпадают. Eagle дополнительно имеет `asana-readonly`, URL `http://asana-readonly:3100/mcp` в приватной Docker-сети. Отдельный контейнер `balda-eagle-asana-readonly` не публикует порт на хост. Реальное чтение Asana прошло; все пять операций изменения и запись заметок в файл отклоняются сервером.
У обоих включены одинаковые Obsidian, Execution Broker и Prism MCP, одинаковые права runtime и managed plugin `execution-broker` rc.32. При настройке 2026-10-15 проверены реальные initialize/tools-list: Obsidian — 15, Broker — 26, Prism — 5 инструментов; списки совпадают. Eagle дополнительно имеет `asana-readonly`, URL `http://asana-readonly:3100/mcp` в приватной Docker-сети. Отдельный контейнер `balda-eagle-asana-readonly` не публикует порт на хост. Тогда реальное чтение Asana прошло; все пять операций изменения и запись заметок в файл отклоняются сервером.
В обоих конфигурациях provider `codex_acp`, reasoning `medium`, явный model отсутствует. Последние записи Codex подтверждают `gpt-6.1-sol` у обоих. При выравнивании инструментов настройки основной модели не менялись. `balda.nats.max_store` у обоих — `16gb`.
## Продолжение задач
Тип канала берётся из канонической привязки сессии. Для Mattermost он остаётся `mattermost`, включая native waits и возврат результата; `human.delivery_channel=telegram` меняет только доставку одобрения. SQLite/PostgreSQL migration исправляет прежний сгенерированный Telegram-заголовок в сохранённых ACP instructions без `/reset`, сохраняя provider thread, capability snapshot и историю. Согласованные Linux SQLite snapshots обоих инстансов прошли integrity/foreign-key checks; последнее обновление сохранило все 2277 прежних событий основного инстанса, locator, capability snapshots, provider threads и auth. Плагин rc32 совместим с текущей Balda и не требовал переустановки; immutable revisions сохранены. Актуальные согласованные state/home/config backups и отчёты: `state/balda-upstream-merged-20261015/`; полный race, lint, architecture, SQLite/PostgreSQL integration, migration validators, govulncheck, replay/NATS/ingress, managed plugin lifecycle и native wait restart прошли на точном upstream. Авторизация обоих инстансов после обновления подтверждена HTTP 200; backup миграции контекста также сохранён в `state/balda-channel-context-20261015/`.
Тип канала берётся из канонической привязки сессии. Для Mattermost он остаётся `mattermost`, включая native waits и возврат результата; `human.delivery_channel=telegram` меняет только доставку одобрения. SQLite/PostgreSQL migration исправляет прежний сгенерированный Telegram-заголовок в сохранённых ACP instructions без `/reset`, сохраняя provider thread, capability snapshot и историю. Согласованные Linux SQLite snapshots обоих инстансов прошли integrity/foreign-key checks; последнее обновление сохранило все 2277 прежних событий основного инстанса, locator, capability snapshots, provider threads и auth. Плагин rc32 совместим с текущей Balda и не требовал переустановки; immutable revisions сохранены. Согласованные state/home/config backups и отчёты обновления 2026-10-15: `state/balda-upstream-merged-20261015/`; полный race, lint, architecture, SQLite/PostgreSQL integration, migration validators, govulncheck, replay/NATS/ingress, managed plugin lifecycle и native wait restart тогда прошли на `b5f7d5b4`. Авторизация обоих инстансов после обновления подтверждена HTTP 200; backup миграции контекста также сохранён в `state/balda-channel-context-20261015/`.
В этой версии generic webhooks выполняют изолированные задания. Они не продолжают исходную сессию. Старые `routes.*.path`, `envelope.target`, `key_from_body`, `mode` и `fallback_to` удалены из конфигурации; listener задаётся через `balda.http`. Сейчас он слушает loopback `127.0.0.1:8095`.
@@ -39,6 +39,12 @@ Eagle работает на том же Mac в `balda-mm-eagle`; Compose, config
Оба инстанса имеют также одинаковые пять глобальных Codex skills и одинаковую Codex tool policy; различий не найдено. Обновление плагина выполнено штатной переустановкой из нового operator source с сохранением `plugin-data/execution-broker`, старых revisions/catalog snapshots и содержимого прежнего marketplace. Существующие сессии не сбрасывались.
## Обновление 2026-10-16
Оба инстанса развёрнуты на чистом upstream `3a58254`; hash работающего binary сверён с точной сборкой. Сохранены config bytes, environment values, mounts, оба home volume, auth, все 2277 прежних событий основного инстанса и 49 session metadata/bindings. SQLite integrity и foreign keys прошли. На точном новом исходнике прошли полный race, lint, managed plugin lifecycle и native wait restart. Из обоих production network namespaces проверены 26 Broker tools, 5 Prism tools и `execution_profiles`. Новые проверки не вызывали модель и не отправляли сообщения; старые model/Asana/conversational receipts выше относятся к прежним датированным прогонам.
Актуальные snapshots и доказательства: `state/main-production-sync-20261016/coordinated-stack-snapshot/`, `active-deployment-before/`, `production-deployment.json`, `live-baldda-mcp.json`. Развёрнутый Broker/Prism/gateway — `rc34/13c29ac`; закреплённые managed plugin revisions и session capability snapshots сохранены.
## Изменения и перезапуск
| Изменение | Действие |
+14 -6
View File
@@ -1,14 +1,22 @@
# Virfield
Последний опубликованный релиз: [v2.1.0](https://github.com/mallexxx/virfield/releases/tag/v2.1.0), stable Latest, commit `9658646da0431c994805c5de2b919e0fb8f1afc1`. Архив macOS/arm64 и SHA256SUMS загружены и проверены обратным скачиванием. [[personal/projects/virfield-release-v2.1.0|Протокол публикации]]. Публикация не переустанавливала production.
Проверено: **2026-10-16**. Последний опубликованный релиз — [v2.1.0](https://github.com/mallexxx/virfield/releases/tag/v2.1.0), source `9658646da0431c994805c5de2b919e0fb8f1afc1`. Архив и SHA256SUMS проверены обратным скачиванием. Его первоначальная публикация не меняла production; в ходе последующей сверки Broker релиз был установлен штатным system LaunchDaemon с сохранением signing identity, Full Disk Access и всех девяти исходных образов. [[personal/projects/virfield-release-v2.1.0|Протокол первоначальной публикации]].
Текущий `main`: `c216cbc752ff4107614b2a3e12ea2d1daa5cc643`. README на английском, как и остальная документация репозитория: назначение и возможности, git clone/build, новая установка, запуск, web UI для мониторинга, MCP для Codex/Claude Code и готовые запросы агенту. Для web UI указаны `http://127.0.0.1:7780/`, вход токеном из deployment и представления Fleet/Images/Activity с автоматическим обновлением. Адрес, вход, сохранение токена и возможности сверены с HTTP router и исходниками UI. Язык переписки не меняет язык документации проекта. Проверены 24 локальные ссылки, синтаксис шести shell-блоков, отсутствие кириллицы и `git diff --check`. Изменён только README; runtime-код, установленная версия и опубликованный v2.1.0 не менялись. Commit запушен; GitHub main и локальный HEAD совпадают, checkout чистый.
Текущий local/GitHub `main`: **`2c64888abed617722e79d618dd4911efa0c4b126`**, checkout чистый, локально и на origin только `main`. Изменение исправляет обработку ошибки `launchctl bootstrap` уже зарегистрированного собственного guest Keychain agent: recovery разрешён только после проверки точного launchd job, затем остаются все прежние native readiness gates. Добавлены закрытый bootstrap diagnostic и regression с настоящим shell-блоком; контрфактический тест на старом коде воспроизвёл отказ. Make check/race, Staticcheck, module verify, Govulncheck и make check из распакованного точного кандидата прошли.
Релизная очистка завершена и запушена в `main`: `aaf953d78d90768596afb99384ff0bb8e7764509`. Локально и на GitHub осталась только `main`; рабочая ветка удалена после подтверждения слияния, открытых PR нет, checkout чистый. План и приёмка ведутся здесь; в репозитории остаются инструкции.
## Установленная версия и проверка обновления
## Принятая установленная версия
Сейчас временно установлен **неопубликованный кандидат v2.1.1**, source `2c64888`, для native validation. Опубликованный v2.1.0 сохранён для отката в `~/.virfield-v2/upgrades/20261016-v2.1.1-before`. Ни tag, ни GitHub Release v2.1.1 пока не созданы. Пакет собран из чистого committed source; установленная копия повторно подписана прежней локальной identity без изменения исходного release archive.
Установленная версия: `0.0.0-acceptance-runbooks`, source `8bfff9f59cab918877d060437a1ad190905a5040`, schema 10. Принят текущий VM/MCP/Broker-контур, а не вся целевая архитектура 3.0. Релизная очистка не переустанавливает production и не меняет девять исходных образов.
Stock v2.1.0 дважды не завершил fresh macOS lease preparation: `guest_keychain_failed`, в закрытой диагностике `launchctl bootstrap` exit5. Оба leases released. Это не потерянный source fix: встроенный keychain.sh в прежнем принятом binary и v2.1.0 совпадает побайтно; используется тот же golden `image-f11d9a1ee2991eada08c4f734c33df6d`.
Свежая VM кандидата `lease-52e620c674d514dd8c9c49880e8980f6` прошла native GUI/Keychain add-read-compare-delete, unlocked console без dialogs, 1920×1080 и отдельный pinned caller SSH. VM released, cleanup job succeeded. В этом успешном запуске bootstrap recovery branch не сработал; его прохождение подтверждено regression, а не выдано за наблюдённое на VM. Полный Broker → macOS XCTest post-upgrade прогон выполняется отдельно.
Доказательства: `state/main-production-sync-20261016/virfield-candidate-upgrade.json`, `virfield-fix-source-checks.json`, `virfield-exact-candidate-check.log`, `macos-fix-validation/verification.json`, `macos-readiness-diagnostic/finding.json`.
## Историческая принятая версия
Исходная приёмка VM/MCP/Broker выполнена на `0.0.0-acceptance-runbooks`, source `8bfff9f59cab918877d060437a1ad190905a5040`, schema10. Следующие результаты относятся к тому датированному контуру; они не заменяют проверку текущего кандидата.
Пройдены Tart/native GUI и отдельный SSH, реальные перезагрузки, ключевая изоляция, Xcode/Swift, экспорт артефактов, SSH/desktop и подтверждённый release/revocation. HTPC Sonoma/Sequoia прошли полные циклы. Проверены factory/private GHCR roundtrip, sparse golden transfer, revalidation существующей VM, durable diagnostics, admission/wait/resume и однобайтовая граница node image cache. Legacy iOS профиль прошёл свежую factory/worker квалификацию с armv7 compile/link.
@@ -42,6 +50,6 @@ macOS make check/build/Staticcheck прошли; настоящий read-only vo
- Реализовать signed node-agent, WoL relay/power intents, grants/connectors и physical-host/browser desktop при отдельном приоритете.
- Развивать /api/v3 capability selection, Target/EnvironmentProfile/ConnectionGrant, short-lived access, VS Code extension и linked Console/Broker flows.
- Расширить crash/host-loss/partition/full-disk matrix, metrics/alerts, signed promotion/revocation.
- Отдельно опубликовать исходное Broker reviewer исправление в репозитории Broker. Локальная source-ветка/worktree не удалялась очисткой Virfield; patch сохранён в [[personal/projects/archive/virfield-release-cleanup-2026-10-16/docs/acceptance/broker-reviewer-readonly]]. Production correction уже применена и проверена.
Broker reviewer исправление уже входит в запушенный Broker main `13c29ac`. Завершённые локальные и remote ветки Broker удалены после содержательной сверки, reviewer worktree сохранён detached. Архив исходного patch: [[personal/projects/archive/virfield-release-cleanup-2026-10-16/docs/acceptance/broker-reviewer-readonly]].
Детальные прежние планы сохранены в [[personal/projects/archive/virfield-release-cleanup-2026-10-16/docs/VIRFIELD-3-PLAN]] и архиве superpowers. Их старые pending-статусы не заменяют результаты выше. Автоматизация остаётся на паузе по указанию пользователя.
@@ -10,7 +10,7 @@ tags:
**Proposed change:**
Replace separate `init_failed`, `stuck`, `recovery[with/without reload]` and CPM post-reload-failure events with `web_extension_cpm_episode`. Each report contains the initial failure and its observed outcome, so diagnosis no longer allows joining a sequence of events.
Replace separate `init_failed`, `stuck`, `recovery[with/without reload]` and CPM post-reload-failure events with `web_extension_cpm_episode`. Each report contains the initial failure and its observed outcome, so diagnosis no longer requires joining separate failure, stuck and recovery events.
@@ -20,6 +20,12 @@ The first `4s` timeout opens an episode and captures one diagnostic snapshot.
Later failures and reloads update local state. A qualifying dashboard response or a five-minute deadline closes the episode and emits one logical report. The deadline works without further navigations. Existing stuck detection and automatic reload behavior are preserved.
A response does not prove `initResp` delivery or recovery of every failing tab. Deadline expiry does not prove permanent failure; unfinished episodes can be lost if the monitor or process is destroyed.
**Reporting frequency:**
Both platforms use `daily+count` (`.dailyAndCount`). The first completed episode each day sends `_daily` and `_count` with the same summary; every later completed episode sends `_count` only. Daily deduplication is by event name, across all outcomes. `_daily` estimates affected installations per day; `_count` counts completed episodes.
**Attribution:**
@@ -61,8 +67,26 @@ Standard metadata remains: `appVersion` on both platforms, plus `pixelSource` an
**Remove retired pixels from** [✓ TD: CPM failure pixels attribution](https://app.asana.com/1/137249556945/task/1218619301158188)**:**
- `debug_web_extension_cpm_initialization_failed_after_session_restoration`
- `debug_web_extension_cpm_initialization_failed_after_other`
- `debug_web_extension_cpm_initialization_failed_after_tab_crash`
- `debug_web_extension_cpm_initialization_failed_after_extension_reload`
- `debug_web_extension_cpm_messaging_stuck_session_restoration`
- `debug_web_extension_cpm_messaging_stuck_tab_crash`
- `debug_web_extension_cpm_messaging_stuck_extension_reload`
- `debug_web_extension_cpm_messaging_stuck_other`
- `debug_web_extension_cpm_messaging_recovered_without_extension_reload`
- `debug_web_extension_cpm_messaging_recovered_after_extension_reload`
- `debug_web_extension_cpm_messaging_extension_reload_failed`