Files
bambuddy/backend
maziggy baa82f781a fix(backup): resolve K-profile cali_idx live instead of reusing the backup's (#2656)
Restoring K-profiles addressed extrusion_cali_set at the cali_idx recorded in
    the backup. If that slot no longer existed on the printer the write was
    silently dropped and the restore still reported the profile restored.

    Not an edge case: Bambuddy's own K-profile editor is what re-keys the slot.
    On a single-nozzle printer an edit is delete-then-add, so any edit between
    backup and restore reproduces it.

    Found testing on an X1E. Backup held cali_idx 8151; an edit through the UI
    re-keyed the profile to 4606; the restore published cali_idx 8151, the printer
    ignored it, and the tally read "1 restored" while the k-value stayed put.
    Resending the identical payload with cali_idx 4606 applied, isolating the
    stale index as the cause.

    Fix mirrors the natural-key matching spools and archives already use, which
    the module docstring already promised but scoped to spool.id and
    print_archives.id. Before writing, read the live profiles for the nozzle and
    match on filament_id + setting_id, falling back to filament_id + name, then to
    the sole candidate for that filament. Send that profile's current cali_idx;
    where nothing matches send -1 so the printer adds a new profile instead of
    addressing a dead slot, and say so in the tally. A failed read degrades to
    adding rather than aborting.

    Also corrects the tally note. The printer does acknowledge extrusion_cali_set
    -- it answers with a result/reason pair -- so "published without
    acknowledgement" was false. It reports "fail" on writes that land, though, so
    the note now says the acknowledgement is unreliable rather than absent.
    Consuming result is left to a follow-up.

    Re-verified on the same X1E: perturbed to k=0.061, restored from the commit
    carrying the stale slot, payload went out with cali_idx 4606 and the printer
    read back 0.027.
2026-08-15 14:11:02 +02:00
..