[2026-10-09] eagle: family/how-to/samsung-m2020.md personal/plans/balda-callee-prism-plan.md personal/plans/balda-mm-endtoend-plan.md personal/plans/balda-mm-phase4-agents.md personal/plans/balda-runtime-rebuild-mm-validation.md personal/projects/balda/balda-kraken-mm-deploy.md personal/projects/balda/balda-mm-delegation-plan.md personal/projects/balda/balda-valera.md personal/projects/balda/claudio-klaudiy.md personal/projects/balda/fast-rlm-integration.md
This commit is contained in:
1 parent
c3d6d48141
commit
b4747b5c09
16 files changed
+132
-66
No files matched your search
@@ -40,7 +40,9 @@ updated: "2026-10-09"
|
||||
|
||||
SNMPv1/v2 включён. Android печатает. На Mac применён обход ниже; Mac печатает.
|
||||
|
||||
Проверка CUPS 2026-10-09: задание `#99` без `waiteof=false` получило `The printer is not responding` через 30 секунд. После добавления `waiteof=false` тестовое задание `#103` принято и напечатано без задержки и ошибки.
|
||||
Проверка CUPS 2026-10-09: задание `#99` без `waiteof=false` получило `The printer is not responding` через 30 секунд. `waiteof=false` убирает это ожидание только в Mac: документ сразу исчезает из очереди и диалог печати закрывается после передачи данных. Он не подтверждает завершение физической печати и не ускоряет M2020.
|
||||
|
||||
После приёма задания M2020 остаётся с постоянным зелёным индикатором около минуты, затем запускает печать. Причина этой паузы пока не подтверждена. Текущие связанные параметры: `Power Save = 1 minute`, `Job Timeout = 15 seconds`. Нельзя записывать ни один из них причиной без отдельного теста.
|
||||
|
||||
## Решение конфликта на Mac
|
||||
|
||||
@@ -56,4 +58,6 @@ socket://192.168.1.80:9100/?snmp=false&waiteof=false
|
||||
sudo lpadmin -p 'Samsung_M2020_Series__SEC84251974A6B3_' -v 'socket://192.168.1.80:9100/?snmp=false&waiteof=false' -E
|
||||
```
|
||||
|
||||
Настройка очереди Mac применена 2026-10-09. `snmp=false` не даёт Mac блокировать задание по статусу `C2-1511`; `waiteof=false` закрывает соединение после передачи данных, поэтому M2020 не ждёт таймаут конца задания.
|
||||
Настройка очереди Mac применена 2026-10-09. `snmp=false` не даёт Mac блокировать задание по статусу `C2-1511`; `waiteof=false` закрывает соединение после передачи данных и не ждёт фактического завершения печати.
|
||||
|
||||
Для проверки гипотезы о Power Save: изменить в веб-интерфейсе M2020 `Settings → Machine Settings → System → Setup → Power Save` с `1` до `60` минут и сравнить первый запуск после простоя. На 2026-10-09 это изменение ещё не применено.
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Исторический документ
|
||||
> Не использовать как runbook текущей Balda. Актуальная локальная схема, пути и команды: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Текущий контейнер: `balda-mm-mac`; config: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`; Obsidian MCP: `type: http`, `http://host.docker.internal:3101/mcp`.
|
||||
> Материал ниже сохранён только как история.
|
||||
|
||||
# Текущее состояние — Balda / Broker — 2026-10-03 22:41 Бишкек
|
||||
|
||||
Статус: **приёмочный Docker-прогон выполнен на прежнем образе; автоматическая публикация исправлена, а Balda запущена из текущего исправленного HEAD PR #12 (`73e02156`). Общий release остаётся NO-GO до нового end-to-end прогона, подтверждающего публикацию и уведомления на образе из текущего HEAD `73e02156`.** Записи ниже — история и могут содержать устаревшие статусы.
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# План: доделать сквозной путь `@balda` → ответ в Mattermost
|
||||
|
||||
> Создан 2026-09-26. Обновлён 2026-09-26 (сессия реализации, полный проход).
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Фаза 4 — исполнитель на Mac + `~/agents` + секция «Agents» в Eagle Dashboard
|
||||
|
||||
> План + статус. Старт 2026-09-26.
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Исторический документ
|
||||
> Не использовать как runbook текущей Balda. Актуальная локальная схема, пути и команды: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Текущий контейнер: `balda-mm-mac`; config: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`; Obsidian MCP: `type: http`, `http://host.docker.internal:3101/mcp`.
|
||||
> Материал ниже сохранён только как история.
|
||||
|
||||
> Создан 2026-09-28. Статус: **✅ ЧАСТЬ A (runtime) · C/D (сборка+деплой+валидация) · E (sync с апстримом) ВЫПОЛНЕНЫ.**
|
||||
> Часть B (3 блокера PR #8) — **✅ ПРОВЕРЕНА 2026-09-29: фиксы УЖЕ в апстриме** (см. блок ниже).
|
||||
> ⛔ **2026-09-29: Balda-стек на Kraken СНЕСЁН.** Топология пересмотрена — стек переезжает на Mac.
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Исторический документ
|
||||
> Не использовать как runbook текущей Balda. Актуальная локальная схема, пути и команды: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Текущий контейнер: `balda-mm-mac`; config: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`; Obsidian MCP: `type: http`, `http://host.docker.internal:3101/mcp`.
|
||||
> Материал ниже сохранён только как история.
|
||||
|
||||
# Фаза 3 — Балда на Kraken + Mattermost (деплой)
|
||||
|
||||
> ⛔ **2026-09-29: СТЕК СНЕСЁН.** Контейнеры `balda-mm`, `balda-executor-mcp`, `obsidian-mcp`
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Balda 2.0 — Mattermost + распределённое делегирование (план)
|
||||
|
||||
> Создан 2026-09-25. Статус (обновлён **2026-09-28**): **Фазы 1-3 закрыты** (MM на Kraken ·
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Балда / Валера — эксплуатация & MCP debug
|
||||
|
||||
> ## ⛔ СНЕСЁН 2026-09-29 — агент удалён на Mac
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Клавдий (Claudio) — эксплуатация
|
||||
|
||||
## Расположение
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Исторический документ
|
||||
> Не использовать как runbook текущей Balda. Актуальная локальная схема, пути и команды: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Текущий контейнер: `balda-mm-mac`; config: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`; Obsidian MCP: `type: http`, `http://host.docker.internal:3101/mcp`.
|
||||
> Материал ниже сохранён только как история.
|
||||
|
||||
# fast-rlm MCP HTTP integration with Balda
|
||||
|
||||
> ## ⚠️ СТАТУС (2026-09-25)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Mattermost на Kraken — деплой (arm64)
|
||||
|
||||
> Создано 2026-09-26. Обновлено 2026-09-26. Статус: **✅ СЕРВЕР РАБОТАЕТ**.
|
||||
|
||||
@@ -1,86 +1,79 @@
|
||||
# Balda — Setup & Config
|
||||
# Balda — актуальный локальный запуск
|
||||
|
||||
_Последнее обновление: 2026-06-24_
|
||||
_Проверено: 2026-10-09._
|
||||
|
||||
## Хост
|
||||
> Это основной runbook для текущей Balda на Mac. Старые документы про `balda-agent-valera-1`, Zulip и Kraken — исторические.
|
||||
|
||||
Mac (Eagle), **Colima** (arm64, 8 CPU, 24 GB RAM, 100 GB sparse disk). Контейнеры собираются из исходников в `~/Developer/balda/`.
|
||||
## Текущая схема
|
||||
|
||||
**Важно:** `buildx_buildkit_arm64builder0_state` volume — основная причина зависаний Zulip при сборке. См. [[tech/docker-mac-disk-issues]].
|
||||
- Хост: 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`.
|
||||
|
||||
| Бот | Порт | Провайдер | Dockerfile |
|
||||
|-----|------|-----------|------------|
|
||||
| **Валера** (`balda-agent-valera-1`) | `:8091` | DeepSeek | `Dockerfile` (одинаковый) |
|
||||
| **Клавдий** (`claudio-agent-claudio-1`) | `:8092` | Claude (через proxy :3457) | `Dockerfile.claudio` (тот же + arm64 target) |
|
||||
## Что применять какой командой
|
||||
|
||||
## Расположение
|
||||
| Изменение | Действие |
|
||||
|---|---|
|
||||
| Только содержимое `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` после активации изменения |
|
||||
|
||||
| Item | Валера | Клавдий |
|
||||
|------|--------|---------|
|
||||
| Compose | `~/Docker/balda-agent/docker-compose.yaml` | `~/Docker/claudio-agent/docker-compose.yaml` |
|
||||
| Config volume | `~/Docker/balda-agent/.config/balda/` | `~/Docker/claudio-agent/.config/balda/` |
|
||||
| Env | `~/Docker/balda-agent/.env` | `~/Docker/claudio-agent/.env` |
|
||||
| Dev repo (общий) | `~/Developer/balda/` | `~/Developer/balda/` |
|
||||
`docker restart` перечитывает bind-mounted `config.yaml`, потому что Balda читает его при старте процесса. Он не перечитывает `.env` и не применяет изменения Compose.
|
||||
|
||||
**Важно:** оба бота собираются из одного репозитория `~/Developer/balda/` (normahq/balda fork). Разница — только в config.yaml (провайдер) и .env (Zulip credentials).
|
||||
Принудительное `--force-recreate` для изменения только `config.yaml` не требуется.
|
||||
|
||||
## Образ
|
||||
## Plugins и skills
|
||||
|
||||
- Собирается локально из `Dockerfile` (Go, multi-stage: golang:1.26 → alpine:3)
|
||||
- Target: `linux/arm64` (статический Go бинарник)
|
||||
- Image name: `balda-agent-valera:latest` / `claudio-agent-claudio:latest` (по имени compose проекта)
|
||||
- Entrypoint: `/usr/local/bin/balda` (ELF arm64)
|
||||
- Сеть: `balda_default` (bridge, внешняя, создаётся через docker network create)
|
||||
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 ~/Docker/balda-agent
|
||||
docker-compose restart # без пересборки, без перечитывания .env
|
||||
docker-compose up -d # пересоздаёт контейнер с текущим .env
|
||||
docker-compose build && docker-compose up -d # после изменений в коде
|
||||
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
|
||||
cd ~/Docker/claudio-agent
|
||||
# те же команды
|
||||
docker restart balda-mm-mac
|
||||
```
|
||||
|
||||
**После изменений кода** (в `~/Developer/balda/`): `build && up -d` в каждом compose.
|
||||
## Проверка
|
||||
|
||||
## .env (общие переменные)
|
||||
|
||||
```env
|
||||
OPENAI_BASE_URL=https://api.deepseek.com/v1 # обязательна для deepseek provider
|
||||
# для claude provider не нужна
|
||||
```bash
|
||||
docker ps --filter name=balda-mm-mac
|
||||
docker logs --tail 120 balda-mm-mac
|
||||
```
|
||||
|
||||
**Важно:** `docker-compose restart` не перечитывает `.env`. Только `docker-compose up -d`.
|
||||
|
||||
## Известные грабли
|
||||
|
||||
### 1. OPENAI_BASE_URL — обязательна для DeepSeek
|
||||
Norma не читает `base_url` из config.yaml для `provider: deepseek`. Читает env `OPENAI_BASE_URL`.
|
||||
Без неё запросы уходят на `api.openai.com` (401).
|
||||
|
||||
### 2. DOCKER_OPTS — пустая строка убивает старт
|
||||
```env
|
||||
DOCKER_OPTS={"max_tokens": 2048, "temperature": 0.7}
|
||||
```
|
||||
Не пустая строка! Иначе `strconv.ParseFloat: parsing ""` при старте.
|
||||
|
||||
### 3. exec format error на arm64
|
||||
Симптом: контейнер в crash-цикле, логи повторяют `exec /usr/local/bin/balda: exec format error`.
|
||||
Docker показывает `Up N hours` (накопленное время рестартов), но exec не работает.
|
||||
|
||||
**Причина:** контейнер создан с `Platform: linux/amd64` (старый Docker Desktop или первый run без platform). Образ arm64, контейнер amd64 — несовместимость.
|
||||
|
||||
**Фикс:** `docker-compose down; docker-compose up -d` — удаляет старый контейнер и создаёт новый с правильной платформой.
|
||||
|
||||
### 4. После перезапуска нужно @mention для создания сессии
|
||||
Events API polling подхватывает сообщения только если есть активная сессия в теме.
|
||||
После рестарта: написать `@Валера <текст>` (или `@Клавдий`).
|
||||
В логах должны быть успешная инициализация Codex ACP, готовность provider и подключение Mattermost WebSocket.
|
||||
@@ -1,3 +1,7 @@
|
||||
> [!IMPORTANT] Актуальная конфигурация для Balda (2026-10-09)
|
||||
> Текущая Balda использует Codex ACP и Streamable HTTP: `type: http`, URL `http://host.docker.internal:3101/mcp`.
|
||||
> Указания ниже про Balda + SSE или `/sse` относятся к прежним клиентам/развёртываниям. Канонический runbook: [[personal/projects/balda/setup]].
|
||||
|
||||
# Obsidian MCP — текущая архитектура
|
||||
|
||||
## Факт: что стоит сейчас
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Zulip Router
|
||||
|
||||
_Последнее обновление: 2026-06-19 (forward_trigger, sender_email, data, stream_id — payload идентичен Zulip outgoing webhook)_
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# balda-executor-mcp — MCP-сервер делегирования задач (шаг 5 Фазы 4)
|
||||
|
||||
> Создан 2026-09-26. Шаг 5 плана [[personal/plans/balda-mm-phase4-agents]].
|
||||
|
||||
@@ -23,6 +23,11 @@ related:
|
||||
- '[[personal/tech/hermes-fork-vs-upstream.md]]'
|
||||
- '[[personal/tech/hermes-memory-architecture.md]]'
|
||||
---
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
|
||||
# hermes-whale — Mattermost как транспорт
|
||||
|
||||
|
||||
Reference in new issue
Block a user