[2026-10-18] eagle: personal/plans/balda-remote-agent.md personal/plans/workspace-gateway.md personal/projects/balda/balda.md personal/projects/balda/setup.md personal/projects/balda/ssh-seatbelt-2026-10-18.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-18 16:39:04 +06:00
1 parent 9838285ff2
commit 5f17b01c4f
5 files changed
+137 -8

No files matched your search

+3 -1
View File
@@ -4,6 +4,8 @@
## Источники текущего состояния
- [[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 и перезапуск]]
@@ -21,7 +23,7 @@ Upstream: [baldaworks/balda](https://github.com/baldaworks/balda). Fork: [mallex
Действующий конфиг: `/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 и ограниченные права; macOS предоставляет Virfield. Исторические функции прежнего Broker и его подключённые 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).
+3
View File
@@ -2,6 +2,9 @@
## Актуальное обновление — 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 ещё не приняты.
План удалённого исполнения: [[personal/plans/balda-remote-agent]].
Проверка штатного ACP поверх SSH: [[personal/projects/balda/ssh-acp-verification-2026-10-18]].
@@ -0,0 +1,60 @@
# Balda — SSH и Seatbelt: проверка 2026-10-18
Общий план: [[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`.
- Из основного контейнера `balda-mm-mac` открывается SSH TCP/22 до `host.docker.internal`, получен banner `SSH-2.0-OpenSSH_10.3`.
- Из того же контейнера доступен внешний `github.com:22`, получен SSH banner.
- Эти сетевые пробы не передавали ключи и не выполняли удалённых команд: рабочая авторизация, host key pinning и права пользователя ими не приняты.
- В production по-прежнему `permissions.mode: allow_all`; профиль Seatbelt для рабочего запуска из Balda этим тестом не устанавливался.
## Проверка Seatbelt
На синтетических файлах выполнены чтение разрешённого пути, запрещённое чтение другого пути и запрещённая запись через дочерний `/bin/sh`.
Оба запрещённых действия завершились `Operation not permitted`, исходный файл сохранился.
Это проверка работы правила и наследования ограничения, а не готовая политика изоляции агента: тестовый профиль разрешал остальные операции и запрещал только контрольную папку.
```json
{
"macos": "26.7.1",
"allowed_read": {
"exit_code": 0,
"stdout": "allowed",
"stderr": ""
},
"blocked_read": {
"exit_code": 1,
"stdout": "",
"stderr": "cat: /private/tmp/workspace-gateway-seatbelt-nh3ciwhu/blocked/probe: Operation not permitted"
},
"blocked_child_write": {
"exit_code": 1,
"stdout": "",
"stderr": "fixture: /private/tmp/workspace-gateway-seatbelt-nh3ciwhu/blocked/probe: Operation not permitted"
},
"blocked_file_unchanged": true,
"scope": "Synthetic deny-rule/inheritance probe, not an approved production agent profile"
}
```
## Готовые средства
[anthropics/sandbox-runtime](https://github.com/anthropics/sandbox-runtime) уже предоставляет запуск произвольного процесса с ограничениями файлов и сети, на macOS используя Seatbelt.
Изучена документация; пакет не устанавливался и рабочие профили этого проекта не принимались.
Сначала проверяется готовое средство и штатная sandbox конкретного агента, затем определяется, нужен ли какой-либо дополнительный launcher.
[Beads](https://github.com/gastownhall/beads/blob/main/docs/architecture/index.md) рекомендует Dolt server mode для одновременных записывающих клиентов.
Настройка общего серверного доступа из Balda и удалённых сред ещё не выполнена.
## Открытые проверки
- Авторизованный SSH из контейнера в реальные среды с проверкой host key и ограниченными credentials.
- Запуск настоящих ACP-агентов и обычных команд на Mac внутри принятой sandbox.
- Запрет обхода sandbox через альтернативную SSH-команду, дочерний процесс или доступ к секретам.
- Права на файлы и сеть, совместимость native sandbox агента с внешней оболочкой.
- Запросы разрешений у агента и штатный `ask` Balda.
- MCP, общая БД Beads и полный цикл оригинального Prism на реальном подключении.