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

85 lines
7.1 KiB
Markdown
Executable File

# Balda — актуальный локальный запуск
Проверено: **2026-10-14** по работающему контейнеру, Compose, конфигурации и GitHub.
Обзор: [[personal/projects/balda/balda|Balda]]. Broker, готовность кандидата и оставшаяся работа: [[personal/projects/balda/execution-broker|Execution Broker — текущий локальный контур]].
## Что работает сейчас
| Параметр | Фактическое значение |
| --- | --- |
| Хост / контейнер | Mac / `balda-mm-mac` |
| Канал | Mattermost |
| Provider | `codex`, type `codex_acp`, reasoning effort `medium` |
| Образ | `balda-balda`, image ID `sha256:56c00100258b1a478484ef20e044981ed0a569ec0ae7d6ba8608e8878a9e1f95` |
| Compose | `/Users/admin/Docker/balda-mm-mac/docker-compose.yml` |
| Активный конфиг | `/Users/admin/Docker/balda-mm-mac/config/config.yaml` |
| State / plugins | `/Users/admin/Docker/balda-mm-mac/state` |
| Workspace | `/Users/admin/Docker/balda-mm-mac/work` |
| Home volume | `balda_balda-home`, mounted в `/home/node` |
Config bind-mounted в `/workspace/.config/balda` read-only для контейнера; state и work доступны ему на запись. Файл `~/Developer/balda/.config/balda/config.yaml` относится к отдельному dev checkout и не управляет этим контейнером.
## Проверенная ветка и PR
[PR #52](https://github.com/baldaworks/balda/pull/52): `codex/ingress-outbox-v2`, HEAD `085a0d43`, **OPEN**, не draft; все **11/11 CI checks SUCCESS**, включая native Ubuntu/macOS/Windows. Конфликтов нет, но review — **CHANGES_REQUESTED**, merge — **BLOCKED**. PR ещё не merged и не развёрнут.
Локальные race/integration/lint/security/migration/E2E проверки и self-review 58 файлов завершены. Исправление сохраняет SQL handoff ответа и восстанавливает continuation после рестарта без второго webhook update; controls durably допускаются после continuation. SQLite migration 63 / PostgreSQL migration 28 требуют backup; исторические answered-записи автоматически не переигрываются. Подробности и границы — в карточке Broker выше.
Новый [review blocker](https://github.com/baldaworks/balda/pull/52#pullrequestreview-5519740284): outbox нарушает FIFO одной сессии между разными actor targets; отдельный race probe на этом HEAD воспроизвёл переупорядочивание. Исправление и ссылка на shared Beads acceptance ещё требуются. Подробности и лог — в карточке Broker.
PR #8 и #12 уже merged. Старые ссылки на открытые #8/#12, Kraken, Валеру и Zulip относятся к архивам.
## Изменения и перезапуск
| Изменение | Действие |
| --- | --- |
| Только host `config/config.yaml` | `docker restart balda-mm-mac`: процесс перечитывает конфигурацию при старте |
| `.env`, environment, mounts, service definition | Из каталога Compose: `docker-compose up -d balda` |
| Новый image | Сначала получить или собрать выбранный образ, затем `docker-compose up -d balda`; в действующем Compose нет build-секции |
| Код в checkout | Сам по себе не обновляет образ; нужен отдельный build и применение выбранного image |
| Изменение catalog / skills существующей беседы | Обычный `/reset` для выбора текущего capability snapshot |
`docker restart` не применяет изменения Compose или `.env`. `--force-recreate` для изменения только config.yaml не требуется. До смены image сохраняют согласованный state backup и прежний image/config для отката.
## Plugins, skills и инструкции
Managed plugin revisions неизменяемые; вручную редактировать их содержимое в state нельзя. Каноническая документация выбранной ветки описывает управление пакетами через **Backoffice → Operations → Plugins**: Installed/Marketplaces, review exact revision, install/upgrade/enable/disable/rollback/remove. Проверять доступность поверхности на используемой версии, а не переносить команды из архивных runbooks: [plugins reference](https://github.com/mallexxx/balda/blob/085a0d435f727a1f4628a3259998c6498d42fcf2/docs/reference/plugins.md).
Management не сбрасывает существующие сессии. Новая сессия выбирает текущий catalog; существующая принимает capabilities через обычный `/reset`. Standalone skills также редактируются отдельно от уже закреплённого session snapshot.
[[personal/projects/balda/soul|Global instruction]] содержит сверенный снимок `balda.global_instruction`. [[personal/projects/balda/workspace-context|Provider context]] описывает `runtime.providers.codex.system_instructions`; сейчас отдельное значение не настроено. Редактирование заметки не меняет работающий конфиг.
## Codex ACP
Reasoning effort в активном конфиге — `medium`. Авторизация CLI хранится в home volume. Для отдельного headless-входа используется команда из каталога Compose:
```bash
docker-compose run --rm --entrypoint codex balda login --device-auth
```
## Obsidian MCP
Проверенный блок активной конфигурации находится в `runtime.mcp_servers`:
```yaml
runtime:
mcp_servers:
obsidian:
type: http
url: http://host.docker.internal:3101/mcp
```
Используется Streamable HTTP. Для Codex ACP SSE-конфигурацию из старых заметок не переносить. После изменения этого блока нужен перезапуск Balda. Новая политика прав vault или folders здесь не вводится.
## Диагностика
```bash
docker ps --filter name=balda-mm-mac
docker logs --tail 120 balda-mm-mac
```
Проверять успешный startup provider и подключение Mattermost. Не копировать токены, cookie или login URLs из логов в заметки.
Архив старых схем и шаблонов: [[personal/projects/archive/balda-reference-before-2026-10-14]].