[2026-09-29] eagle: снос Balda-стека на Kraken + правило не писать на SD

- Balda-стек на Kraken снесён: balda-mm + balda-executor-mcp + obsidian-mcp + все образы balda-mm:* (23 тега, ~2.55 ГБ)
- Mattermost server + mm-postgres НЕ тронуты (Up, healthy)
- Часть B PR #8 проверена: 3 блокера уже исправлены в upstream/main
- kraken-host-resource-limits: новый раздел — на SD не писать; /home/kraken на SD, Docker Root Dir на HDD
- актуализированы: callee-prism-plan (отмена «оставить запасной»), phase4-agents, kraken-deploy, delegation-plan
This commit is contained in:
Alexey Martemyanov committed 2026-09-29 14:35:02 +06:00
1 parent 8f4bb3f3ae
commit 5907221b3e
6 files changed
+120 -19

No files matched your search

+7 -4
View File
@@ -1,8 +1,11 @@
# Балда → Callee + Prism: делегирование
> Обновлён 2026-09-29. Статус: **C0 закрыта. Топология пересмотрена: стек переезжает
> на Mac, на Kraken остаётся только MM-сервер.** C1-C5 не начаты.
> Часть [[personal/projects/balda/balda-mm-delegation-plan]].
> на Mac, на Kraken остаётся только MM-сервер.**
> ⛔ **2026-09-29: старый Balda-стек на Kraken СНЕСЁН** (контейнеры `balda-mm`,
> `balda-executor-mcp`, `obsidian-mcp` + все образы `balda-mm:*`). Mattermost жив.
> Решение §6.11 «оставить Kraken-инстанс живым как запасной» — **ОТМЕНЕНО Alex'ом**.
> C1-C5 не начаты. Часть [[personal/projects/balda/balda-mm-delegation-plan]].
> Опорная заметка по контрактам инструментов: [[personal/tech/callee-prism]].
>
> 🔴 **Открытая развилка (§6.7):** как давать доступ к `xcodebuild` / `lume` / `docker build` —
@@ -722,7 +725,7 @@ scoped-пакеты так не индексируются.
| 8 | Роли: где живут | статично, файлами в каталоге | рантайм-выдачи ролей в callee не существует (§1.1b) |
| 9 | Права | `права процесса × монтирование × граф` | гейт `Human` защищает действие, но не возможность (§1.1a) |
| 10 | Мост `:8790` / MCP `:8890` | **демонтируются** | лишние посредники без содержательной работы |
| 11 | Старый инстанс на Kraken | **оставить живым как запасной** | откат без пересборки; ⚠️ требует отдельного MM-бота |
| 11 | Старый инстанс на Kraken | ⛔ **ОТМЕНЕНО 2026-09-29 — СНЕСЁН** | Alex скомандовал снос: контейнеры + все образы `balda-mm:*`. Откат без пересборки невозможен; при возврате — собирать заново из `upstream/main` |
---
@@ -765,7 +768,7 @@ scoped-пакеты так не индексируются.
| Два инстанса Балды конфликтуют по MM | средний | отдельный бот/токен для Mac-инстанса |
| Импорт `prism/*` устаревает при обновлении | средний | проверять `kind: Router` после каждого импорта |
| callee обновляется и меняет контракт | средний | пиннить версию в ресурсах |
| Переезд стека с Kraken не оправдается | средний | оставить Kraken-инстанс живым как запасной (§6.11) |
| Переезд стека с Kraken не оправдается | средний | ⛔ **Kraken-инстанс снесён 2026-09-29** — откат только пересборкой из `upstream/main`. Образы удалены |
| Стоимость DeepSeek растёт | низкий | исполнитель-роли — короткие визиты |
| Установка в контейнер не переживёт пересборку | низкий | том или `Dockerfile` |
+5
View File
@@ -1,6 +1,11 @@
# Фаза 4 — исполнитель на Mac + `~/agents` + секция «Agents» в Eagle Dashboard
> План + статус. Старт 2026-09-26.
> **⛔ 2026-09-29: старый стек СНЕСЁН.** Balda-инстанс на Kraken (`balda-mm`), MCP-сервер
> `balda-executor-mcp` и `obsidian-mcp` на Kraken удалены вместе со всеми образами `balda-mm:*`.
> Схема «Kraken-оркестратор + Mac-исполнитель через мост» **закрыта** — топология переехала
> целиком на Mac. Актуальный план: [[personal/plans/balda-callee-prism-plan]].
> Разделы ниже — история, к работе не применять.
> Часть [[personal/projects/balda/balda-mm-delegation-plan]] (Фазы 4-5).
> Предыдущее: [[personal/projects/balda/balda-kraken-mm-deploy]] (Фаза 3 ✅ — бот отвечает Alex).
@@ -1,10 +1,69 @@
> Создан 2026-09-28. Статус: **✅ ЧАСТЬ A (runtime) · C/D (сборка+деплой+валидация) · E (sync с апстримом) ВЫПОЛНЕНЫ.**
> Часть B (3 блокера PR #8) — **НЕ НАЧАТА**.
> Часть B (3 блокера PR #8) — **✅ ПРОВЕРЕНА 2026-09-29: фиксы УЖЕ в апстриме** (см. блок ниже).
> ⛔ **2026-09-29: Balda-стек на Kraken СНЕСЁН.** Топология пересмотрена — стек переезжает на Mac.
> Актуальный план: [[personal/plans/balda-callee-prism-plan]].
> Цель: собрать локально runtime (PR4+PR5 влиты) + balda (ревью PR #8), задеплоить на Kraken,
> прогнать проверку тулинга и Mattermost.
> Связано: [[personal/projects/balda/balda-kraken-mm-deploy]], [[personal/plans/balda-mm-pr8-review-fixes]],
> [[personal/plans/runtime-pr5-toolset-dedup-review-fixes]].
### ✅ 2026-09-29: Часть B ЗАКРЫТА — фиксы уже в апстриме (проверено фактом)
Три блокера PR #8 (`channel/mattermost/ingress.go`) **исправлены в `upstream/main`**
(`bf4a6ae4`). Проверено чтением кода, не по доке:
| # | Блокер | Фикс в `upstream/main` |
|---|---|---|
| **B1** | `acquireSlot()` терял событие при заполнении semaphore | ✅ `acquireSlotForDispatch` — «applies backpressure to the websocket reader» (:619-628). Старый `acquireSlot` оставлен для другого пути |
| **B2** | `InboundRetry`/`err` только логировались | ✅ `ProcessInbound` → `if settlement.Outcome != turncmd.InboundRetry` (:581-582) |
| **B3** | shutdown: `processWG.Add` мог пройти после начала `Wait` | ✅ `waitForProducer(ctx, done)` **до** работы с группой + комментарий «The producer owns processWG.Add. Stop it before waiting on the group» (:178-183) |
📌 **Вывод:** чинить нечего. Сценарии D2-b (burst) / D2-c (restart) должны проверяться уже
на новой сборке — но деплоить на Kraken больше не нужно (стек снесён).
### ⛔ 2026-09-29: Balda-стек на Kraken СНЕСЁН (команда Alex)
**Задача:** снести `balda-mm` + `balda-executor-mcp` + `obsidian-mcp` и почистить образы.
**Mattermost server — НЕ сносить.**
| Объект | Действие | Результат |
|---|---|---|
| Контейнер `balda-mm` | `docker compose down` (`/home/kraken/balda`) | ✅ Removed |
| Контейнер `balda-executor-mcp` | `docker compose down` (`/home/kraken/balda-executor-mcp`) | ✅ Removed |
| Контейнер `obsidian-mcp` | `docker compose down` (`/home/kraken/obsidian-mcp`) | ✅ Removed |
| **Образы `balda-mm:*`** (23 тега: `0.1.0`…`0.1.14`, `0.1.13-diag`, `0.1.15-pr8-*`, `balda:mm-classifier`) | `docker rmi` | ✅ удалены, ~2.55 ГБ |
| **Образы `balda-executor-mcp:0.1.0` + `:0.2.0`** | `docker rmi` | ✅ удалены |
| `mattermost` + `mm-postgres` | **не трогались** | ✅ `Up 46 hours (healthy)` |
| Образ `obsidian-mcp-image:0.1.0` | **оставлен** (только контейнер снесён) | — |
| Compose-файлы, `.env`, `secrets/`, `config/` | **оставлены на диске** | восстановление возможно |
⚠️ **`docker compose down` без `-v`** — тома и bind-mounts целы. Политика `restart: unless-stopped`
делает `docker stop` недостаточным (Watchtower/демон вернул бы), поэтому именно `down`.
⚠️ **Бэкапов не делалось** — по указанию Alex («бэкап блядь не было в плане»).
Единственное, что сохранилось: compose-конфиги на хосте в `/home/kraken/*` и `state.db`
внутри тома.
🔴 **Питфолл, вскрытый в процессе:** я создал бэкап-каталог `/home/kraken/_backup-balda-teardown-*`
на **SD-карте** и получил от Alex «какого хуя?! в доке по кракену не написано не писать на сд карту?!».
**В доке этого не было** — исправлено: см. `personal/tech/kraken-host-resource-limits.md`
§«На SD НЕ ПИСАТЬ», правило продублировано в скилл `docker-service-administration`.
Каталог удалён.
📌 **Проверено `df`/`findmnt`:** `/home/kraken` **НЕ отдельный mount** — это часть корневой ФС
`/dev/mmcblk0p2` (SD). Docker Root Dir при этом **уже на HDD** (`/srv/…/docker-data`).
Путаница «докер на диске» ≠ «/home на диске».
### ✅ Mac: Валера/Клавдий — снесены ранее, проверено фактом
| Проверка | Результат |
|---|---|
| Контейнеры `balda`/`valera`/`claudio` | ✅ нет ни одного |
| Образы `balda-agent-valera`, `claudio-agent` | ✅ нет |
| Порт **8091** | ✅ свободен |
| Каталоги `~/Developer/balda`, `~/Docker/balda-agent`, `~/Docker/claudio-agent` | ✅ **сохранены** (не трогались) |
### ✅ 2026-09-29: PR #8 СМЕРЖЕН + git-гигиена выполнена
**Все четыре PR влиты:**