mirror of
https://github.com/Klipper4FlashForge/firmware.git
synced 2026-10-22 05:12:16 -05:00
The shell lane has bash -n; the Python lane had nothing between "it imports" and "it ran on hardware". py_compile catches a typo in syntax and nothing caught a typo in a name, so a rename that renamed an assignment and missed one of its uses stayed green through both lanes and waited for the line to execute. That is exactly how _plate_check came to reach for z_trigger (fixed in the previous commit), on the path that gates both calibration commands. pyflakes over bin/, payload/ and test/, filtered to the findings that can actually fail at runtime -- undefined names, use before assignment, syntax. Unused imports and the like are untidy but harmless, and a gate that goes red for those is a gate somebody switches off. Checked with find_spec rather than shutil.which, the shape the shellcheck gate uses: the debian package ships the module without putting a pyflakes executable on PATH, so which() reports it missing on the very image that has it. Caught by running the gate in the image. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>