Skip to content

make doctor лжёт всеми тремя своими строками, и никто этого не видел #1269

Description

@gHashTag

Найдено обзором «когда эту цель последний раз запускали». make doctor описан в make help, не входит ни в одни ворота, всегда выходит нулём — и все три его локальные строки неверны.

Улики

Оба приложения запущены, проверено ps:

 6648 .../trios-dev.app/Contents/MacOS/trios
41417 .../trios.app/Contents/MacOS/trios

make doctor при этом печатает:

release app : Jul 24 22:00:19 2026
dev app     : Jul 28 19:49:17 2026
running     : release
  1. pgrep -x trios-dev не может совпасть никогда. Оба пакета несут двоичный файл с именем trios: trios-dev.app/Contents/MacOS/trios. Живой dev с pid 6648 показан пустым слотом.
  2. pgrep -x trios совпадает с обоими, поэтому «running: release» печатается и тогда, когда работает только dev.
  3. stat берёт дату каталога пакета, а она не двигается при замене двоичного файла внутри. Доложено Jul 24, на деле trios.app/Contents/MacOS/trios от Aug 12 11:08 — расхождение в девятнадцать дней. То же у dev.

Родственные находки того же обзора

  • make stop работает по случайности. pkill -x trios попадает в оба приложения только потому, что пакеты делят имя двоичного файла; строка pkill -x trios-dev мертва. Переименуй двоичный файл dev под его пакет — и stop начнёт тихо работать наполовину, а doctor тихо чинится. Правильно это сделано в restart и delegate-probe: они ищут по пути trios-dev.app/Contents/MacOS, а не по имени.
  • make xctest не может упасть: считает число и печатает, без порога и кода возврата. Сегодня печатает «2 distinct compile errors across 1 files» — то есть долг, о котором его собственный комментарий говорит «метрика, которую никто не мерил, хуже отсутствия метрики», практически погашен, и об этом никто не знает. Цели нет ни в help, ни в check.
  • Ни одна цель Makefile не запускается в CI. .github/workflows/trios-logic.yml зовёт bun test и bash tests/swift/run_chat_sse_e2e.sh напрямую, ни одного make. Все ворота этого файла на 2297 строк — только локальные, и у вопроса «когда её последний раз запускали» вне этой машины нет ответа.

Что нужно

  • doctor: искать по пути пакета, а не по имени; брать дату двоичного файла, а не каталога; различать оба приложения.
  • stop: та же замена, иначе он держится на совпадении имён.
  • xctest: либо порог и код возврата, либо честно назвать его отчётом.
  • Решить, что из ворот должно идти в CI: сейчас там ноль.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions