From 580fd11acabf5616888c26cd5090553e30c6fac3 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Mon, 4 May 2026 22:48:54 +1200 Subject: [PATCH] fix(cli): skip redundant settings uploads when unchanged Only upload settings when edited values differ from current device settings to avoid unnecessary resets. Co-authored-by: Cursor --- cli.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/cli.py b/cli.py index 225dfaa..03785a2 100755 --- a/cli.py +++ b/cli.py @@ -753,10 +753,18 @@ Examples: if not edits and args.preset is None: return - # 2. Edit: apply edits to downloaded settings - if edits: - print(f"Applying {len(edits)} edit(s)...", file=sys.stderr) - settings.update(edits) + # 2. Edit: only apply/upload settings when values actually change + changed_edits: Dict[str, Any] = {} + for key, value in edits.items(): + if settings.get(key) != value: + changed_edits[key] = value + + if edits and not changed_edits: + print("No settings changes detected; skipping settings upload.", file=sys.stderr) + + if changed_edits: + print(f"Applying {len(changed_edits)} setting change(s)...", file=sys.stderr) + settings.update(changed_edits) print_settings(settings) @@ -787,7 +795,7 @@ Examples: sys.exit(1) # 3b. Settings upload (resets device) - if edits: + if changed_edits: try: print(f"\nUploading settings to {args.port}...", file=sys.stderr) upload_settings(args.port, settings)