- can_has_uuid: без pipefail-ловушки grep -q (flashtool -q падал по EPIPE)
- убраны пред-проверки -q перед -r: Klipper с назначенным node id не отвечает на запрос UUID
- tee игнорирует SIGINT, trap INT — по Ctrl-C klipper всё равно запускается
- set -E: trap ERR срабатывает внутри функций; die печатает этап
- preflight различает «Moonraker недоступен» и «klippy не ready»
- host: проверка смены PID klipper-mcu и наличия /tmp/klipper_host_mcu
- wait_for по реальному времени; klippy.log проверяется только после последнего старта
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- добавлен host_linux.config (снимок ~/klipper/.config) и прошивка klipper-mcu через make flash
- цели host|mcu|toolhead, --build-only, --force
- set -euo pipefail, сборка всех целей до прошивки, klipper всегда запускается обратно
- проверка print_stats, ожидание katapult serial (glob) и возврата UUID на can0
- сверка mcu_version с klippy после старта, лог в ~/firmware
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>