🕸️ Координация пиров — корневой разбор
2026-07-02 · аудит 24.06–02.07 · источники: 385 сессий (19 релевантных) + журнал консенсуса (62 события) + TG-03 (240 сообщений) + живой опрос пиров · собрано: хаб A-2022BAYAREA (Fable 5 + 2 Sonnet-агента)
Узлы флота — кто чем болеет
🖥️ Хаб A-2022BAYAREA 🟡 работает, датчик врёт
- inbox-робот жив, LLM-петля замыкается ✅
- Экспорт сессий починен этой ночью (+60 сессий, +StartWhenAvailable) ✅
- ⚠️ heartbeat кричит «краны 38/40 🔴», а schtasks видит живыми почти всех — врёт счётчик, разобрать
- ⚠️ coach-morning/evening молчат 51–58 ч (MCP-краны)
- ⚠️ consensus-tick: баг self-ACCEPT (18 повторов #f60135de)
💻 Ноут HP17-ZBook 🟡 жив, недолечен
- Сам нашёл корень F5VYGLV: «start-race при logon/wake», применил фикс, предложил #e53fd7fe ✅
- ⚠️ Архиватор сессий молчит с 24.06 → капер-сессия и всё после 24.06 не в волте
- ⚠️ Свой heartbeat: «sync 0/0 пиров» при доезжающих файлах — датчик мерит не то
- ⚠️ Спит с крышкой → консенсусы умирают об него по таймауту
🪟 MyOwnPC-Natalia 🟡 робот жив, обвес не доехал
- Робот и heartbeat живые, HANDOFF-задачи шлёт ✅
- ⚠️
No module named cron_watchdog — модуль не доставлен (propagate!)
- ⚠️ Бэкап устарел ~140 часов
- ⚠️
claude /login не подтверждён — робот может тикать вхолостую
🍎 MacBook-Ruslana 🔴 робот мёртв 7 суток
- Syncthing флапает (спящий Мак), но робот не подал ни одного признака с 25.06
- Ни одного файла
__from-MacBook-Ruslana вообще не существует
- Задачи хаба (Tailscale 30.06) висят без ответа
- → нужно физически открыть Мак и перезапустить launchd-робота
5 системных корней (лечим классы, не симптомы)
1. Нет флот-манифеста версий
Пути (C:/D:/E:), Device ID, имена машин, версии скриптов дрейфуют. Фикс едет туда, где шла отладка; раскладка на памяти → propagate нарушен ≥3 раза.
Лечение: манифест «компонент→версия→машина» + ночная хэш-сверка (расширить /arch до флота).
2. Сторожа без предохранителя
Watchdog убивал Syncthing по ложному 403 (пила 18 сек, 2 машины); tick лидера спамил self-ACCEPT ×18; heartbeat «38/40 🔴» при живых задачах.
Лечение: circuit-breaker каждому сторожу + «красный вердикт = 2 независимых источника до действия».
3. «Жив» ≠ «несёт службу»
Роботы тикают, но не исполняют обязанности: тикал — не отвечал; heartbeat зелёный — архиватор мёртв 8 дней.
Лечение: heartbeat v3 = дата последнего УСПЕХА по каждой обязанности (архив/respond/ACK/бэкап).
4. Протокол считает всех always-on
Always-on только хаб. Ноут и Мак спят → предложения консенсуса умирают по таймауту об спящих.
Лечение: классы узлов (always-on/спящий) с разными SLA + durable-очередь приказов до пробуждения.
5. Шум хоронит сигнал
~90% чата 03 = heartbeat/алерты. QQQ-запросы к Антону тонут в спаме роботов.
Лечение: heartbeats в отдельный поток / почасовой rollup; 03 = только события и вопросы.
Что уже РАБОТАЕТ — не трогать
Per-sender файлы шины (нет конфликтов записи) · dual-send c авто-failover в TG (доказан ночью) · 5 полных циклов консенсуса · конвергентный диагноз хаб+ноут по start-race.
Хроника мучений — 10 классов за 8 дней (24.06–02.07)
| # | Класс | Повторов | Статус | Суть / остаток |
| 1 | Доставка в шине (пути, вложенные папки, split-brain) | ≥6 | починен | Root-fix = per-sender файлы; остатки чинились слоями (env-кэш explorer, D:/C:) |
| 2 | Watchdog-403-пила (сторож убивал Syncthing) | 2 машины | частично | 403=жив + STGUIAPIKEY ✅; circuit-breaker так и не построен |
| 3 | Дрейф идентичности (Device ID, имена, AUTH_KEY) | ≥4 | частично | FIX B (пер-машинные TG-сессии) не доехал до хаба; реестр ID создан |
| 4 | Робот тикает, но не действует / жжёт токены | ≥5 | частично | call в батнике, commit-on-wake ✅; respond-шаг консенсуса не подключён (чинится в спавн-задаче) |
| 5 | Зомби-процессы (20×WhatsApp-MCP, 35×claude.exe) | 3 | частично | Разово убиты; корень «каждая сессия плодит» не закрыт |
| 6 | sync-conflict мусор / дубль-рутины на 2 машинах | 3 | частично | .stignore-fix есть, но per-device; 43+15+5 конфликтов лежат |
| 7 | Telethon/TG-API слои (TypeNotFound, InvitedUsers) | 3 | частично | Смягчено; апгрейд Telethon не сделан — риск дубль-групп |
| 8 | Windows-грабли (env-кэш, call, песочница, EPERM) | 4 | точечно | Каждая закрыта обёрткой/правкой |
| 9 | ВАЙП истории шины на ноуте (29.06) | 1 🔥 | не подтверждён | 1350 файлов спасено на хаб; восстановление ноута застряло 89%→4.5%, финал не сверен |
| 10 | Лестница резервных рельсов (7 каналов) | — | построено | git-bus/n8n-bridge без peer-ACK; email не подтверждён; /bus-heal не собран |
Ждёт твоего решения (QQQ)
- #e53fd7fe — зеркалировать фикс «start-race при logon/wake» на весь флот (хаб уже согласен, диагноз сошёлся с двух сторон). QQQ / NO
- #0b1d5d4f — план по рецидиву F5VYGLV ноута + ревизия осцилляции сторожей. QQQ / NO
- Дубль-группа с Русланой (создана демоном без санкции 25.06) — удалить или оставить? Висит неделю.
План лечения
🤖 Сделаю сам (Tier-1)
- ☐ Разобрать враньё «краны 38/40» на хабе (датчик vs schtasks)
- ☐ Патч self-ACCEPT-бага consensus.py (+ разложить в _transit с хэшами)
- ☐ Доставить cron_watchdog Наталье через _transit + грант
- ☐ Heartbeat v3 (duty-метрики) — черновик на консенсус
- ☐ Вычистить 43+15+5 sync-conflict (свериться с dedup-тулами)
- ◐ Роботы-respond для консенсуса — уже чинится в спавн-задаче
👤 Физически на людях
- ☐ Руслана: открыть Мак, перезапустить launchd-робота (7 дней тишины)
- ☐ Наталья: claude /login на её машине
- ☐ Антон: DHCP-резервация IP хаба на роутере
- ☐ Антон: ноут держать открытым до VERIFY #a7c918ff (транскрипты с 24.06)
📋 Недоделки-хвосты (бэклог)
- ☐ /bus-heal (авто-слияние конфликтов) — обещан, не собран
- ☐ Circuit-breaker сторожам
- ☐ Email-рельс: App Password подтвердить
- ☐ git-bus + n8n-bridge: peer-ACK флота
- ☐ Апгрейд Telethon (TypeNotFoundError)
- ☐ FIX B: пер-машинные TG-сессии → хаб
- ☐ Вайп-восстановление ноута: финальная сверка счётчиков
🧒 Простыми словами: у нас четыре компьютера-робота, которые учатся жить одной семьёй. За восемь дней они наступили на десять разных граблей, большинство уже починили. Но есть пять «болезней семьи», а не отдельных ушибов: нет общего списка «у кого какая деталь стоит», сторожа иногда крушат то, что охраняют, роботы умеют говорить «я жив», но не «я сделал работу», правила написаны как будто все никогда не спят (а спят почти все), и в общем чате такой галдёж, что важное тонет. Лекарства для каждой болезни выписаны выше: часть я сделаю сам, три вопроса ждут твоего «да», и три вещи могут сделать только люди руками.
Канон: 02-Decisions/decision-peer-coordination-roots-2026-07-02.md · агентские отчёты в сессии 60be8b5f · собрано автономно по мандату «разберись в корне»