From 561c610b92c2f067c0b7d1568175f75fa030b393 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 29 May 2026 11:46:54 +0200 Subject: [PATCH] collect: fix last_broadcast tracking and diff condition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Always compute the payload (diff or full snapshot) regardless of last_broadcast state, and store the broadcast payload — not the raw snapshot — as last_broadcast so subsequent diffs are based on what was actually sent. Co-Authored-By: Claude Sonnet 4.6 --- server/collect.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/collect.py b/server/collect.py index 20f9246..a03cbbf 100644 --- a/server/collect.py +++ b/server/collect.py @@ -89,12 +89,12 @@ def run(args: argparse.Namespace) -> None: apply_procedural(snapshot) store["records"].append(snapshot) save_store(out, store, args.max_records) - if args.diff and last_broadcast: + if args.diff: payload = jay_diff_full(last_broadcast, snapshot, combine_upd_add=True) else: payload = snapshot + last_broadcast = payload network.broadcast(payload, push_clients, push_lock) - last_broadcast = snapshot log.info("Record #%d saved at %s", len(store["records"]), snapshot["ts"]) except KeyboardInterrupt: raise