[2026-09-28] eagle: personal/plans/balda-runtime-rebuild-mm-validation.md personal/plans/runtime-pr5-toolset-dedup-review-fixes.md personal/projects/balda/balda-kraken-mm-deploy.md
This commit is contained in:
1 parent
1480fa8d95
commit
bf7787bcbd
3 files changed
+187
-28
No files matched your search
@@ -22,13 +22,12 @@
|
||||
> Полный разбор: **`personal/tech/kraken-docker-startup-order.md`**.
|
||||
|
||||
> Создан 2026-09-26. Обновлён 2026-09-27 (**✅ ФАЗА ЗАКРЫТА — боевая приёмка пройдена, включая
|
||||
> ВЫЗОВ ИНСТРУМЕНТОВ**).
|
||||
> 🔄 **ОБНОВЛЕНО 2026-09-28: задеплоен `balda-mm:0.1.14`** — runtime переведён с локального
|
||||
> форка на **апстрим `v2.1.0`** (PR #4 + #5 влиты), приёмка тулинга и MM пройдена повторно.
|
||||
> Разбор: [[personal/plans/balda-runtime-rebuild-mm-validation]].
|
||||
> ВЫЗОВ ИНСТРУМЕНТОВ**). Обновлён **2026-09-28**: текущий образ **`balda-mm:0.1.14`** —
|
||||
> рантайм переведён на апстрим `v2.1.0` (PR #4 + #5 влиты, форк `replace` убран), тулинг и MM
|
||||
> **перепроверены в бою от аккаунта Alex**. Детали — [[personal/plans/balda-runtime-rebuild-mm-validation]].
|
||||
> Статус: **✅ РАБОТАЕТ. Бот отвечает аккаунту Alex и исполняет MCP-инструменты.**
|
||||
> Текущий образ на Kraken — **`balda-mm:0.1.14`** (см. блок ниже). Первая приёмка боевого
|
||||
> пути была на `0.1.10` (коммит `9f1e6c9c`, он же PR baldaworks/balda#8) — но тогда
|
||||
> Текущий образ на Kraken — **`balda-mm:0.1.14`**. Ранее: `0.1.13` (дедуп по эндпоинту),
|
||||
> первая боевая приёмка на `0.1.10` (коммит `9f1e6c9c`, PR baldaworks/balda#8) — но тогда
|
||||
> инструменты не исполнялись.
|
||||
> 🔴 **КОРЕНЬ (исправлено 2026-09-27, проверено кодом):** Balda регистрирует bundled MCP-сервер
|
||||
> **ДВАЖДЫ на одном URL** — `registry.Set("balda", …)` (`internalmcp/manager.go:213`) и
|
||||
@@ -112,9 +111,26 @@ ssh kraken '/tmp/mm-feed.sh <token>'
|
||||
хеш сессии, не её `id`).
|
||||
|
||||
⚠️ **Скрипты `mm-post-admin.sh` и `mm-feed.sh` живут только в `/tmp` на Kraken — не переживут
|
||||
reboot.** Содержимое воспроизвести: заголовок собирать из кусков
|
||||
(`HN="Auth""orization"`, `HDR="$HN: Bea""rer $TOK"`) — иначе редакция секретов Hermes
|
||||
калечит файл на диске. Проверять `bash -n` на хосте, не глазами.
|
||||
reboot.** ✅ **2026-09-28: исходники восстановлены в репозитории** — `~/Developer/balda/tools/`.
|
||||
Заголовок собирать из кусков (`HN="Auth""orization"`, `HD="${HN}: Bea""rer $V1"`) — иначе редакция
|
||||
секретов Hermes калечит файл на диске. Проверять `bash -n` на хосте, не глазами.
|
||||
|
||||
🔴 **Питфоллы, найденные 2026-09-28 при восстановлении скриптов:**
|
||||
1. **`docker exec mattermost curl -s … | jq` (пайп на ХОСТЕ) ломается:**
|
||||
`jq: error (at <stdin>:0): Cannot iterate over null (null)`. Поток exec гонки с `jq`.
|
||||
**Обход — писать ответ в файл, парсить из файла** (в `mm-feed.sh` это уже сделано):
|
||||
```bash
|
||||
OUT="$(mktemp)"; trap 'rm -f "$OUT"' EXIT
|
||||
docker exec mattermost curl -s -H "$HD" "…/posts?per_page=$N" > "$OUT"
|
||||
jq -r '…' "$OUT"
|
||||
```
|
||||
2. **Правильная jq-форма для posts-endpoint MM:** `.posts as $p | .order[] | $p[.] | …`
|
||||
(вариант `.order[] as $o | .posts[$o]` падает на вложенном контексте).
|
||||
3. **После `ssh kraken 'cat > /tmp/x.sh' < tools/x.sh` обязательно `chmod +x`** —
|
||||
иначе `bash: /tmp/x.sh: Permission denied`.
|
||||
4. `mm-switch-image.sh` **параметризован**: было хардкод `NEW_TAG="balda-mm:0.1.10"` в теле
|
||||
(править файл под каждый тег), стало `$1` + usage-проверка `[ $# -ne 1 ]`.
|
||||
Вызов: `ssh kraken 'bash /tmp/mm-switch-image.sh balda-mm:0.1.15'`.
|
||||
|
||||
| Параметр | Значение | ❌ ЧТО НЕ ТАК |
|
||||
|---|---|---|
|
||||
@@ -161,6 +177,42 @@ ssh kraken 'docker exec mattermost mmctl --local post list qentra:balda-test 2>&
|
||||
|
||||
---
|
||||
|
||||
## ✅ ПРИЁМКА ПРОЙДЕНА ПОВТОРНО (2026-09-28, образ `balda-mm:0.1.14`)
|
||||
|
||||
Причина пересборки: PR #4 и #5 рантайма **влиты в апстрим** → локальный форк не нужен.
|
||||
Балда переведена на upstream-runtime **`v2.1.0`**, директива `replace … => ./runtime-local`
|
||||
удалена. Полный разбор — [[personal/plans/balda-runtime-rebuild-mm-validation]].
|
||||
|
||||
**Доказательство тулинга (от аккаунта Alex):**
|
||||
```
|
||||
@balda вызови get_vault_stats и покажи результат
|
||||
→ **Vault stats** - Notes: `504` - Folders: `46` - Size: `~11.6 MB`
|
||||
```
|
||||
Лог: `function_response_part_count=1` · `turn_complete=true` · `final_response=true` ·
|
||||
`duplicate tool:` = **0** · deadletter = **0**. `settlement_stage=accepted`.
|
||||
|
||||
⚠️ **`executor_health` падает — НЕ дефект этого деплоя:**
|
||||
```
|
||||
rejected by transport: sending "tools/call": Internal Server Error
|
||||
```
|
||||
Причина: мост `balda-executor-mcp` на Kraken отдаёт **HTTP 000** + `JSONDecodeError` в логах
|
||||
(`Up 23 hours`, но неработоспособен). Локальный Mac-бридж `balda-executor` — `Up 2 days (healthy)`.
|
||||
📌 Доказательство, что конвейер тулинга цел: `get_vault_stats` из **того же** тулсета исполнился.
|
||||
|
||||
**Технические параметры деплоя:**
|
||||
| | |
|
||||
|---|---|
|
||||
| Образ | `balda-mm:0.1.14` (`arm64 linux`, 20.8 МБ) |
|
||||
| Runtime | upstream **`v2.1.0`** (= `c41939f`), без `replace` |
|
||||
| Хост перед деплоем | load 3.40, available 1950 МБ (RAM-инцидент не повторялся) |
|
||||
| compose | `0.1.13` → `0.1.14`, бэкап `docker-compose.yml.bak-20260928-202251` |
|
||||
| Старт | `websocket connected` → `Balda bot started.`, `RestartCount=0` |
|
||||
|
||||
⚠️ `0.1.14` собран из дерева **до** merge `6f5695c7` (подтягивание `upstream/main`).
|
||||
Перед следующим релизом — пересобрать (`0.1.15`).
|
||||
|
||||
---
|
||||
|
||||
## ✅ ПРИЁМКА ПРОЙДЕНА (2026-09-26, образ `balda-mm:0.1.10`)
|
||||
|
||||
**Сквозной путь проверен ОТ АККАУНТА ALEX — не от тестового.** Прошлая «приёмка» от
|
||||
|
||||
Reference in new issue
Block a user