From 27dff10891c36dde09c21477907c6ab5c3adece8 Mon Sep 17 00:00:00 2001 From: Sean Ahern Date: Sun, 20 Sep 2026 00:00:31 -0400 Subject: [PATCH 1/2] Send the sweep strip as a bitmap rather than a list of positions A branch's completed-candidate set was serialized as one JSON integer per swept candidate, so the overview's cost grew with the swept fraction of the vocabulary rather than with the vocabulary. One bit per candidate makes the cost constant: 2,476 bytes per branch at 14,855 candidates, whatever the sweep has reached. Measured on the production overview, 412,016 bytes to 34,917. Both renderers decode it. The client tests bits in place instead of building a Set of every swept position on each redraw. SCHEMA_VERSION goes to 4: the key is new and the old one is gone, so a client from before this change must not read the payload as if the strip were simply empty. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PpacbZRqT46b4Duhxq5QNQ --- report_client.html | 27 +- report_model.py | 63 ++- report_terminal.py | 4 +- tests/fixtures/reports/branch.json | 249 ++++++++-- tests/fixtures/reports/cache.json | 166 +++---- tests/fixtures/reports/hotspots.json | 71 ++- tests/fixtures/reports/leaderboard.json | 137 ++++-- tests/fixtures/reports/openers-word.json | 284 ++++++------ tests/fixtures/reports/openers.json | 438 +++++++++--------- tests/fixtures/reports/overview.json | 368 +++++++++++++-- tests/fixtures/reports/queue-tree.json | 67 ++- tests/fixtures/reports/queue.json | 175 ++++++- .../reports/root_progress-inherited.json | 4 +- tests/fixtures/reports/root_progress.json | 4 +- tests/fixtures/reports/tree.json | 98 +++- tests/fixtures/reports/word.json | 178 +++++-- tests/fixtures/reports/work_distribution.json | 312 ++++++------- tests/fixtures/reports/workers-tree.json | 77 ++- tests/fixtures/reports/workers.json | 181 +++++++- tests/test_report_model.py | 55 ++- tests/test_report_terminal.py | 6 +- 21 files changed, 2173 insertions(+), 791 deletions(-) diff --git a/report_client.html b/report_client.html index 54aa5fe3..aa8b61b8 100644 --- a/report_client.html +++ b/report_client.html @@ -405,7 +405,7 @@