From 592ec4470590c4d95827b98e48cae841e6cb5ccd Mon Sep 17 00:00:00 2001 From: maziggy Date: Sat, 2 May 2026 07:47:10 +0200 Subject: [PATCH] chore(mqtt): log slicer-launched project_file payload for FTS routing diagnostics (#1162) --- backend/app/services/bambu_mqtt.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/backend/app/services/bambu_mqtt.py b/backend/app/services/bambu_mqtt.py index 96d77dfd3..56c0bed49 100644 --- a/backend/app/services/bambu_mqtt.py +++ b/backend/app/services/bambu_mqtt.py @@ -728,13 +728,26 @@ class BambuMQTTClient: if not isinstance(print_data, dict): return command = print_data.get("command", "") - if command == "project_file" and "ams_mapping" in print_data: - self._captured_ams_mapping = print_data["ams_mapping"] - logger.info( - "[%s] Captured ams_mapping from print command: %s", - self.serial_number, - self._captured_ams_mapping, - ) + if command == "project_file": + if "ams_mapping" in print_data: + self._captured_ams_mapping = print_data["ams_mapping"] + logger.info( + "[%s] Captured ams_mapping from print command: %s", + self.serial_number, + self._captured_ams_mapping, + ) + # Diagnostic for #1162 follow-up (X2D + FTS routing): when a + # slicer-launched project_file passes through the request topic, + # log the full payload so we can diff Studio's field set against + # ours. We pin our own sequence_id to "20000" (line ~3195), so + # any other value means the command came from Studio/Orca, not + # from us. + if print_data.get("sequence_id") != "20000": + logger.info( + "[%s] External project_file payload: %s", + self.serial_number, + json.dumps(print_data), + ) def _process_message(self, payload: dict): """Process incoming MQTT message from printer."""