84 lines
5.1 KiB
Markdown
Executable File
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.
|