[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 — план приёмки # 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; шесть тестов используют синтетические ключи. - Исправленные 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` закрыта; старые неудачные попытки сохранены как история. - 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. - 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 этим не проверены. - Реальная 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`. Публикации не было. - Релизный кандидат `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 сохранены отдельно и не включены в успешное доказательство. - Контролируемые 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` закрыты после проверки результатов; все дочерние задачи закрыты. Блокирующих пунктов в согласованном объёме нет. Публикация релиза не выполнялась. 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. Итог: `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]]. Они не описывают текущую установку. Исторические исследования и PR-дневник сохранены отдельно: [[personal/projects/archive/balda-callee-prism-plan-through-2026-10-14]]. Они не описывают текущую установку.
@@ -1,6 +1,6 @@
# Очистка репозитория Execution Broker — 2026-10-16 # Очистка репозитория 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/README]]
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/CHANGELOG]] - [[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/testing]]
- [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/docs/deployment]] - [[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]]. Актуальные границы и установка: [[personal/projects/balda/execution-broker]]. Приёмка: [[personal/plans/balda-callee-prism-plan]].
+3 -3
View File
@@ -1,11 +1,11 @@
# Balda — актуальный обзор # 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/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/soul|Снимок global instruction]]
- [[personal/projects/balda/workspace-context|Provider context]] - [[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`. Действующий конфиг: `/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). Документация кода: [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 — актуальный локальный запуск # 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` | | Хост / контейнер | Mac / `balda-mm-mac` |
| Канал | Mattermost | | Канал | Mattermost |
| Provider | `codex`, type `codex_acp`, reasoning effort `medium` | | Provider | `codex`, type `codex_acp`, reasoning effort `medium` |
| Образ обоих инстансов | `balda-balda:upstream-b5f7d5b4`, pinned image ID `sha256:6703dfc84b0d383cd0bbdd014a803074963a1ce87a11ae036b46cd3a3c0389bd` | | Образ обоих инстансов | `sha256:ee0567594b8f8422d71b3bb37aa47ef1222b089af6b24e17d50ac9c63a4ef22f` |
| Balda source | Чистый `upstream/main` — `b5f7d5b485301c3ab21c9622e6bf1dad2f0f307b`, без локальных патчей; Linux ARM64 binary SHA256 `b23268d90b72b3a2f02b28a07340ca85f5c1086fb6da328b84e659be7b330ace` | | Balda source | Чистый `upstream/main` — `3a58254bb05747fdeecde070b1828e770ed589a4`, без локальных патчей; Linux ARM64 binary SHA256 `9baff2c85757e839c6df3bd516518cc3d06bde2ad298a3dfdcdad1479ae186b7` |
| Compose | `/Users/admin/Docker/balda-mm-mac/docker-compose.yml` | | Compose | `/Users/admin/Docker/balda-mm-mac/docker-compose.yml` |
| Активный конфиг | `/Users/admin/Docker/balda-mm-mac/config/config.yaml` | | Активный конфиг | `/Users/admin/Docker/balda-mm-mac/config/config.yaml` |
| State / plugins | `/Users/admin/Docker/balda-mm-mac/state` | | State / plugins | `/Users/admin/Docker/balda-mm-mac/state` |
@@ -23,15 +23,15 @@ Config bind-mounted в `/workspace/.config/balda` read-only для контей
## Eagle и общие инструменты ## 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`. В обоих конфигурациях 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`. В этой версии 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. Существующие сессии не сбрасывались. Оба инстанса имеют также одинаковые пять глобальных 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 # 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. Пройдены 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 при отдельном приоритете. - Реализовать 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. - Развивать /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. - Расширить 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-статусы не заменяют результаты выше. Автоматизация остаётся на паузе по указанию пользователя. Детальные прежние планы сохранены в [[personal/projects/archive/virfield-release-cleanup-2026-10-16/docs/VIRFIELD-3-PLAN]] и архиве superpowers. Их старые pending-статусы не заменяют результаты выше. Автоматизация остаётся на паузе по указанию пользователя.
@@ -10,7 +10,7 @@ tags:
**Proposed change:** **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. 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:** **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)**:** **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_session_restoration`
- `debug_web_extension_cpm_initialization_failed_after_other` - `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`