mirror of
https://github.com/Klipper4FlashForge/firmware.git
synced 2026-10-22 13:22:16 -05:00
Taking effect and persisting were one act, and they should not be. SAVE_CONFIG is a restart, so a per-tool trim that needed one could never be made during a print -- which is precisely when you know what the number should be. Staging on every tweak also left the config dirty for anyone dialling one in by feel. Now the value reaches the tool's frame immediately and stages nothing; SAVE=1 also writes it for the next SAVE_CONFIG. Nothing moves, as with SET_GCODE_OFFSET Z_ADJUST without MOVE=1: the frame shifts and the next move lands in it, which is what babystepping into a live print has to do. This is only possible because the per-tool offsets are a move transform now (previous commit). While they lived in gcode_move's single offset, "live" meant rewriting the number the operator's babystep also sat in. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>