⌂ все дашборды/Флот и узлы← Quarantine · Scripts-Parity-Mac16-vs-Hub →

Починка класса: «bus_send.py принимает флаги как ТЕКСТ»

Сессия auto-hub-260822-repair-bus-send-flags-as-text · хаб A-2022BAYAREA · 22 августа 2026, вечер · правило третьей поломки (§5.10)
47
задач шины уехало человеком и пропало как работа (июль-август)
3
починки в одном заходе: гейт шины · ASCII-имя сессии · анти-петля журнала
40/40
тест гейтов шины (было 16)
3/3
внешних ломателя ответили, все находки закрыты
0
новых потерь возможно: отказ exit 2 вместо зелёного «OK»

Корень (5 почему по СЕРИИ, не по одному случаю)

шагвопросответ
1почему заказ не сделали?тело начиналось с --subject, а инбокс-робот берёт только тело с TASK:
2почему тело начиналось с флага?_parse склеивал все аргументы после --to X в текст
3почему отправка всё равно прошла?гейт печатал ⚠️, но exit оставался 0 и обе рельсы рапортовали DUAL-SEND OK
4почему гейт был мягким?жёстко блокировался только один узнанный промах («TASK» без двоеточия), остальное — предупреждение
5 · КОРЕНЬпочему вообще возникает флаг в теле?интерфейс ПОЛУфлаговый: приняв --to, он учит вызывающего, что флаги тут работают, и молча съедает все остальные. Плюс: предупреждение рядом с зелёным exit проигрывает всегда

Что стало

вызовбылостало
--to X --subject Y --body Zexit 0, тело «--subject Y…», задача потерянаexit 2, ничего не ушло, печатается верная форма
--to X --priority=high TASK: xобходил даже первую версию гейта (знак «=»)exit 2 (находка панели)
--to X " --text ЗАКАЗ"обходил: ведущий пробел в кавычкахexit 2 (находка панели)
ALL "- пункт" / "--- разделитель" / "-1 узел"проходилопроходит — живую прозу гейт не трогает
--to X -- "--text буквально"не существовалоPOSIX-люк: текст с дефисом уходит как есть

Доказательства (не «должно работать», а замер)

проверкарезультат
тест гейтов шины _test_bus_near_miss.py40/40
мутация: тот же тест против ДОфиксовой копии9 красных из 40 — тест реально что-то держит
мутация: против первой версии гейта4 красных — находки панели закрыты по-настоящему
регресс дуал-рельсы test_bus_send_dual_rail.py11/11
живая канарейка: реальная отправка на ALLобе рельсы OK, exit 0
живые отказы обеих новых формexit 2, ноль отправок
имя сессии починки против гейта-потребителя6/6, мутант краснеет 5/6
анти-петля журнала2/2, мутант видит 5 «поломок» вместо 2

Раскатка на флот

посылкаузлыхаб
bus-send-flag-body-gate-202608226 (все)applied, verify машинный
selfheal-taskid-and-antiloop-202608226 (все)applied, verify машинный

Файлы едут сами: ~/.claude/scripts/*.py внутри синкающейся шары claude-home (проверено по конфигу Syncthing: !/scripts/*.py стоит ПЕРЕД /scripts). Пиры применят посылку своим обычным сметанием; объявление ушло на обе рельсы шины.

Что осталось человеку

Труба заткнута, но хвост из 47 старых сообщений — реальные задачи, доехавшие человеком и не взятые роботом. Часть, вероятно, уже сделана глазами. Список: 00-System\Bus-Lost-Tasks-Behind-Flags.md, карточка: 10-Tasks\task-2026-08-22-bus-lost-tasks-behind-flags.md. Слепую переотправку 47 задач по флоту сам не делаю — это массовое действие (§3.3-бис).

Собрано сессией починки. Журнал класса: 00-System\Breakage-Journal.md · очередь: selfheal.py repairs (класс закрыт).