[2026-10-14] eagle: personal/plans/balda-callee-prism-plan.md personal/projects/balda/execution-broker.md personal/projects/balda/setup.md personal/projects/personal-os/eagle-dashboard.md personal/projects/personal-os/personal-os-architecture.md personal/projects/personal-os/personal-os-failed-approaches.md personal/projects/personal-os/personal-os-status-2026-10.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-14 17:12:17 +06:00
1 parent ef4cc6dba7
commit 76f542a25d
7 files changed
+29 -24

No files matched your search

+16 -13
View File
@@ -14,22 +14,25 @@
Проверены реальные Docker/Callee Human pause → restart → resume → 5 артефактов → cleanup, embedded Beads и signed host-plan с rollback. Отдельно Linux ARM64 архив установлен без Go и source checkout: 4 сервисных образа, MCP, перезапуск Broker, 5 артефактов, succeeded и cleanup=done. Чистая установка закреплённых Claude/OpenCode/Node и ACP initialize прошла на macOS/Linux ARM64 без provider inference. Все четыре release-архива выполнили проверки версий, vault import/revoke, MCP, отказа без авторизации и SQLite backup; AMD64 на обеих ОС проверен через эмуляцию, не на native AMD64. Пять архивов rc.26 и SHA256SUMS лежат в `dist/`.
Полный отчёт и логи: `/Users/admin/Developer/execution-broker/state/production-readiness-20261014/local-checks.json`. Задача Balda `balda-7w4` закрыта в локальном Beads-трекере. Обе ветки и коммиты сохранены локально, checkout чистые; автоматическая проверка запретила push исходников и истории без явного разрешения владельца.
Полный отчёт и логи: `/Users/admin/Developer/execution-broker/state/production-readiness-20261014/local-checks.json`. Прежнее закрытие локальной задачи Balda `balda-7w4` отменено после ревью; задача переоткрыта, подробности ниже. Обе ветки и коммиты сохранены локально, checkout чистые; автоматическая проверка запретила push исходников и истории без явного разрешения владельца.
### Что этим прогоном не завершено
### Границы Broker и оставшаяся работа
- Согласованное развёртывание кандидата, worker image pins, bootstrap-пакетов и plugin в действующем контуре; свежая live-приёмка conversational NATS recovery. Сейчас работающий код прежний.
- Native AMD64-приёмка; текущие AMD64 runtime результаты получены через эмуляцию.
- Per-agent OS/tool/MCP/fs/network grants, независимые точные owner capabilities, grants на внешние записи и применение одобренного config diff.
- Typed SSH target/command catalog, bootstrap и reconciliation неопределённого remote outcome.
- Универсальная подготовка стеков Linux/macOS — добавлена в `docs/work-plan.md`, §3.1: декларативные версии/источники/проверки SDK и инструментов, анализ требований репозитория, provisioning до запуска, immutable cache, ограниченный rebuild/resume при недостающей зависимости. Приёмка включает Make/C/CMake, Python, Node и новый Rust/JVM профиль без изменения кода Broker. Установка Go переносится из отдельного Go-specific кода в общий механизм.
- Run-to-run artifact inputs/retention holds и общие immutable macOS tooling/Git caches сверх установленного Go SDK.
- Полный iPad sign/upload/install/unlock/launch с физическим устройством и отказами.
- Configured search/extraction, scoped Obsidian grants, exact-head PR/CI review, idempotent publication и миграция Hermes/scheduled/browser/media/attachment flows.
- Guest-scoped UI/AX/recording, OS boundary, реальная red/green UI-регрессия, exact-head CI, последнее passing video и крупные recording artifacts.
- Прямые ACP autoapproval/context-subagent flows Balda и восстановление после потери хоста/Keychain.
Предыдущий список смешивал Broker с локальными агентскими сценариями. Полный iPad sign/upload/install/unlock/launch, конфигурация search/Obsidian MCP, PR-workflows, миграция Hermes и решения об общем доступе к vault принадлежат Balda/локальному агенту или конкретному проекту. Включение их в условия готовности релиза Broker было ошибкой. Никакая новая политика прав Obsidian этим прогоном не реализована и не применялась. UI red/green и запись для конкретного приложения — его workflow; Broker отвечает за используемые им общие механизмы worker/guest execution и артефактов.
Исходные требования: `docs/work-plan.md`, `docs/ipad-deployment-plan.md`, `docs/hermes-workflow-gap-analysis.md`, [[work/wiki/apple-browsers/vm-ui-testing]]. Локальный кандидат принят в проверенном объёме; полная дорожная карта и обновление production не объявляются завершёнными.
В актуальном `docs/work-plan.md` остаются собственные задачи Broker: согласованное развёртывание принятых бинарников/образов/bootstrap/plugin, универсальная подготовка стеков Linux/macOS, immutable tooling/Git caches, run-to-run artifact inputs и retention holds. Настраиваемый remote-action API — отдельное будущее расширение; обычный локальный агент может работать по SSH без него. Native AMD64 и off-host/Keychain disaster recovery остаются отдельными неподтверждёнными границами заявляемой поддержки. Физический iPad не является release gate Broker.
### Пересмотр патчей Balda после ревью — 2026-10-14
Старая `codex/production-readiness` / `223b85ad` не готова к upstream PR. Подтверждены четыре дефекта: transient error после durable admission; отсутствие GC receipts/expired records; несовместимые новые NATS caps по умолчанию; outbox policy/wiring в неверных владельцах. Прошедшие ранее тесты эти случаи не покрывали и не подтверждали готовность PR.
Исправления подготовлены отдельно в `/private/tmp/execution-broker-balda-upstream`, ветка `codex/ingress-outbox-v2`, коммит `8615d512be017aab7d11921e33f31ede89416852` прямо поверх свежего upstream `875d78eefd846ea2d54db37260409f412ed9c42f`. Старый merge и дублирующие upstream обновления Go/x/net не перенесены; go.mod/go.sum относительно upstream не менялись.
Теперь локальная запись означает accepted независимо от NATS; pending duplicate возвращает тот же admission receipt, а publisher повторяет исходный envelope. Terminal receipts/expired tombstones удаляются после семи дней, payload в terminal не сохраняется; pending GC не удаляет. NATS budgets включаются только `balda.nats.bounded_streams: true`, по умолчанию прежние caps сохранены. Outbox принадлежит `jobs/commandoutbox`; отдельный `commandoutboxfx` связывает локальные порты chat/command ingress с AppKV и bus. Обновлены `.go-arch-lint.yml`, configuration/operations и архитектурная документация.
Целевые race-регрессии, lint, architecture и build прошли. Полный тестовый прогон со штатным macOS TMPDIR выявил `TestBackofficePluginsRuntimeContracts`: тот же сбой воспроизведён на чистом upstream, а с `TMPDIR=/private/tmp` этот тест проходит. Полный повтор с каноническим TMPDIR запущен; его итог записывается отдельно, пока не объявлен зелёным. Рабочий Balda не обновлялся, ветка не опубликована.
Beads `balda-7w4` переоткрыта после ревью. Это локальная временная база, не доказательство общей готовности PR. CLI существует по абсолютному пути `/private/tmp/execution-broker-native-tools/bd`; обычная команда `bd` не установлена в PATH. Существующая проектная база не содержит issue_prefix; её переинициализация/переименование не выполнялись.
### История приёмки действующих версий
+1 -1
View File
@@ -2,7 +2,7 @@
Execution Broker, Telegram-одобрения и текущая приёмка: [[personal/projects/balda/execution-broker|Execution Broker — текущий локальный контур]].
Локальный кандидат 2026-10-14: Broker `0.1.0-rc.26` / `b64a1ba`, Balda `223b85ad`, ветки `codex/production-readiness`. Локальные race/lint/security/integration/release проверки прошли; изменения не развёрнуты, работающий контейнер `balda-mm-mac` остаётся на прежнем образе. Выбор ветки или коммит не меняет действующий сервис. Подробные доказательства и оставшиеся планы — в карточке выше.
Broker-кандидат 2026-10-14: `0.1.0-rc.26` / `b64a1ba`, локальные проверки сохранены отдельно. Старая Balda `223b85ad` / `codex/production-readiness` отклонена после ревью четырёх дефектов; её зелёные тесты не подтверждали готовность upstream PR. Исправленная ветка `codex/ingress-outbox-v2` / `8615d512` подготовлена на свежем upstream в `/private/tmp/execution-broker-balda-upstream`; актуальные проверки и ограничения — в карточке выше. Изменения не развёрнуты, контейнер `balda-mm-mac` остаётся на прежнем образе. Выбор ветки или коммит не меняет действующий сервис.
_Проверено: 2026-10-09._
@@ -108,7 +108,7 @@ PID-file-based — survives Dashboard restarts without crashing.
| claude_proxy_node | Claude Proxy (node) | localhost | daemon |
| claude_proxy_python | Claude Proxy (python) | localhost | daemon |
| asana_mcp | Asana MCP | localhost | daemon |
| virfield | [[personal/projects/virfield\|Virfield v2]] | `127.0.0.1:7780` by default | separate system LaunchDaemons; dashboard integration not verified |
| virfield | [[personal/projects/virfield\|Virfield (Tart + SSH nodes)]] | `127.0.0.1:7780` by default | system Virfield LaunchDaemon; dashboard integration not verified |
### ML
@@ -328,7 +328,7 @@ When a launchd cron is created and `launchctl print gui/<uid>/<label>` shows `la
- Backend create now rejects non-`every` for launchd (frontend validator also blocks)
- `_list_launchd_crons()` now shows ALL plists (schedule: "none (manual)" if no StartInterval/StartCalendarInterval)
**Virfield (обновлено 2026-09-30):** lifecycle сервисов принадлежит system LaunchDaemons `ai.virfield.virfieldd` и `ai.virfield.lume`, работающим от VM owner. Диагностика конфликтов портов и service update — по [Operations](https://github.com/mallexxx/virfield/blob/main/docs/OPERATIONS.md#system-services). Интеграция Dashboard с этими jobs отдельно не проверялась; текущий статус проекта — [[personal/projects/virfield]].
**Virfield (сверено 2026-10-14):** текущий runtime — Tart + SSH nodes; lifecycle принадлежит system LaunchDaemon `ai.virfield.virfieldd` от VM owner. Старый отдельный `ai.virfield.lume` ещё зарегистрирован с пустым VM inventory и ждёт retirement; новый installer его не создаёт. Service upgrade — по [Operations](https://github.com/mallexxx/virfield/blob/main/docs/OPERATIONS.md#service-upgrades). Интеграция Dashboard с job отдельно не проверялась; текущий статус — [[personal/projects/virfield]].
---
@@ -1,9 +1,11 @@
---
namespace: work
tags: [system, architecture]
last_updated: 2026-04-28
virfield_updated: 2026-09-30
confidence: 1.0
tags:
- system
- architecture
last_updated: 2026-04-28T00:00:00.000Z
virfield_updated: '2026-10-14'
confidence: 1
---
# Personal OS — Architecture
@@ -33,7 +33,7 @@ confidence: 1
| 12 | **Zulip** | май–сент 2026 | Заменён Mattermost; история выгружена, вывод из эксплуатации | [[personal/plans/zulip-decommission]] |
| 13 | **GLM-5.3 как провайдер** | сент 2026 | ~2.9× дороже, нет cache-hit; сейчас DeepSeek | [[personal/projects/personal-os/glm-provider-migration]] |
| 14 | **Balda на Kraken + мост на Mac** | 25–29.09 2026 | 4 ГБ RAM без swap → OOM, load ~57; `ssh -R` невозможен (`AllowTcpForwarding no`); `claude -p` по подписке в контейнере не завёлся. Стек снесён 29.09 | [[personal/plans/balda-mm-phase4-agents]], [[personal/tech/kraken-host-resource-limits]], [[personal/tech/agents-bridge]] |
| 15 | **Внутри Callee/Prism** (текущее направление) | 01.10 2026 | Профиль Claude рвёт ACP-сессию на полной Story; `deepseek-chat` снят DeepSeek; Codex bwrap не стартует в Docker; CI упирается в биллинг GitHub; Monterey в Virfield — `disk_encrypted` | [[personal/plans/balda-callee-prism-plan]], [[personal/projects/virfield]] |
| 15 | **Внутри Callee/Prism** (текущее направление) | 01.10 2026 | Профиль Claude рвёт ACP-сессию на полной Story; `deepseek-chat` снят DeepSeek; Codex bwrap не стартует в Docker; CI упирается в биллинг GitHub; Monterey: исторический Lume `disk_encrypted`; Tart golden 12.7.6/Xcode 13.4.1 принят 2026-10-07 с unlocked APFS encryption at rest | [[personal/plans/balda-callee-prism-plan]], [[personal/projects/virfield]] |
## Сквозные уроки
@@ -55,7 +55,7 @@ confidence: 1
или macOS VM через Virfield; задачи/истории — Prism/Beads.
Статус: сквозная приёмка `/execute` из MM не пройдена, NO-GO для stable
([[personal/plans/balda-callee-prism-plan]]).
- **Virfield** (VM-лизы для UI-тестов): кандидат v2, до production не готов ([[personal/projects/virfield]]).
- **Virfield** (сверено 2026-10-14): Tart + SSH nodes, новая hardening-версия исправляет Lume migration и lifecycle defects; текущий кандидат ещё не live принят ([[personal/projects/virfield]]).
- **Obsidian vault** `~/obsidian/` — жив, синхронизация через git/NAS + Syncthing; MCP — `mcpvault`.
## Что осталось до пилота