# Night shift 2026-10-15 (day) ## Mёртвый BASE: ночные теги vLLM прунены, kindling не собирается После вчерашнего чат-шаблонного фикса `sm121 serve --build-node` попытался rebuild `spark-glm53:v10` (чексумма каталога сменилась) и упал: `FROM vllm/vllm-openai:nightly-ddd6fbca…` → **not found**. Docker Hub прунул всю старую схему `nightly-` (сейчас только `nightly-dev---`), база прунена и с узлов (dgx1/2), дайджест нигде не записан (сентябрьский лог затёрт, реестр на Mac не включён, web-jobs чисты) → образ-база **невосстановим**. Промежуточный ручной путь (тонкая обёртка `FROM spark-glm53:v10` + новый шаблон + label) построен на dgx1, но **отклонён оператором**: sm121 должен уметь собрать всё с нуля, без ручных обходов. ## Решение: репин BASE на релиз v0.31.0 (постоянный тег) - v0.31.0 (cut 2026-10-02) — первый релиз, содержащий коммит базы ddd6fbca (09-26); multi-arch, arm64 ✓. - Дрейф-аудит `ddd6fbca..v0.31.0` (6 дней mainline, 239 файлов): - все файлы, которые патчат kindling-патчеры (mla/_fa_common, mla/_core, sparse_attn_indexer_kpool, kernel_warmup, shm_broadcast, platforms/cuda, reasoning, glm5next/*) — **без изменений**; - `routed_experts.py`: vllm#58720 вкатился upstream **дословно** (`_index_expert_mapping` идентичен) → `vllm-58720-routed-experts.patch` удалён из Dockerfile (verify-base.py по-прежнему ассертит наличие фикса); - requirements: flashinfer 0.7.0 → 0.7.0.post1 (mикро-бамп), torch/NCCL/ cutlass-dsl без изменений. - `ARG BASE=vllm/vllm-openai:v0.31.0`, `ARG VLLM_REF=db9527a4…` (коммит тега — FlashKDA shim компилится против того же исходника, что в base). - Коммит `546e7b2` (shared repo). ## Сборка через sm121 — успешна `sm121 build --recipe glm53-kindling-2x --build-node dgx1.lan`: **11 m 16 s** (pull base 145 s + flashkda + патчи + verify-base гейт + --load). Гейт verify-base прошёл (Glm5Next, glm45, glm47_failclosed, sm_120, MiaAI SM90 + indexer, spin-wait, FlashKDA 17a037d, mentat). Образ `c4bf0a1a…`, label `74087ade…` (= чексумма каталога), шаблон внутри `6c444d8b…` (фикс). Каталог снова полностью воспроизводим с нуля. ## 2x serve `sm121 serve --recipe glm53-kindling-2x` (pid 97998, /tmp/kindling-serve.log): sync dgx1→dgx2 автоматический, контейнеры стартовали 07:47 UTC, API http://192.168.100.14:30000, загрузка весов. ## Замечания - **karmic-kraken** dirs (шаблон тоже обновлён): его BASE — дайджест-закреплённая CUDA (вечная), rebuild воспроизводим, но полный clone-at-pin (долгий, 45+ мин) — сработает при следующем serve полос, использующих karmic-kraken (`glm53-kindling-4x-karmic`, `mimo26-flash-mopd-4x-vllm`, `mimo26-flash-mopd-4x-sparkring`). - Патчеры со «вступлением» (MiaAI retarget под flashinfer 0.7.0) прошли на 0.7.0.post1 — якоря не съехали. - Ночные vLLM-теги имеют TTL: любая схема на `nightly-*` мёртва через недели. Базы должны быть релизными/дайджестными (karmic — образец).