[2026-10-19] eagle: personal/plans/balda-remote-agent.md personal/plans/workspace-gateway.md personal/projects/balda/balda.md personal/projects/balda/execution-broker.md personal/projects/balda/setup.md personal/projects/balda/soul.md personal/projects/balda/ssh-acp-verification-2026-10-18.md personal/projects/balda/ssh-seatbelt-2026-10-18.md personal/projects/balda/workspace-context.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-19 11:47:37 +06:00
1 parent 2b94952bff
commit bd30180bbd
9 files changed
+158 -52

No files matched your search

+31 -6
View File
@@ -1,5 +1,30 @@
# Balda — удалённый агент по SSH
## Текущее состояние — сверено 2026-10-19 05:41 UTC
Актуальная сводка: [[personal/projects/balda/setup]]. Разделы с прежними версиями и планами ниже сохраняются как исторический журнал; они не заменяют эту сводку.
| Компонент | Текущее состояние |
| --- | --- |
| SSH Manager | 0.3.1, `afa3813`, 8 MCP-инструментов; импорт существующего Mac SSH alias без повторной передачи server key; `127.0.0.1:17796` |
| Workspace Manager | `0c82b8f`, 4 MCP-функции, native SMB3, `127.0.0.1:17795`; root только `developer: /Users/admin/Developer`, recipient `balda` |
| Balda | `254f3e29`, контейнер `balda-mm-mac`, provider `pool`, permissions `ask`; последний старт `2026-10-19T05:34:41.958112077Z` |
| Код и рабочие деревья | Все три checkout чистые; active SSH Manager binary SHA256 `f46fb2f4040ac33e94440f95556052e65f3c4e98d9b88b48c9db18d952749376` |
SSH: для уже доступного с Mac хоста достаточно alias; native SSH config/Include и доверенные known_hosts дают адрес, логин, порт и server key. Проверяется существующая аутентификация. Новый host получает отдельную identity; добавление/удаление, установка/отзыв ключа требуют штатного подтверждения владельца. Изоляция принимается до установки execution-ключа. Нет привязки к Kraken. Сейчас в inventory только `mac` и `mac-relay`; постоянная запись Kraken удалена, пустому relay запрещён forwarding. Последний тест случайных SSH aliases прошёл на установленном бинарнике: import, native isolation/ProxyJump, restart, revoke/remove.
Workspace: `workspace_folders`, `workspace_connect`, `workspace_disconnect`, `workspace_lease`; discovery выдаёт только папки. Доступ только к подтверждённой папке с RO/RW и сроком, без общего экспорта Developer/home. SMB отзывает существующие FD и истекает независимо от Manager. Сейчас журнал leases пуст. Дополнительные roots, включая Downloads, не включены.
Balda: настроены `obsidian`, `virfield`, `workspace-manager`, `ssh-manager`, плюс встроенный `balda`. Legacy Broker/Prism MCP отсутствуют в runtime; plugin `execution-broker` выключен, оригинальные `prism`/`prism-callee` 0.7.0 включены. У Codex — `workspace-write`, writable grants только получателя и `--mcp-approval-policy=allow`; lookup не требует generic approval, изменения доступа подтверждаются владельцем. Ответы на native approval в Mattermost исправлены в `254f3e29`; новая проверка сообщений в пользовательский чат не отправляла.
Launchd Workspace/SSH/Beads-Dolt — running; HTTP `/backoffice/healthz` и `/backoffice/login` — 200. Последняя model policy приёмка: `01a15298-98b7-7de0-9274-b2cd63c61958` (workspace RW, outside deny, lookup без approvals). Alias-only model fixture: `01a152a5-8b64-7dc1-be62-d007ff3a09c5`; production Kraken import: `01a152a8-1659-7860-bc63-ea9e8a2d92ba` (Decline, личные SSH config/known_hosts и production доступы сохранены).
Открытый объём исходного плана: полноценные Mac Codex/Claude/OpenCode model runs с отдельными CLI credentials/OpenCode network решениями, полный модельный Prism lifecycle и приёмка реальных project Beads DB. Shared Beads/Dolt concurrency и 14 Callee Role doctor проверены на fixture; реальные project DB не мигрировались. Это не блокирует принятые операции Workspace/SSH Manager и не считается завершённой полной агентной установкой.
Evidence: `~/.local/share/balda-workspace/candidate/operator-import.json`, `generic-host-manager.json`, `generic-host-policy.json`; исходная SMB/Beads приёмка — `/Users/admin/Developer/workspace-gateway/docs/acceptance-2026-10-18.md`.
## Исторический журнал изменений и исходный план
## 2026-10-19 — существующий SSH-доступ Mac без повторной передачи ключа
Исправлен оставшийся дефект 0.3.0: обязательный public_host_key заставлял Balda просить ключ сервера даже для уже настроенного SSH alias. SSH Manager **0.3.1** развёрнут, коммит afa3813; для импорта достаточно alias. Hostname/user/port/public_host_key необязательны и берутся из native SSH config с Include и существующих known_hosts, включая hashed записи. Пароль/private key оператора не передаются модели и не копируются в Balda.
@@ -102,14 +127,14 @@ Kraken остаётся **не настроен для execution**: его files
Ранее остававшиеся отдельные решения по личным Mac CLI credentials/OpenCode localhost этим исправлением не подменяются. Полная исходная настройка не помечена принятой.
Обновлено: **2026-10-18**.
Исторический снимок: **2026-10-18**.
Отдельный проект доступа к папкам: [[personal/plans/workspace-gateway|Workspace Gateway]], `/Users/admin/Developer/workspace-gateway`, начальный коммит `2bc6743`.
Дополнительная проверка SSH и Seatbelt: [[personal/projects/balda/ssh-seatbelt-2026-10-18]].
Исходная задача: Balda работает с оригинальными Prism/Beads по подключённым проектам и запускает штатного агента в другой среде; подключение нового репозитория требует подтверждения владельца.
Проверка: [[personal/projects/balda/ssh-acp-verification-2026-10-18]].
Рабочая установка: [[personal/projects/balda/setup]].
## Актуальный статус 2026-10-18
## Исторический статус 2026-10-18
Уточнение по поиску проектов, коммит `9e5066a`: рабочий root только `developer` (`/Users/admin/Developer`). Ошибочно включённый мной `downloads` удалён. Его зависший параллельный вызов скрывал от модели успешный ответ Developer; фактически Developer уже отвечал за 12 мс. Default query больше не обходит всё дерево исходников и dependencies: фильтруется выбранный уровень; глубокий поиск остаётся явным `recursive: true`. Проверены 139 папок корня, 8 вложенных папок workspace-gateway и поиск имени. Реальный Codex получил результаты и вывел их в ответе без approval (session `01a14fa7-60f2-7971-81de-b6c838ec1c31`). Это конкретная новая проверка; прежнее заявление о полной приёмке было преждевременным. Системные TCC/FDA permissions не выдавались и не обходились.
@@ -152,7 +177,7 @@ macOS-окружения предоставляет Virfield через его M
Для передачи ACP новая реализация `broker-acp` не требуется: базовый путь уже проверен.
Дополнительный код допустим только для конкретного воспроизведённого пробела интеграции; прикладные сценарии и учёт фаз Prism остаются в штатном стеке.
## Следующие конкретные действия
## Первоначальный план действий — история 2026-10-18
1. Я реализую и приму Workspace Manager (проект `workspace-gateway`) в отдельном проекте: настраиваемые именованные корни (`developer`, `downloads` и другие), листинг и поиск папок по имени без файлов, подключение после подтверждения владельца, отключение и временный лизинг; сетевая файловая система обеспечит одни и те же исходные файлы Balda и агентам без перезапуска Balda при каждой выдаче. Указание корня в конфиге разрешает обнаружение папок, но не выдаёт доступ ко всем его файлам.
2. Я настрою авторизованный SSH из контейнера в реальные среды, проверку host key, ограниченные credentials и штатный `generic_acp` с командой SSH; доступность порта и проверка протокола уже подтверждены, рабочая авторизация ещё не принята.
@@ -160,7 +185,7 @@ macOS-окружения предоставляет Virfield через его M
4. Я настрою согласованные пути workspace, достижимые MCP, оригинальные skills/tools и единое состояние Beads для Balda и одновременных агентов, затем включу запросы разрешений у агентов и штатный `ask` Balda.
5. Я проведу реальную приёмку выбранных Codex/Claude/OpenCode и оригинального Prism: статус проекта, подтверждение и отказ, выполнение, отмена, продолжение сессии и прекращение доступа после отзыва или истечения лизинга.
Это оставшаяся работа, а не уже выполненный deployment.
Это исходная формулировка плана; выполненные действия и оставшийся объём сверены в текущей сводке в начале заметки.
SSH/Seatbelt/ACP и настройка Beads не расширяют четыре функции Workspace Gateway.
## Что подтверждено дополнительно
@@ -179,7 +204,7 @@ SSH/Seatbelt/ACP и настройка Beads не расширяют четыр
Исходная БД Beads соответствующего проекта остаётся источником статусов; Git-клон сам по себе не доказывает наличие актуального состояния Beads.
Механизм выдачи доступа к реальным проектам и их БД ещё требует настройки и приёмки.
## Текущее состояние и границы
## Историческое состояние и границы — 2026-10-18
Основная Balda получила оригинальные Prism/Prism Callee, `bd`, Callee и прямой Virfield MCP; это установка инструментов, а не приёмка удалённого исполнения.
В рабочем конфиге остаётся `permissions.mode: allow_all`; SSH-проверка production-конфиг, историю и авторизацию не меняла.
@@ -221,7 +246,7 @@ SSH/Seatbelt/ACP и настройка Beads не расширяют четыр
- Оригинальный Callee с правильным `--agent-root /home/node/.config/callee` успешно отдал весь native Prism graph. Полный модельный Prism lifecycle и общее состояние Beads/Dolt пока не заявляются принятыми.
### Итог текущей выполненной части
### Исторический итог выполненной части — 2026-10-18
- Workspace HEAD `e99f043`, SSH HEAD `d9c19ee`; оба Git working tree чистые. Исходники, tests, scripts и точная приёмка закоммичены. Полная модельная работа не помечена выполненной.
- User jobs `local.balda.workspace-manager`, `local.balda.ssh-manager`, `local.balda.beads-dolt` реально running. Manager listeners только 127.0.0.1:17795/17796, native Dolt только 127.0.0.1:13307 плюс точный Unix socket в agent-home.
+31 -5
View File
@@ -1,5 +1,30 @@
# Workspace Gateway — план
## Текущее состояние — сверено 2026-10-19 05:41 UTC
Актуальная сводка: [[personal/projects/balda/setup]]. Разделы с прежними версиями и планами ниже сохраняются как исторический журнал; они не заменяют эту сводку.
| Компонент | Текущее состояние |
| --- | --- |
| SSH Manager | 0.3.1, `afa3813`, 8 MCP-инструментов; импорт существующего Mac SSH alias без повторной передачи server key; `127.0.0.1:17796` |
| Workspace Manager | `0c82b8f`, 4 MCP-функции, native SMB3, `127.0.0.1:17795`; root только `developer: /Users/admin/Developer`, recipient `balda` |
| Balda | `254f3e29`, контейнер `balda-mm-mac`, provider `pool`, permissions `ask`; последний старт `2026-10-19T05:34:41.958112077Z` |
| Код и рабочие деревья | Все три checkout чистые; active SSH Manager binary SHA256 `f46fb2f4040ac33e94440f95556052e65f3c4e98d9b88b48c9db18d952749376` |
SSH: для уже доступного с Mac хоста достаточно alias; native SSH config/Include и доверенные known_hosts дают адрес, логин, порт и server key. Проверяется существующая аутентификация. Новый host получает отдельную identity; добавление/удаление, установка/отзыв ключа требуют штатного подтверждения владельца. Изоляция принимается до установки execution-ключа. Нет привязки к Kraken. Сейчас в inventory только `mac` и `mac-relay`; постоянная запись Kraken удалена, пустому relay запрещён forwarding. Последний тест случайных SSH aliases прошёл на установленном бинарнике: import, native isolation/ProxyJump, restart, revoke/remove.
Workspace: `workspace_folders`, `workspace_connect`, `workspace_disconnect`, `workspace_lease`; discovery выдаёт только папки. Доступ только к подтверждённой папке с RO/RW и сроком, без общего экспорта Developer/home. SMB отзывает существующие FD и истекает независимо от Manager. Сейчас журнал leases пуст. Дополнительные roots, включая Downloads, не включены.
Balda: настроены `obsidian`, `virfield`, `workspace-manager`, `ssh-manager`, плюс встроенный `balda`. Legacy Broker/Prism MCP отсутствуют в runtime; plugin `execution-broker` выключен, оригинальные `prism`/`prism-callee` 0.7.0 включены. У Codex — `workspace-write`, writable grants только получателя и `--mcp-approval-policy=allow`; lookup не требует generic approval, изменения доступа подтверждаются владельцем. Ответы на native approval в Mattermost исправлены в `254f3e29`; новая проверка сообщений в пользовательский чат не отправляла.
Launchd Workspace/SSH/Beads-Dolt — running; HTTP `/backoffice/healthz` и `/backoffice/login` — 200. Последняя model policy приёмка: `01a15298-98b7-7de0-9274-b2cd63c61958` (workspace RW, outside deny, lookup без approvals). Alias-only model fixture: `01a152a5-8b64-7dc1-be62-d007ff3a09c5`; production Kraken import: `01a152a8-1659-7860-bc63-ea9e8a2d92ba` (Decline, личные SSH config/known_hosts и production доступы сохранены).
Открытый объём исходного плана: полноценные Mac Codex/Claude/OpenCode model runs с отдельными CLI credentials/OpenCode network решениями, полный модельный Prism lifecycle и приёмка реальных project Beads DB. Shared Beads/Dolt concurrency и 14 Callee Role doctor проверены на fixture; реальные project DB не мигрировались. Это не блокирует принятые операции Workspace/SSH Manager и не считается завершённой полной агентной установкой.
Evidence: `~/.local/share/balda-workspace/candidate/operator-import.json`, `generic-host-manager.json`, `generic-host-policy.json`; исходная SMB/Beads приёмка — `/Users/admin/Developer/workspace-gateway/docs/acceptance-2026-10-18.md`.
## Исторический журнал изменений и исходный план
## 2026-10-19 — существующий SSH-доступ Mac без повторной передачи ключа
Исправлен оставшийся дефект 0.3.0: обязательный public_host_key заставлял Balda просить ключ сервера даже для уже настроенного SSH alias. SSH Manager **0.3.1** развёрнут, коммит afa3813; для импорта достаточно alias. Hostname/user/port/public_host_key необязательны и берутся из native SSH config с Include и существующих known_hosts, включая hashed записи. Пароль/private key оператора не передаются модели и не копируются в Balda.
@@ -102,7 +127,7 @@ Kraken остаётся **не настроен для execution**: его files
Ранее остававшиеся отдельные решения по личным Mac CLI credentials/OpenCode localhost этим исправлением не подменяются. Полная исходная настройка не помечена принятой.
Обновлено: **2026-10-18**.
Исторический снимок: **2026-10-18**.
Проект: `/Users/admin/Developer/workspace-gateway`.
Git: `main`, реализация `00b7e13`; актуальные deployment scripts и приёмка `9e5066a` (2026-10-18). Четыре MCP-функции реализованы; принят native SMB3 backend с фактическим отзывом открытых FD на Linux и Mac, независимым истечением срока и динамическим подключением без рестарта получателя. Сервис установлен как user launchd job на `127.0.0.1:17795`; аутентифицированные вызовы из доверенного образа Balda прошли. Production Balda переключена с явного разрешения владельца и перезапущена 2026-10-18 в 20:13:46 Asia/Bishkek: native ask активен, оба Manager проверены из рабочего контейнера, SSH/Seatbelt прошёл, HTTP health/login — 200. State/home/work, прежний pool и все записи БД сохранены; backup сделан до переключения. Полная модельная приёмка ещё ожидает отдельных решений по существующим CLI credentials и OpenCode localhost binding.
Исправления production: Codex `workspace-write` принят реальной моделью в обычном workspace и динамическом RW grant, запись вне разрешённых roots запрещена. Пять безопасных Manager-запросов прошли без approval; изменения прав по-прежнему требуют владельца. Старый broker отключён, оригинальные Prism сохранены. Принятые Docker-профили включены только с точного согласия владельца; privileged/SYS_ADMIN не добавлены. Журнал и повторяемый модельный тест включены в `1076b4f`; SSH Manager — `f876d37`.
@@ -117,7 +142,7 @@ Git: `main`, реализация `00b7e13`; актуальные deployment scr
Сервис выдаёт Balda и удалённым агентам доступ к исходным папкам через сетевую файловую систему.
Balda и агенты видят одни и те же файлы; копирование Git-репозитория не считается реализацией общего доступа.
1. **Папки:** листинг и навигация по папкам внутри настроенных корней (`developer`, `downloads` и других), а также поиск папок по имени; без выдачи списка файлов и их содержимого.
1. **Папки:** листинг и навигация по папкам внутри настроенных корней (сейчас только `developer`; дополнительные roots включаются по выбору владельца), а также поиск папок по имени; без выдачи списка файлов и их содержимого.
2. **Подключение:** выбранная папка появляется в work dir после подтверждения владельцем точного пути, получателя, режима доступа и срока.
3. **Отключение:** фактический отзыв ранее выданного доступа.
4. **Лизинг:** статус и срок действия, автоматический отзыв после истечения срока, продление с подтверждением владельца.
@@ -157,12 +182,12 @@ Prism, Callee, Beads, управление задачами и сессиями
1. Я проверю готовую сетевую файловую систему на текущем Docker/Colima и целевых средах: исходные файлы видны обоим клиентам, добавление разрешённой папки обходится без перезапуска Balda, соседняя папка недоступна, отзыв закрывает уже выданный доступ.
2. Я подключу постоянную точку сетевой файловой системы в work dir; это разовая настройка deployment, последующие выдачи и отзывы происходят в рантайме.
3. Я реализую конфиг нескольких именованных корней (`developer`, `downloads` и других), листинг/навигацию и поиск папок по имени внутри этих корней; затем запрос подключения, связав подтверждение владельца с точным путём, получателем, правами и сроком. Сначала проверю пригодность штатных взаимодействий Balda. Приёмка поиска включает несколько корней, одинаковые имена папок, недоступный корень и запрет выхода через ссылки или `..`.
3. Я реализую конфиг нескольких именованных корней (сейчас только `developer`; дополнительные roots включаются по выбору владельца), листинг/навигацию и поиск папок по имени внутри этих корней; затем запрос подключения, связав подтверждение владельца с точным путём, получателем, правами и сроком. Сначала проверю пригодность штатных взаимодействий Balda. Приёмка поиска включает несколько корней, одинаковые имена папок, недоступный корень и запрет выхода через ссылки или `..`.
4. Я реализую отключение и временный лизинг, сохранение состояния разрешений и обработку истечения срока после перезапуска сервиса; неполученное подтверждение оставляет доступ закрытым.
5. Я проведу приёмку с двумя клиентами: общие файлы, RO/RW, запрет соседних путей и обхода через ссылки, отказ владельца, отзыв, истечение, продление и повторный запуск сервиса.
Выбран и принят SMB3 backend: native Samba, mount.cifs Colima и mount_smbfs macOS. Приняты оригинальные файлы, RO/RW, динамические grants, отзыв открытых FD, независимый expiry и реальный отзыв после перезапуска Manager. Подробности — в актуальном журнале ниже.
До выбора backend сохраняется ровно этот объём; общая копия всех репозиториев и ослабление изоляции не являются заменой выдаче доступа.
Принятый backend — SMB3. Общая копия всех репозиториев и ослабление изоляции не заменяют выдачу доступа.
## Что уже проверено и что остаётся
@@ -170,7 +195,8 @@ Prism, Callee, Beads, управление задачами и сессиями
- [x] Проверена независимая возможность штатного ACP Balda поверх SSH: [[personal/projects/balda/ssh-acp-verification-2026-10-18]].
- [x] Выбрана и испытана сетевая файловая система: native SMB3, Linux и Mac.
- [x] Реализованы четыре функции, native подтверждения, реальный отзыв открытых FD и независимый срок доступа.
- [ ] Настроено общее состояние Beads и принята работа реальных агентов через полученный workspace.
- [x] Shared Beads/Dolt проверен на fixture: параллельное создание/чтение, единственный победитель claim, чтение через принятый SSH/SRT.
- [ ] Полная модельная работа реальных агентов через полученный workspace и реальные project Beads DB; fixture не считается миграцией проектов.
Доступ к исходникам и доступ к состоянию Beads — связанные, но отдельные пункты общей установки.
Для одновременной работы Balda и нескольких агентов Beads описывает server mode Dolt: [официальная архитектура](https://github.com/gastownhall/beads/blob/main/docs/architecture/index.md).
+22 -26
View File
@@ -1,35 +1,31 @@
# Balda — актуальный обзор
Проверено: **2026-10-18**. Balda принимает задачи из чата и использует штатные провайдеры, сессии, MCP и skills. Основной `balda-mm-mac` работает на `balda-prism:20261018` с базой `balda-upstream:a908ee1a`; Eagle — на `balda-upstream:a908ee1a`. В основной инстанс установлены оригинальные Prism/Prism Callee, Beads, Callee и прямой Virfield MCP; детали и границы проверки — в [[personal/projects/balda/setup]].
Проверено: **2026-10-19** по активной конфигурации, работающим сервисам и журналам приёмки. Основной контейнер `balda-mm-mac`: Balda `254f3e29`, provider `pool`, permissions `ask`. Оригинальные Prism/Prism Callee 0.7.0 включены; прежний plugin Execution Broker выключен. Полная эксплуатационная сводка, версии и открытая работа: [[personal/projects/balda/setup]].
## Источники текущего состояния
## Текущее состояние
- [[personal/plans/workspace-gateway|Workspace Gateway — отдельный проект и четыре функции доступа]]
- [[personal/projects/balda/ssh-seatbelt-2026-10-18|Проверка исходящего SSH и Seatbelt; оставшиеся пункты setup]]
- [[personal/plans/balda-remote-agent|Актуальный план удалённого агента по SSH]]
- [[personal/projects/balda/ssh-acp-verification-2026-10-18|Проверка штатного ACP, разрешений и восстановления сессии]]
- [[personal/projects/balda/setup|Работающий контейнер, конфигурация, MCP и перезапуск]]
- [[personal/projects/balda/execution-broker|Broker/Balda: проверенные версии, артефакты и границы приёмки]]
- [[personal/projects/balda/soul|Снимок global instruction]]
- [[personal/projects/balda/workspace-context|Provider context]]
- **SSH Manager 0.3.1**: 8 MCP-инструментов, произвольные aliases; для существующего SSH-доступа Mac импортирует native config/Include и доверенные known_hosts, проверяет существующую аутентификацию. Повторно передавать server key для настроенного хоста не требуется. Добавление/авторизация — с подтверждением владельца, execution — после приёмки native изоляции. Постоянных настроек Kraken в inventory нет.
- **Workspace Manager**: четыре функции folders/connect/disconnect/lease, SMB3; root только `developer`, recipient `balda`. Выдаётся конкретная подтверждённая папка RO/RW с TTL; отзыв существующих FD проверен. Downloads не включён; сейчас активных leases нет.
- **Balda MCP**: Obsidian, Virfield, Workspace Manager, SSH Manager и встроенный Balda. Прежние Execution Broker/Execution Prism MCP не подключены к runtime. Generic MCP approval для Codex убран; native подтверждения изменения доступа сохранены.
- **Приёмка**: SSH import/lifecycle на случайных aliases и реальной модели, Workspace RW/outside deny, SMB revoke/expiry и shared Beads fixture приняты. Полные удалённые Mac model runs, модельный Prism lifecycle и реальные project Beads DB остаются отдельной незавершённой частью исходного плана.
В карточках указаны работающий образ, действующая конфигурация и границы готовности Broker.
## Конфигурация и эксплуатация
Активный config: `/Users/admin/.local/share/balda-workspace/candidate/config/config.yaml`; Compose: `/Users/admin/Docker/balda-mm-mac/docker-compose.yml`. Рабочий binary смонтирован из config, изменение checkout само по себе его не обновляет. Пути, hashes, restart и границы приёмки: [[personal/projects/balda/setup]]. Eagle этой сверкой не проверялся и не изменялся.
## Документация
- [[personal/plans/balda-remote-agent|SSH Manager и план удалённого агента]]
- [[personal/plans/workspace-gateway|Workspace Manager, четыре функции и приёмка]]
- [[personal/projects/balda/soul|Точный текущий global instruction]]
- [[personal/projects/balda/workspace-context|Текущие provider context и Codex permissions]]
- [[personal/projects/balda/ssh-seatbelt-2026-10-18|Историческая проверка SSH/Seatbelt]]
- [[personal/projects/balda/ssh-acp-verification-2026-10-18|Историческая проверка ACP]]
- [[personal/projects/balda/execution-broker|Архив прежнего Execution Broker]]
- [[personal/projects/archive/balda-reference-before-2026-10-14|Прежняя карточка и provider templates]]
## Репозитории
Upstream: [baldaworks/balda](https://github.com/baldaworks/balda). Fork: [mallexxx/balda](https://github.com/mallexxx/balda).
Balda: `/Users/admin/Developer/balda` (`254f3e29`); SSH Manager: `/Users/admin/Developer/ssh-manager` (`afa3813`); Workspace Manager: `/Users/admin/Developer/workspace-gateway` (`0c82b8f`). Все три checkout при сверке чистые.
## Конфигурация и владение
Действующий конфиг: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`; выбран `balda.provider: pool`. Dev-конфиг в `~/Developer/balda` — отдельный файл. Obsidian MCP — `type: http`, `http://host.docker.internal:3101/mcp`.
Balda сохраняет штатную оркестрацию, сессии, MCP, skills и подтверждения. Связь с агентом в другой среде — через SSH и штатный ACP; базовый путь уже проверен без нового ACP-брокера. Доступ к исходным папкам выделен в отдельный проект Workspace Gateway; macOS предоставляет Virfield. Рабочая SSH-авторизация, профили Seatbelt, native ask, достижимость MCP и общее состояние Beads ещё требуют настройки и приёмки. Исторические функции прежнего Broker и его подключённые MCP описаны отдельно и не задают объём нового брокера.
Документация кода: [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).
## История
- [[personal/projects/archive/balda-reference-before-2026-10-14|Прежняя карточка, Zulip и старые provider templates]]
- [[personal/projects/balda/balda-mattermost-connector|Исторический дизайн Mattermost-коннектора]]
- [[personal/plans/balda-callee-prism-plan|Архив раннего плана Broker/Callee/Prism]]
- Старые Kraken/Valera/Claudio runbooks помечены историческими и не задают текущий запуск.
Upstream Balda: [baldaworks/balda](https://github.com/baldaworks/balda). Fork: [mallexxx/balda](https://github.com/mallexxx/balda).
+9 -2
View File
@@ -1,10 +1,17 @@
# Execution Broker — эксплуатация
# Execution Broker — историческая эксплуатация
> [!important] Текущий статус — 2026-10-19
> Прежние MCP `execution-broker` и `execution-prism` отсутствуют в runtime основного Balda, plugin `execution-broker` выключен. Оригинальные `prism`/`prism-callee` 0.7.0 включены.
> Доступом управляют отдельные SSH Manager и Workspace Manager; актуальные версии, пути и границы приёмки: [[personal/projects/balda/setup]].
> Нижеследующие комплекты, workflows и результаты — датированный архив 2026-10-16/18, а не текущая конфигурация Balda. Состояние старых отдельных Broker services этой сверкой не перепроверялось.
## Архив прежнего контура
> [!important] Граница нового брокера — 2026-10-18
> Текущий план: [[personal/plans/balda-remote-agent|Balda — удалённый агент по SSH]].
> Штатный `generic_acp` Balda уже передаёт ACP по SSH; собственный ACP-транспорт для проверенного пути не требуется.
> Ветка `broker-rebuild` начата с пустого дерева; в ней пока README, новой реализации нет.
> Старые MCP `execution-broker`, `execution-prism` и plugin остаются подключены в рабочей Balda.
> На дату 2026-10-18 старые MCP и plugin ещё оставались подключены; текущий статус приведён выше.
> Сведения о версиях, workflow и прежней приёмке ниже — исторический срез 2026-10-16; установка Balda обновлена в [[personal/projects/balda/setup]].
Проверено: **2026-10-16** по GitHub, исходникам, работающим контейнерам, binary hashes, MCP и сохранённому state. Broker и Virfield очищены от планов и персональных журналов в tracked файлах; актуальная установка и приёмка ведутся в Obsidian.
+44 -3
View File
@@ -1,6 +1,47 @@
# Balda — актуальный локальный запуск
## Актуальное обновление — 2026-10-18
## Текущее состояние — сверено 2026-10-19 05:41 UTC
Актуальная сводка: [[personal/projects/balda/setup]]. Разделы с прежними версиями и планами ниже сохраняются как исторический журнал; они не заменяют эту сводку.
| Компонент | Текущее состояние |
| --- | --- |
| SSH Manager | 0.3.1, `afa3813`, 8 MCP-инструментов; импорт существующего Mac SSH alias без повторной передачи server key; `127.0.0.1:17796` |
| Workspace Manager | `0c82b8f`, 4 MCP-функции, native SMB3, `127.0.0.1:17795`; root только `developer: /Users/admin/Developer`, recipient `balda` |
| Balda | `254f3e29`, контейнер `balda-mm-mac`, provider `pool`, permissions `ask`; последний старт `2026-10-19T05:34:41.958112077Z` |
| Код и рабочие деревья | Все три checkout чистые; active SSH Manager binary SHA256 `f46fb2f4040ac33e94440f95556052e65f3c4e98d9b88b48c9db18d952749376` |
SSH: для уже доступного с Mac хоста достаточно alias; native SSH config/Include и доверенные known_hosts дают адрес, логин, порт и server key. Проверяется существующая аутентификация. Новый host получает отдельную identity; добавление/удаление, установка/отзыв ключа требуют штатного подтверждения владельца. Изоляция принимается до установки execution-ключа. Нет привязки к Kraken. Сейчас в inventory только `mac` и `mac-relay`; постоянная запись Kraken удалена, пустому relay запрещён forwarding. Последний тест случайных SSH aliases прошёл на установленном бинарнике: import, native isolation/ProxyJump, restart, revoke/remove.
Workspace: `workspace_folders`, `workspace_connect`, `workspace_disconnect`, `workspace_lease`; discovery выдаёт только папки. Доступ только к подтверждённой папке с RO/RW и сроком, без общего экспорта Developer/home. SMB отзывает существующие FD и истекает независимо от Manager. Сейчас журнал leases пуст. Дополнительные roots, включая Downloads, не включены.
Balda: настроены `obsidian`, `virfield`, `workspace-manager`, `ssh-manager`, плюс встроенный `balda`. Legacy Broker/Prism MCP отсутствуют в runtime; plugin `execution-broker` выключен, оригинальные `prism`/`prism-callee` 0.7.0 включены. У Codex — `workspace-write`, writable grants только получателя и `--mcp-approval-policy=allow`; lookup не требует generic approval, изменения доступа подтверждаются владельцем. Ответы на native approval в Mattermost исправлены в `254f3e29`; новая проверка сообщений в пользовательский чат не отправляла.
Launchd Workspace/SSH/Beads-Dolt — running; HTTP `/backoffice/healthz` и `/backoffice/login` — 200. Последняя model policy приёмка: `01a15298-98b7-7de0-9274-b2cd63c61958` (workspace RW, outside deny, lookup без approvals). Alias-only model fixture: `01a152a5-8b64-7dc1-be62-d007ff3a09c5`; production Kraken import: `01a152a8-1659-7860-bc63-ea9e8a2d92ba` (Decline, личные SSH config/known_hosts и production доступы сохранены).
Открытый объём исходного плана: полноценные Mac Codex/Claude/OpenCode model runs с отдельными CLI credentials/OpenCode network решениями, полный модельный Prism lifecycle и приёмка реальных project Beads DB. Shared Beads/Dolt concurrency и 14 Callee Role doctor проверены на fixture; реальные project DB не мигрировались. Это не блокирует принятые операции Workspace/SSH Manager и не считается завершённой полной агентной установкой.
Evidence: `~/.local/share/balda-workspace/candidate/operator-import.json`, `generic-host-manager.json`, `generic-host-policy.json`; исходная SMB/Beads приёмка — `/Users/admin/Developer/workspace-gateway/docs/acceptance-2026-10-18.md`.
## Текущие пути и эксплуатация — 2026-10-19
| Параметр | Значение |
| --- | --- |
| Compose | `/Users/admin/Docker/balda-mm-mac/docker-compose.yml` |
| Активный config | `/Users/admin/.local/share/balda-workspace/candidate/config/config.yaml` |
| Config mount | `/workspace/.config/balda`, read-only |
| Запускаемый binary | `/workspace/.config/balda/bin/balda`; SHA256 `b48e15ea8bc3d8a950900e8da99f7a67d391279914111f689f71667cc8be8361` |
| State / work | `/Users/admin/Docker/balda-mm-mac/state` и `/Users/admin/Docker/balda-mm-mac/work` |
| Home / SSH volumes | `balda_balda-home` → `/home/node`; `balda-ssh-manager` → `/run/ssh-manager:ro` |
| Инструкции Codex | Отдельный `runtime.providers.codex.system_instructions` не задан; [[personal/projects/balda/workspace-context]] |
Обычное добавление/удаление SSH-хоста и Workspace lease выполняется MCP-инструментами и не требует ручной правки config или restart. После изменения самого Balda config нужен разрешённый restart. После изменения MCP schema также обновляются сессии клиента. При restart Balda дождаться внутреннего `/backoffice/healthz:200`, затем пересоздать существующий `webui-proxy`, поскольку он использует `network_mode: service:balda`; проверить host health/login. Изменение Compose/env/mounts применяется через `docker-compose up -d`, а не одним restart.
Активный Balda binary берётся из config mount; изменение checkout само по себе его не заменяет. Для обновления нужен build выбранного source, атомарная установка binary и разрешённый restart с backup. Изменения managed plugin revisions не вносятся вручную. Eagle в этой сверке не изменялся и не перепроверялся; старые сведения о совпадении двух инстансов ниже исторические.
## Исторические снимки установки
## Историческое обновление — 2026-10-18
Новый сервис подключения папок: [[personal/plans/workspace-gateway|Workspace Gateway]], `/Users/admin/Developer/workspace-gateway`; создан каркас, реализации пока нет.
Проверка исходящего SSH и Seatbelt: [[personal/projects/balda/ssh-seatbelt-2026-10-18]]; сетевой SSH из контейнера доступен, production логин и sandbox launch ещё не приняты.
@@ -52,7 +93,7 @@ SSH-проверка не вызывала модели и не отправля
Config bind-mounted в `/workspace/.config/balda` read-only для контейнера; state и work доступны ему на запись. Файл `~/Developer/balda/.config/balda/config.yaml` относится к отдельному dev checkout и не управляет этим контейнером.
## Eagle и общие инструменты
## Eagle и общие инструменты — исторический снимок 2026-10-15
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 между разными аккаунтами.
@@ -76,7 +117,7 @@ Eagle работает на том же Mac в `balda-mm-eagle`; Compose, config
Актуальные 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 сохранены.
## Изменения и перезапуск
## Исторические процедуры перезапуска — перед применением сверить текущие пути выше
| Изменение | Действие |
| --- | --- |
+3 -6
View File
@@ -1,8 +1,6 @@
# Balda — global instruction
Проверено: **2026-10-15**. Ниже точный снимок `balda.global_instruction` из активного `/Users/admin/Docker/balda-mm-mac/config/config.yaml`. Он относится к контейнеру `balda-mm-mac`; dev-конфиг в `~/Developer/balda` является отдельным файлом.
Порядок инструкций в Balda: built-in → `balda.global_instruction` → `runtime.providers.<provider_id>.system_instructions`. Текущий provider — `codex`; отдельные provider-level инструкции не настроены.
Проверено: **2026-10-19**. Ниже точный снимок `balda.global_instruction` из активного `/Users/admin/.local/share/balda-workspace/candidate/config/config.yaml` контейнера `balda-mm-mac`. В Balda выбран provider `pool`; отдельный `runtime.providers.codex.system_instructions` не задан.
## Действующее значение
@@ -12,10 +10,9 @@
Код и команды в fenced code blocks.
Не объясняй процесс, показывай результат.
В каналах ты отвечаешь только когда тебя упомянули через @balda.
For execution-broker calls, use the exact current Balda Session ID shown under Session in the system instruction as chat_id and an empty topic_id. The channel type is also shown there; never infer Telegram from numeric Mattermost metadata. Numeric chat_id=0 and topic_id=0 are transport placeholders and must never be sent to execution tools. Never ask the user to supply a Session ID. If an existing Story has chat_id=0 or topic_id=0, create a new Story and Task with the current Session ID and new Story and run idempotency keys before starting a new execution. Do not reuse the placeholder-bound Story because Prism cannot sync it. At a coding approval question, forward the exact free-text requirement change with execution_respond for that run; Callee will regenerate the plan and ask again without a new Story or run. Reply approved only after the user approves the latest plan.
## Как поддерживать этот снимок
Изменение заметки само по себе не меняет production-конфигурацию. Изменение глобальных инструкций применяется отдельно через активный host config и перезапуск Balda по [[personal/projects/balda/setup|runbook]]. При последующей актуализации заметку снова сверяют с этим файлом.
Изменение заметки само по себе не меняет production-конфигурацию. Изменение global instruction выполняется отдельно через активный config и разрешённый перезапуск по [[personal/projects/balda/setup]]. Прежняя инструкция про Execution Broker удалена из активного значения и в этот снимок не входит.
Исторический шаблон для Валеры/Zulip сохранён в [[personal/projects/archive/balda-reference-before-2026-10-14]]. Контекст конкретного provider описан в [[personal/projects/balda/workspace-context]].
Контекст provider: [[personal/projects/balda/workspace-context]]. Исторический шаблон Валеры/Zulip: [[personal/projects/archive/balda-reference-before-2026-10-14]].
@@ -1,5 +1,11 @@
# Balda → SSH → ACP: проверка 2026-10-18
## Статус этой заметки — 2026-10-19
Ниже сохранён датированный технический прогон 2026-10-18, включая его тогдашние открытые проверки. Текущая эксплуатационная сводка: [[personal/projects/balda/setup]], планы: [[personal/plans/balda-remote-agent]] и [[personal/plans/workspace-gateway]]. С тех пор приняты production SSH/SRT к Mac, SMB доступ/отзыв, shared Beads fixture, native approval bridge и generic SSH Manager 0.3.1 с импортом существующего доверенного доступа Mac. Полный модельный Prism lifecycle и реальные project DB остаются отдельной приёмкой.
## Исторический протокол проверки
Проверено на исходниках Balda `a908ee1a5ff2`, runtime `v2.6.3`, ACP adapter `v2.6.1`.
Актуальный план: [[personal/plans/balda-remote-agent]].
@@ -1,9 +1,15 @@
# Balda — SSH и Seatbelt: проверка 2026-10-18
## Статус этой заметки — 2026-10-19
Ниже сохранён датированный технический прогон 2026-10-18, включая его тогдашние открытые проверки. Текущая эксплуатационная сводка: [[personal/projects/balda/setup]], планы: [[personal/plans/balda-remote-agent]] и [[personal/plans/workspace-gateway]]. С тех пор приняты production SSH/SRT к Mac, SMB доступ/отзыв, shared Beads fixture, native approval bridge и generic SSH Manager 0.3.1 с импортом существующего доверенного доступа Mac. Полный модельный Prism lifecycle и реальные project DB остаются отдельной приёмкой.
## Исторический протокол проверки
Общий план: [[personal/plans/balda-remote-agent]].
Workspace Gateway: [[personal/plans/workspace-gateway]].
## Факты текущей установки
## Факты установки на дату исходной проверки
- Docker context: `colima`; Docker daemon сообщает `Ubuntu 24.04.4 LTS`.
- На Mac `26.7.1` присутствует `/usr/bin/sandbox-exec`.
@@ -50,7 +56,7 @@ Workspace Gateway: [[personal/plans/workspace-gateway]].
[Beads](https://github.com/gastownhall/beads/blob/main/docs/architecture/index.md) рекомендует Dolt server mode для одновременных записывающих клиентов.
Настройка общего серверного доступа из Balda и удалённых сред ещё не выполнена.
## Открытые проверки
## Открытые проверки на дату исходного прогона
- Авторизованный SSH из контейнера в реальные среды с проверкой host key и ограниченными credentials.
- Запуск настоящих ACP-агентов и обычных команд на Mac внутри принятой sandbox.
+4 -2
View File
@@ -1,8 +1,8 @@
# Balda — provider context
Проверено: **2026-10-15** по активному конфигу `/Users/admin/Docker/balda-mm-mac/config/config.yaml`.
Проверено: **2026-10-19** по активному конфигу `/Users/admin/.local/share/balda-workspace/candidate/config/config.yaml`. Текущая установка: [[personal/projects/balda/setup]].
Текущий provider — `codex`, type `codex_acp`, reasoning effort `medium`. Поле `runtime.providers.codex.system_instructions` **не настроено**; эта заметка не объявляет Balda привязанной к одному репозиторию.
В Balda выбран provider `pool`; профиль `codex` имеет type `codex_acp`, reasoning effort `medium`. Поле `runtime.providers.codex.system_instructions` **не настроено**; эта заметка не объявляет Balda привязанной к одному репозиторию.
Дополнение для этого provider задаётся в активном host config, отдельно от [[personal/projects/balda/soul|global instruction]]. Пример структуры:
@@ -19,4 +19,6 @@ runtime:
Пример — шаблон, а не установленная конфигурация. Описание конкретного проекта должно содержать точный repository/worktree, задачу, критерии приёмки и команды проверок; стек определяется проектом. Изменение заметки не применяет эти настройки к контейнеру.
В профиле Codex действуют `--sandbox=workspace-write`, дополнительный writable root только для grants получателя и `--mcp-approval-policy=allow`. MCP: Obsidian, Virfield, Workspace Manager и SSH Manager; встроенные инструменты Balda доступны штатно. Generic MCP lookup не требует подтверждения, изменение доступа подтверждается native owner form.
Пути, перезапуск и session boundaries: [[personal/projects/balda/setup]]. Старый Claude/Zulip template: [[personal/projects/archive/balda-reference-before-2026-10-14]].