Files
obsidian-vault/personal/projects/balda/setup.md
T

84 lines
5.1 KiB
Markdown
Executable File

# Balda — актуальный локальный запуск
Execution Broker, Telegram-одобрения и текущая приёмка: [[personal/projects/balda/execution-broker|Execution Broker — текущий локальный контур]].
Broker-кандидат 2026-10-14: `0.1.0-rc.26` / `b64a1ba`, локальные проверки сохранены отдельно. Старая Balda `223b85ad` / `codex/production-readiness` отклонена после ревью четырёх дефектов; её зелёные тесты не подтверждали готовность upstream PR. Исправленная ветка `codex/ingress-outbox-v2` / `49ce205d` подготовлена на upstream `875d78ee` в `/private/tmp/execution-broker-balda-upstream`. Дополнительный коммит `1fd3e101` восстанавливает continuation из answered-записи при повторе исходного inbound и обновляет README; `49ce205d` исправляет macOS marketplace paths. Полный локальный race-gate прошёл в штатном TMPDIR, обе storage integration suites и остальные проверки прошли; подробности первого неудачного прогона и финального результата — в карточке выше. Изменения не развёрнуты, контейнер `balda-mm-mac` остаётся на прежнем образе. Выбор ветки или коммит не меняет действующий сервис.
_Проверено: 2026-10-09._
> Это основной runbook для текущей Balda на Mac. Старые документы про `balda-agent-valera-1`, Zulip и Kraken — исторические.
## Текущая схема
- Хост: Mac.
- Контейнер: `balda-mm-mac`.
- Канал: Mattermost.
- Провайдер: Codex ACP.
- Compose: `/Users/admin/Docker/balda-mm-mac/docker-compose.yml`.
- Конфиг: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`.
- Состояние и managed plugins: `/Users/admin/Docker/balda-mm-mac/state`.
- Рабочие каталоги: `/Users/admin/Docker/balda-mm-mac/work`.
Каталоги `config`, `state` и `work` bind-mounted в контейнер. Домашний каталог контейнера хранится в Docker volume `balda_balda-home`.
## Что применять какой командой
| Изменение | Действие |
|---|---|
| Только содержимое `config/config.yaml` | `docker restart balda-mm-mac` |
| `.env`, environment, mounts или service definition в Compose | `docker-compose up -d balda` |
| Новый image/tag | `docker-compose pull && docker-compose up -d balda` |
| Изменение исходного кода | Собрать image, затем `docker-compose up -d balda` |
| Managed plugin | Использовать `/plugin install\|upgrade\|enable\|disable\|remove` |
| Plugin/skill для уже открытой беседы | `/reset` после активации изменения |
`docker restart` перечитывает bind-mounted `config.yaml`, потому что Balda читает его при старте процесса. Он не перечитывает `.env` и не применяет изменения Compose.
Принудительное `--force-recreate` для изменения только `config.yaml` не требуется.
## Plugins и skills
Managed plugin revisions в `state` неизменяемые и проверяются по digest. Их нельзя редактировать вручную в папке. Изменения устанавливаются через команды `/plugin`.
Каталог плагинов обновляется в работающем процессе после install/upgrade/enable/disable/remove. Уже созданная сессия закреплена за старым snapshot, поэтому для неё нужен `/reset`.
Файлы standalone skills редактировать можно, но существующая сессия также увидит новый snapshot только после `/reset`.
## Codex ACP
Актуальный reasoning effort: `medium`.
Codex авторизация хранится в home-volume контейнера. Для headless-входа:
```bash
cd /Users/admin/Docker/balda-mm-mac
docker-compose run --rm --entrypoint codex balda login --device-auth
```
## Obsidian MCP
Codex ACP поддерживает `stdio` и Streamable HTTP. SSE-конфигурация не поддерживается.
```yaml
mcp_servers:
obsidian:
type: http
url: http://host.docker.internal:3101/mcp
name: obsidian
```
После изменения только этого блока:
```bash
docker restart balda-mm-mac
```
## Проверка
```bash
docker ps --filter name=balda-mm-mac
docker logs --tail 120 balda-mm-mac
```
В логах должны быть успешная инициализация Codex ACP, готовность provider и подключение Mattermost WebSocket.