From 5907221b3eacb02a2a7b20c93a831e3965e95fed Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Tue, 29 Sep 2026 14:35:02 +0600 Subject: [PATCH] =?UTF-8?q?[2026-09-29]=20eagle:=20=D1=81=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20Balda-=D1=81=D1=82=D0=B5=D0=BA=D0=B0=20=D0=BD=D0=B0=20?= =?UTF-8?q?Kraken=20+=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=BF=D0=B8=D1=81=D0=B0=D1=82=D1=8C=20=D0=BD?= =?UTF-8?q?=D0=B0=20SD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- personal/plans/balda-callee-prism-plan.md | 11 ++-- personal/plans/balda-mm-phase4-agents.md | 5 ++ .../balda-runtime-rebuild-mm-validation.md | 61 ++++++++++++++++++- .../projects/balda/balda-kraken-mm-deploy.md | 7 +++ .../balda/balda-mm-delegation-plan.md | 5 ++ personal/tech/kraken-host-resource-limits.md | 50 ++++++++++----- 6 files changed, 120 insertions(+), 19 deletions(-) diff --git a/personal/plans/balda-callee-prism-plan.md b/personal/plans/balda-callee-prism-plan.md index 9e7367db..aabbc418 100755 --- a/personal/plans/balda-callee-prism-plan.md +++ b/personal/plans/balda-callee-prism-plan.md @@ -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` | diff --git a/personal/plans/balda-mm-phase4-agents.md b/personal/plans/balda-mm-phase4-agents.md index 603340b4..e3a876c8 100755 --- a/personal/plans/balda-mm-phase4-agents.md +++ b/personal/plans/balda-mm-phase4-agents.md @@ -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). diff --git a/personal/plans/balda-runtime-rebuild-mm-validation.md b/personal/plans/balda-runtime-rebuild-mm-validation.md index 0e330c6f..912eb246 100755 --- a/personal/plans/balda-runtime-rebuild-mm-validation.md +++ b/personal/plans/balda-runtime-rebuild-mm-validation.md @@ -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 влиты:** diff --git a/personal/projects/balda/balda-kraken-mm-deploy.md b/personal/projects/balda/balda-kraken-mm-deploy.md index 208773b7..1653cbd1 100755 --- a/personal/projects/balda/balda-kraken-mm-deploy.md +++ b/personal/projects/balda/balda-kraken-mm-deploy.md @@ -1,5 +1,12 @@ # Фаза 3 — Балда на Kraken + Mattermost (деплой) +> ⛔ **2026-09-29: СТЕК СНЕСЁН.** Контейнеры `balda-mm`, `balda-executor-mcp`, `obsidian-mcp` +> на Kraken удалены вместе со всеми образами `balda-mm:*` (23 тега, ~2.55 ГБ). +> **Mattermost server + `mm-postgres` остались живы** (`Up`, healthy). +> Compose-файлы, `.env`, `secrets/`, `config/` — на диске в `/home/kraken/*`, восстановление возможно +> только пересборкой образа. Топология переехала на Mac: +> [[personal/plans/balda-callee-prism-plan]]. Док ниже — история деплоя. +> > 🔴 **2026-09-27 — ПРИОСТАНОВЛЕНО ПО ПРИЧИНЕ РЕСУРСОВ ХОСТА.** > Alex: *«останови пока balda и MM и mcp proxy чтобы не стартовали и ребутни кракен»*. > Причина — исчерпание RAM на Кра́кене (4 ГБ, swap 0), load 57, **MM недоступен для входа**. diff --git a/personal/projects/balda/balda-mm-delegation-plan.md b/personal/projects/balda/balda-mm-delegation-plan.md index 4a8c5761..028af281 100755 --- a/personal/projects/balda/balda-mm-delegation-plan.md +++ b/personal/projects/balda/balda-mm-delegation-plan.md @@ -4,6 +4,11 @@ > MM-адаптер в коде · оркестратор развёрнут, **бот отвечает в MM**). Фаза 2 выведена на **PR > `baldaworks/balda#8`** — 8/8 CI PASS, `MERGEABLE`, `reviewDecision` пустой → ждёт ревью > апстрима (внешний блокер, не наша работа). +> ⛔ **2026-09-29: СХЕМА ЗАКРЫТА, СТЕК СНЕСЁН.** Balda на Kraken (`balda-mm`), +> `balda-executor-mcp` и `obsidian-mcp` удалены вместе с образами. Мост `:8790` и топология +> «Kraken-оркестратор → Mac-исполнитель» демонтированы — стек переехал целиком на Mac. +> **Актуальный план: [[personal/plans/balda-callee-prism-plan]]** (callee + prism, DeepSeek с обоих концов). +> Док ниже — история Фаз 1-4. > 🔴 **Фаза 4 собрана и исправна на всех звеньях, КРОМЕ одного: CLI в контейнере-исполнителе > не залогинен.** Любая реальная задача через мост падает `Not logged in · Please run /login` > (аудит 2026-09-28 живыми вызовами). Это последний блокер перед Фазой 5. diff --git a/personal/tech/kraken-host-resource-limits.md b/personal/tech/kraken-host-resource-limits.md index 8992c211..8594f9a8 100755 --- a/personal/tech/kraken-host-resource-limits.md +++ b/personal/tech/kraken-host-resource-limits.md @@ -156,28 +156,50 @@ mmcblk0 14.6G 0 disk # SD/eMMC - Монтирование: `rw,relatime,quota,usrquota,grpquota`. - Занято 1.1 ТБ, свободно **689 ГБ (61%)**. -### 🔴 На SD (`mmcblk0p2` = `/`, `/home/kraken`) НИЧЕГО не писать +### 🔴 На SD (`mmcblk0p2`) НЕ ПИСАТЬ — но Docker уже на HDD **Правило Alex (2026-09-29, дословно): «не трогай блядь sd карту».** SD/eMMC — расходник с ограниченным ресурсом перезаписи, и это корневая ФС: износ = смерть хоста. -Записи на `/` запрещены. Запрет распространяется на **всё, что создаёт агент**: -| ❌ НЕ сюда | ✅ Сюда | +#### Что ГДЕ (проверено `df` / `findmnt` / `docker info`, 2026-09-29) + +| Путь | ФС | Диск | +|---|---|---| +| `/` | `/dev/mmcblk0p2` | 🔴 **SD** (14 ГБ, 4.6 занято, 8.6 свободно) | +| `/home` · `/home/kraken` | `/dev/mmcblk0p2` | 🔴 **SD** — **не отдельный mount!** | +| `/tmp` · `/var/log` · `/var/cache/apt` · `/var/spool` | `/dev/mmcblk0p2` | 🔴 SD (folder2ram-обёртки) | +| `/boot/firmware` | `/dev/mmcblk0p1` | 🔴 SD (vfat) | +| `/srv/dev-disk-by-uuid-6194539b-…/` | `/dev/sda1` | ✅ **HDD** (1.8 ТБ) | +| **Docker Root Dir** | `/srv/…/docker-data` | ✅ **HDD — уже переехал** | +| `/srv/dev-disk-by-uuid-49e8f586-…/` | `/dev/sda1` | ✅ **HDD** (медиа-раздел) | + +📌 **Ловушка:** `/home/kraken` **выглядит как домашний каталог**, но он **на SD** — `findmnt /home/kraken` +возвращает пусто (не отдельный mount), `df -h /home/kraken` показывает `/dev/mmcblk0p2`. +Docker-данные при этом **уже на HDD** (`data-root` = `/srv/…/docker-data`) — образы, слои, тома +на диск не давят. **Путаница «докер на диске» ≠ «/home на диске».** + +#### Запрет + +| ❌ НЕ писать | ✅ Писать | |---|---| -| `/home/kraken/_backup-*` | `/srv/dev-disk-by-uuid-49e8f586-…/` (HDD) или Mac | -| `/tmp/*` под большие артефакты, образы, дампы | HDD или Mac | -| build-кэш Docker | **собирать образы только на Mac** (кэш buildkit льётся на SD, 10× медленнее) | -| дампы БД, логи, архивы | HDD | +| `/home/kraken/_backup-*` | `/srv/…` (HDD) или **на Mac** | +| `/tmp/*` под образы, дампы, архивы, `.tar` | HDD или Mac | +| build-кэш Docker (**собирать только на Mac**) | — | +| дампы БД, логи, архивы | HDD или Mac | -⚠️ **Согласованный питфолл:** compose-файлы проектов **уже** лежат в `/home/kraken/*` -(так исторически развёрнуты проекты) — с этим ничего не поделать, они мелкие и не перезаписываются. -**Но новые крупные записи туда не кладутся.** Прежняя практика бэкапов -`/home/kraken/_backup-compose-20260927/` — **устаревшая, не повторять**: она была -выбрана без учёта запрета. +🔴 **Перед любой записью на Kraken** — проверить целевой путь: +```bash +ssh kraken 'df -h ' # ожидаем /srv/... , НЕ / +ssh kraken 'findmnt ' # пусто = не отдельный mount = на корне (SD) +``` +При сомнении — не писать, спросить. -🔴 **Требование к агенту:** перед любой записью на Kraken проверить целевой путь по `df -h ` -и убедиться, что это `/srv/...` (HDD), а не `/`. При сомнении — не писать, спросить. +⚠️ **Compose-файлы проектов исторически лежат в `/home/kraken/*`** (мелкие, не перезаписываются) — +это факт, с ним не боремся. Но **новые крупные записи** туда не кладутся. +Прежняя практика `/home/kraken/_backup-compose-20260927/` — **устаревшая, не повторять**. + +📌 **Бэкапы с Kraken — тянуть на Mac** (`ssh kraken 'cat …' > /local/path` или `rsync`), не хранить на хосте. ## План: swap-файл на HDD