# Night shift 2026-10-02 Оператор: «заставь kindling-конструкцию работать», «сверь апстримы того, что используем», «скилл для триажа», «headless на узлах». Все 8 узлов активны, агент переключен на «плуту» (macOS). ## kindling glm53-kindling-4x — e2e-ночь (mode B) Хронология запусков на `dgx58-switch` (dgx5–8), образ `spark-glm53:v9` (checksum d285a3f…): 1. **Краш #1** (ночь 10-01): `--speculative-config` в TOML задублирован (генератор вставил JSON дважды) → vLLM не парсит mash-up. 2. **Форма кавычек**: значение должно быть `"""` + newline + `'{JSON}'` + `"""` с закрывающим `"""` **на той же строке** (форма mimo-рецептов); trailing newline перед `"""` → лаунчер не снимает апострофы → `cannot be converted to loads`. Фикс во всех 3 рецептах, argv провалидированы in-image (at4: argparse пройден, движок ушёл в загрузку). 3. **Апстрим kindling**: +3 коммита (27cf839): их фикс #64 — ровно наш баг (второй `--speculative-config` в EXTRA выигрывал; теперь `SPEC_EXTRA`, второй конфиг запрещён), megamoe #67, kindling.json #68. Ре-вендорен (наш build.sh/README сохранены, README.upstream.md обновлён). 4. **UMA-гейт** (главная находка): `Free memory on device cuda:0 (106.28/ 106.92/121.63 GiB) ... less than desired GPU memory utilization (0.88, 107.03 GiB)` — на СЛУЧАЙНЫХ узлах (rank1/rank2 в одну секунду), маржа 0.11–0.75 GiB. Встроенный drop_caches (config, default true) не спасает: к worker-init контейнерный стек (torch+CUDA+code page cache) уже дописал ~11 GiB. Фикс: **GMU 0.88→0.86** (нужно 104.60, маржа ≥1.68) + **mods-`drop_caches`** вплотную к exec; жёсткий `--kv-cache-memory` 26 GiB не тронут → пул KV не меняется. 5. **Итог**: все 4 контейнера Up, веса 33/33 shards за 648 с (NAS), их W4/FP8-конверсия работает; далее draft + autotune (первый запуск на узлах, /tmp-кэш автотюна) → готовность ~09:00–09:20. Процесс-улучшения: - **Скилл `.agents/skills/serve-boot-triage/`** — триаж: `--keep` (контейнер переживает крах, логи читаются), detached serve, per-node матрица, hard rules (IP только из config; base64-скрипты; runlock). - Серв-вызовы: **follow-режим по умолчанию** — без `--no-follow` serve блокируется в логах (это и было «зависание 600 с», не баг лаунчера). - Длинный foreground-вызов (make check + serve в одном) уходит в interruption — serve в отдельном коротком вызове. ## Headless + уборка - X/gdm (`graphical.target`) найден на **dgx6/7/8** (dgx1–5 уже multi-user); переключено: `systemctl set-default multi-user.target` + `stop gdm`. Оператор: «это явная ошибка конфигурации». - searxng-контейнер на dgx6 удалён (мусор чужого эксперимента, по запросу). - runlock: закрыты stale `gemma4-12b` (09-30) и `mimo26-flash-mopd-4x-sparkring` (09-30). ## Апстрим-сверка (что используем) | Стек | Статус | |---|---| | kindling `glm-5.3-flash-gx10` | +3 коммита → ре-вендор 27cf839 (см. выше) | | tool-eval-bench | без изменений с пина v2.7.0 (544afb576b3) | | MiMo Flash/Pro MOPD (HF) | refs/main == наши пины (2479e2d0 / adea8e2c) | | nvidia GLM-5.3-Flash-NVFP4 | refs/main == да920bb0 (наш) | | incoai DFlash2 | refs/main == bf582e4e (наш) | | eugr/spark-vllm-b12x | **новый nightly-20261001** (+0930) — vllm-лейн подхватит при следующем старте (floating :latest) | | sparkring (ghcr) | наш пин = `glm53-shared-74275757` (f25cdb6b); есть ещё два тега `glm53-shared-{a8aeff2,8b32ef2}` — новые сборки, adoption = ре-пин по digest + re-bench (отложено) | | vLLM upstream | PR #58846/#58720 (flashkda fp32) merged; открытые spec-decode багфиксы не трогать (форк) | ## Ожидания 1. Готовность kindling 4x (~09:00–09:20), smoke (chat + structured output). 2. Bench-кампания (hardmode, c1+c2) — до возвращения оператора. 3. При хорошем результате: ребилд образа на 27cf839 (megamoe #67) + A/B с lab GLM53; TP6--bootstrap (make_padded.py) — в следующем окне.