⌂ все дашборды/Флот и узлы← Machines-Dashboard · Mayak-Health-2026-07-07 →

Гейт «обслуживание — 1 раз в сутки»: табло применения по флоту

CLAUDE.md §10.0 · посылка maintgate-2026-08-04 · собрано 2026-08-05 19:50 UTC с ноута HP17 (ZBOOKG8-2023PAL) · улики читаны фактом, не по намерению
⚠️ 4 узла из 6 доказаны. Отстают поимённо: MyOwnPC-Natalia, MacBook-Ruslana.
6
узлов-потребителей
4
гейт стоит (улика)
2
не стоит
2
починено в этой сессии
31
блок за 05.08 на HP17

1 · Кто применил, с уликой

УзелГейтУлика (значение / exit / дата)Леджер _deploy
ZBOOKG8-2023PAL
HP17, этот ноут
стоит maintgate_install.py --verify → exit 0: PreToolUse ✅, SessionStart ✅, движок selftest OK, режим quota, задача «Claude Housekeeping Daily» есть. Живой блок в этой же сессии: «fleet-audit уже отработала сегодня (5-й заход)». Журнал _maintenance_gate.jsonl за 05.08: 42 срабатывания, из них 31 блок. .ok 04.08 21:34 «verify-passed (self-healed)»
A-2022BAYAREA
хаб, always-on
стоит
починено 05.08 19:45
было: «❌ PreToolUse НЕ зарегистрирован · ❌ SessionStart НЕ зарегистрирован · режим: нет файла · ИТОГ: гейт НЕ стоит».
стало: все ✅, режим quota, задача «Claude Housekeeping Daily» заведена (её на хабе не было вовсе).
deploy_apply → «applied+verified, DONE marker written»; на хабе deploy_check сразу дал 9→8 непринятых и maintgate из списка ушла. К нам .ok едет синком.
FLEET-ANCHOR
Маяк, VPS
стоит
починено 05.08 19:42
было: exit 2, оба хука не зарегистрированы, режим «нет файла».
стало: exit 0, режим quota. Движок доехал синком и совпадает с нашим байт-в-байт: md5 09acaca8… (до фикса), ead47e3f… (после).
.ok 05.08 19:42 «applied+verified»
MacBook-Anton стоит по леджеру Улика — его собственная запись, не мой живой прогон: узел offline 7 ч (tailscale), достучаться нечем. .ok 05.08 09:59 «applied+verified». .ok 05.08 09:59
MyOwnPC-Natalia НЕ стоит В DONE-MyOwnPC-Natalia/ файла maintgate-2026-08-04.ok НЕТ (94 других есть). Посылка зарегистрирована 04.08 21:32, висит сутки. Узел offline 6 ч — проверить живьём нечем, применяет у себя сам (§7.2). ❌ PENDING без DONE
MacBook-Ruslana НЕ стоит В DONE-MacBook-Ruslana/ файла нет (42 других есть). По общему аудиту раздачи у этого узла 🔴 75 непринятых посылок — отстаёт не только по гейту. В tailscale не в сети. ❌ PENDING без DONE
Что сделано с отстающими: обоим ушла задача по шине (dual-send: _machine-bus + TG-03, exit 0 на обеих рельсах) с тремя шагами — поставить, проверить --verify, записать факт через deploy_apply. Тишина от них за «ок» не считается: вернусь к этой строке следующим прогоном.

2 · Сколько раз за 7 суток реально трогали CLAUDE.md и MEMORY.md

УзелCLAUDE.mdMEMORY.mdЧем измерено
ZBOOKG8-2023PAL17 (03.08 — 2 · 04.08 — 12 · 05.08 — 3)42 (пик 04.08 — 14 · 05.08 — 9)git-снапшоты каждые 15 мин: ~/.claude/.git и projects/…/memory/.git. Это ПОЛ: правки внутри одного 15-минутного окна сливаются в одну.
A-2022BAYAREAне измеримо43 (пик 04.08 — 15 · 05.08 — 8)Журнал конфига на хабе начат только 05.08 (FIRST_COMMIT 2026-08-05, 3 снапшота всего) — семидневки по CLAUDE.md там физически нет. Репо памяти живёт с 08.06, ему верим.
FLEET-ANCHOR9нет журнала~/.claude/.git. У папки памяти на Маяке git-репо нет вовсе (NOGIT).
MacBook-Anton, MyOwnPC-Natalia, MacBook-Ruslana — все трое offline, замер отсюда невозможен. Честно: цифр нет, а не «ноль».
Приказ прозвучал вечером 04.08. По цифрам 05.08 падения пока не видно (MEMORY.md: 9 на ноуте, 8 на хабе против пика 14–15 накануне). Это ожидаемо: гейт душит запуски рутин из Bash, а правку файла инструментом Edit он не видит вовсе — см. открытый вопрос №2.

3 · Ночной оптимизатор MEMORY.md — есть ли и когда давал ВЫХОД

УзелЧто стоитПоследний выход
ZBOOKG8-2023PAL«Memory Index Tidy» (00:35) + «Memory Index Guard»свежий _memory_tidy.log дописан 05.08 00:47, внутри построчный разбор всех проектов и «claude-exit 0». Guard: 04.08 21:24, rc=0.
A-2022BAYAREA«Memory Index Tidy» (23:35) + Guard + «Memory Dream Consolidation» + «Memory AB Eval»частично Tidy 04.08 23:35 rc=0, Dream 05.08 03:50 rc=0, AB 05.08 04:10 rc=0, но Memory Index Guard 05.08 05:40 вернул rc=1 — падает, разобрать отдельно.
FLEET-ANCHORcrontab: memory_guard.py --notify 23:50 + mayak_memory_tidy.sh 22:30Расписание есть; свежесть выхода в этой сессии не читал.

4 · Починено по дороге: гейт душил ЧТЕНИЕ кода

Симптом. В журнале за 05.08: sed -n '185,215p' regress_run.py и grep -n "_test_" regress_run.py трижды получили «regress-grid уже отработала сегодня» — гейт блокировал чтение исходника той самой рутины, которую в этот момент чинили.
Корень. Регексы реестра шли по всей команде: имя файла в аргументе sed/grep неотличимо от запуска. Тот же класс, что уже лечили для тела сообщений в шину.
Лечение. Перед матчингом выкидываем сегменты, начинающиеся с read-only смотрелки (cat grep sed head tail rg awk wc Get-Content Select-String …). Запуск после чтения (grep … && python regress_run.py) и запуск с грепом на выходе по-прежнему ловятся.
Улика. _test_maintenance_gate_body.py: 11/11 PASS, из них 5 новых. Тест краснеет на сломанном коде — проверено: без фикса sed -n … regress_run.pyregress-grid. Движок в scripts/_shared, md5 ead47e3f…, уже доехал синком до Маяка (тот же md5).
Почему важно. Ложное срабатывание учит писать --force на автомате — и однажды через тот же автоматический --force пройдёт настоящий паразит.

5 · Что осталось открытым (решает Антон)