⌂ все дашборды/Качество и аудиты← Kill-Review · Memory-AB-Verdict-2026-07-25 →
Mac16 · разбор красных тестов

Mac16 · разбор красных регресс-сетки

узел MacBook-Anton · прогон 2026-08-19 02:16 · прогнано 364 из 377, зелёных 323 · собрано 2026-08-19 02:16
52
было (18.08 17:38)
41
стало (это табло)
−11
снято с табло
~44
честное НОЧНОЕ число
Почему ночное число больше. Этот прогон шёл из живой сессии и унаследовал её переменные, а ночной идёт под launchd с ПУСТЫМ окружением. Перепроверил каждый позеленевший тест в голом окружении (env -i HOME PATH): три зелены только за счёт env сессии и ночью вернутся — _test_fb_teaser_tempo.py, _test_hook_canon_lag.py, _test_llm_ask.py. Честная дельта при ОДИНАКОВЫХ условиях: 52 → 44, минус 8. Число без этой строки было бы враньём.

✅ Снято с табло устойчиво (доказано в голом окружении)

ТестВердиктКорень и что сделано
_test_brain_ask.py🌍 СРЕДАСетка звала системным python3, а деталь живёт в venv PYTHON_EXE (~/.brain-venv). Тест перезапускается под своим интерпретатором → 58 PASS, 0 FAIL (раньше не проверял ничего)
_test_ab_recall.py🪟+🌍Жёсткий E:\Obsidian\_imports + вызов через sys.executable → дом от самого файла, интерпретатор по лестнице → ALL GREEN
_test_run_hidden_guard.py🪟 HOSTreturn 2 на POSIX сетка красила как падение → скип отдаёт 0 + строку N/A: (контракт menv.require_windows)
_test_no_write_to_121.py🔧 ДЕТАЛЬНашёлся НАСТОЯЩИЙ писатель: approval_clock.py слал Наташе в чат 121, закрытый 06.08 — «доставлено» печаталось, человек не видел. Таргет → чат 03 + пинг @*****ya_Le
_test_claude_fleet.py (10d)🔧 ДЕТАЛЬgit ls-files резолвит pathspec от CWD; сетка зовёт из папки теста → «0 хуков» на канале, который возит 111. Явный cwd
claude_desktop_watchdog.ps1🪟 HOSTWindows-only .ps1 без powershell.exe — вечно-жёлтый на каждом POSIX-узле. Сетка пропускает поимённо
kbfix.ps1🪟 HOSTто же самое
_test_voice_finalizer.py🌍 СРЕДАживой n8n + ключ, ручной тест по своей же шапке → помечен сетевым
Ни один тест не «озеленён» ослаблением. Каждое исключение узкое и с причиной прямо в коде: скип Windows-only ветвится по os.name; исключение бэкапов бьёт только по мёрзлым снимкам — доказательство в том, что _test_gmail_connector_single_home ОСТАЛСЯ красным на живой находке, а _test_no_write_to_121 позеленел лишь после починки НАСТОЯЩЕГО писателя. Движение есть и в обратную сторону: _test_memory_index_integrity из «красный по argparse» стал «красный по 3 реальным находкам», а _test_dr_rails_body_door из краха — в 8 названных строк.

Осталось красным — 41, разбивка по вердиктам

33
🔧 ДЕТАЛЬ СЛОМАНА
4
🌍 СРЕДА
4
🪟 HOST-SPECIFIC
0
🪦 МЁРТВЫЙ

🔧 ДЕТАЛЬ СЛОМАНА — 33

ТестПочему ещё красныйЧей ход
_test_alpha_post_state.pyстейт не атомарен: неудачная запись рвёт старый + сбой тихийвладелец alpha_post
_test_automations_shard.py16 launchd-роботов узла не покрыты строкой реестравладелец реестра рутин
_test_browser_usage_log.pyKeyError: by_browser — счётчик браузеров не пишетсявладелец browser_usage_log
_test_build_bible_moc.pyсекция «Прочее» не разрослась (Прочее=15)владелец Библии-MOC
_test_chip_guard.py2 расхождения: чип без маркера не блокируетсявладелец chip_guard
_test_claude_fleet_stage.py4 из 7: канал стадит лишнее (движки, скиллы, паспорта), cwd влияетвладелец канала
_test_claude_md_daily.pyзадачи оптимизатора нет в crontab этого узлапоставить рутину либо списать
_test_consensus_s10.py68/69 · PG: tick refuses auto-COMMIT on 2 unproven verifies. Красный на ВСЕХ 4 узлахвладелец consensus
_test_consensus_s10.py68/69 · PG: tick refuses auto-COMMIT on 2 unproven verifies. Красный на ВСЕХ 4 узлахвладелец consensus
_test_content_publish_contract.pyживая копилка: контрактного разрыва нет (rc=3)владелец content-factory
_test_dr_debt_root.py8 провалов: has_consumer не распознаёт «потребитель не указан/не назван». Красный вездевладелец ДР-долга
_test_dr_file_dedup.pyмёртвый локальный путь не ловитсявладелец dr_file_dedup
_test_dr_rails_body_door.pyБЫЛО: падал ValueError (распаковка тройки из двойки). СТАЛО: 8 названных строк. Движок не принял дизайн STDIN_RAILS/FILE_RAILS. ⚠️ премисса теста может быть протухшей — замер 18.08 в самом движке: grok отдал 36 876 б через -pвладелец ДР-рельсы
_test_essence_registries.py5 провалов: RAG не поднимает 10-Tasks, ak47, connect и др.владелец RAG-реестров
_test_gmail_connector_single_home.py3 находки → 1 (две были мёрзлым снимком и отчётом сканера). Осталась настоящая: рутины gmail-digest-morning нет НИ НА ОДНОМ узле и в реестре списанных её тоже нетАнтон: завести либо списать
_test_headless_llm_watchdog.py9/13: не убивает зависшие gemini/claude/codex -pвладелец сторожа
_test_machine_key_bare_env_gate.pychip_debt.py читает MACHINE_KEY голым, без лестницы. Красный вездевладелец chip_debt
_test_memory_index_integrity.pyБЫЛО: argparse rc=2, тест не проверял НИЧЕГО на всех 4 узлах. СТАЛО: судит по-настоящему — T2 сироты (216 покрыто из 357), T5 три строки >150 симв, T8 ложноположителен (hub-*.md — под-индексы без frontmatter)/memory-tidy + сузить T8
_test_notforme_own_pending.py⚠️ НЕ мой: правка Маяка в deploy_check.py в 00:51. NOTFORME стал глушить и СВОИ посылки, хотя инструмент печатает обещание «список она НЕ глушит». Класс §7.5согласовать с Маяком
_test_persona_build.pycanon/ не существовало — комплект лежал в _transit с 28.07 (22 дня). Поставил CORE.md+FLOOR.md; в наборе НЕТ node_caps.json и people.jsonхаб: прислать полный canon/
_test_pipeline_stage_owners.pypipeline_stages.json отсутствует на ВСЕХ узлахвладелец content-factory
_test_portability_gate.py5 нарушений, ⚠️ ≥2 ложные: сканер флагует РЕГЕКСП-ДЕТЕКТОР distributor.py:292 и строку внутри тестасузить сканер
_test_publish_canon_unsigned_guard.py5 из 17: unsigned-over-unsigned проходит, dry-run формулируется как блок. Красный вездевладелец publish_canon
_test_robot_watchdog.pyT7 preflight на живых креденшелахвладелец robot_watchdog
_test_rule_home_guard_door.py7 проверок: формула двери, детектор фиктивной двери, счётчик не растёт. Красный вездевладелец rule_home_guard
_test_scripts_share.py*.log и .git не анонсированы в шаре (конфликты + 33 МБ)владелец шары
_test_signal_map.pyстарая копия карты кодов не разошлась с живой. Удаление = Tier-2Антон
_test_skill_refs.pyбитые ссылки в 26 скиллах (wow → wow_priority.py и др.)владельцы скиллов
_test_stignore_guard.py2 из 8: файлы, которые обязаны ехать, не видны шаревладелец .stignore
_test_vault_backup.pySOME FAILEDвладелец бэкапа волта
_test_voice_dispatch.pySKILL.md дежурного не найден — рутина не созданавладелец voice-рельсы
_test_wa_qr_live.pycrash-guard глотает SystemExit (селфтест 0 вместо 4) — класс §5.5владелец wa_qr_live
inbox_ack.pySELFTEST: СЛОМАНвладелец inbox_ack

🌍 СРЕДА — 4

ТестПочему ещё красныйЧей ход
_test_claude_run_limit.pyclaude CLI по своей же пробе разлогинен (rc=126). ⚠️ расходится с памятью headless-claude-cli-logged-out-on-mac16 — требует перепроверкиперепроверить токен
_test_daily_community.pyнет _privacy-blocklist.txt: fail-closed срабатывает верно, но потом тест падает трейсбеком вместо скипаположить файл либо скипать
_test_reindex_frequent.pyвыход реиндекса протух на 26 007 минут ≈ 18 суток — рутина RAG-реиндекса на узле МЕРТВА. Отдельная находка, важнее самого тестаподнять реиндекс на Mac16
repair_session.pyнет profiles/repair.settings.json — ремонтник не стартует (fail-closed, это правильно)положить профиль

🪟 HOST-SPECIFIC — 4

ТестПочему ещё красныйЧей ход
_test_ab_harness.pyтребует WORKROOT ВНЕ домашнего каталога; на macOS волт лежит в /Users/anton ПО ОПРЕДЕЛЕНИЮпереписать инвариант под POSIX
_test_fb_guard_stop.pyT12: --live разрешён только на хабе A-2022BAYAREA. Тест обязан скипать не-владельца рельсы с причиной, а не падатьсделать скип по владельцу
_test_no_silent_wait.pyищет транскрипт в проекте C--Windows-System32 — путь Windows-хабасделать кросс-платформенным
wa_qr_live.pyVENDOR_DIR = $HOME/AppData/Roaming/npm/... — раскладка Windows на POSIX; вендор @***whar/whatsapp-mcp на узле не установленпуть по npm root -g либо скип