mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-09-30 03:01:21 +02:00
First-attempt fix (d196cfc5) was wrong about the cause. Real root, traced via @mkoreen's BAMBUDDY_VP_DUMP_WIRE capture + 2026-06-21 support bundle: mqtt_server.py:1296 was passing the slicer's bare subtask_name (e.g. "Model_Name") into on_print_command, which stashed under that key. _add_to_print_queue looked up under file_path.name (the FTP filename WITH extension, "Model_Name.gcode.3mf"). The two strings never matched. pop returned None, the 2s wait fired against a key the stash side never signaled, every captured slicer field silently fell back to settings defaults. Affected EVERY Bambu Studio "Send" upload across EVERY model — not just H2C nozzle_mapping. bed_leveling / flow_cali / vibration_cali / layer_inspect / timelapse from the original #1403 capture have been silently ignored since BambuStudio started splitting subtask_name (bare) from file (with extension). Unit tests passed because fixtures called on_print_command with file_path.name directly, bypassing the broken caller. Fix in manager.py::on_print_command: derive stash_key = data.get("file") or filename and use it for both _slicer_print_options and the event lookup. filename (subtask_name) still flows unchanged to _schedule_finish_release — push_status echoes it back as gcode_file / subtask_name and the slicer matches against its own subtask_name there, so re-routing that path was a separate regression I caught and reverted mid-audit. Also: nozzles_info field was a wrong guess ind196cfc5— BambuStudio never sends it (confirmed via wire capture). Drop the capture, dispatch, schema, kwarg, and route paths. DB column stays nullable so old rows still load; nothing reads or writes it. Diagnostic: DEBUG log when _add_to_print_queue finds no slicer options after the 2s wait, including the looked-up key and the actual cache keys present. Future stash/lookup mismatches will be obvious from a log line instead of needing a wire capture. Behaviour change worth flagging: users on Bambu Studio whose slicer-side bed-leveling / flow-cali / vibration-cali / layer-inspect / timelapse differ from Bambuddy's default-workflow settings will see their slicer choices honored now instead of silently overridden. Restores #1403's original intent.