Найдено обзором «когда эту цель последний раз запускали». 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
pgrep -x trios-dev не может совпасть никогда. Оба пакета несут двоичный файл с именем trios: trios-dev.app/Contents/MacOS/trios. Живой dev с pid 6648 показан пустым слотом.
pgrep -x trios совпадает с обоими, поэтому «running: release» печатается и тогда, когда работает только dev.
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: сейчас там ноль.
Найдено обзором «когда эту цель последний раз запускали».
make doctorописан вmake help, не входит ни в одни ворота, всегда выходит нулём — и все три его локальные строки неверны.Улики
Оба приложения запущены, проверено
ps:make doctorпри этом печатает:pgrep -x trios-devне может совпасть никогда. Оба пакета несут двоичный файл с именемtrios:trios-dev.app/Contents/MacOS/trios. Живой dev с pid 6648 показан пустым слотом.pgrep -x triosсовпадает с обоими, поэтому «running: release» печатается и тогда, когда работает только dev.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..github/workflows/trios-logic.ymlзовётbun testиbash tests/swift/run_chat_sse_e2e.shнапрямую, ни одногоmake. Все ворота этого файла на 2297 строк — только локальные, и у вопроса «когда её последний раз запускали» вне этой машины нет ответа.Что нужно
doctor: искать по пути пакета, а не по имени; брать дату двоичного файла, а не каталога; различать оба приложения.stop: та же замена, иначе он держится на совпадении имён.xctest: либо порог и код возврата, либо честно назвать его отчётом.