comparison · c_a28a6860976d (tommy-mor) vs c_7d1184e70fad (tommy-mor)
A is a clean refactor that replaces an O(n^2) sort-key approach with equivalent linear-scan logic, mostly reorganizing existing behavior without changing outcomes. B builds directly on A's structure and fixes a real behavioral flaw (always picking the same established endpoint, creating hub bias) by randomizing attach/bridge target selection, which is a substantive correctness/fairness improvement to the algorithm's actual output.
A is a structural redesign: it drops the all-pairs sort-key machinery (PairPriority/BridgeSubPriority/WithinSubPriority and repeated ranked_pool_order work) for linear grow scans plus a single zip-adjacent RC pass once connected, which is both a real complexity/perf fix and lasting simplification. B only refines A's grow path by shuffling isolates and sampling random endpoints in the largest component—useful fairness tweaking, but incremental on top of A's design.
Side A substantially redesigns pair selection by removing the generic priority/sort-key machinery, avoiding repeated rank-centrality work until the pool is fully connected, and splitting the logic into targeted growth and adjacent-rank zip passes. Side B is an incremental improvement on top of that design, adding randomized endpoint selection from the largest established component to reduce deterministic attachment bias, but it does not change the core algorithm as significantly.
comparison · c_7d1184e70fad (tommy-mor) vs c_bc221ffb9207 (tommy-mor)
Side A is a focused, well-scoped bugfix to pair.rs that adds randomization to attach-target selection with clear rationale and contained diff. Side B is a sprawling, unfocused commit ('nice') mixing a new 572-line adam.py script, deploy tooling changes, and README/fly.toml tweaks, with no coherent single purpose and unclear lasting design value.
A makes a focused, lasting design fix in core pairing logic: shuffle isolates and attach to a random eligible member of the largest voted component (plus random bridge endpoints), instead of always locking onto the same established nodes. B is mostly volume—an opaque 572-line adam.py drop plus Open WebUI deploy/README/fly.toml ops churn under the message "nice"—so line count does not outweigh A’s clear algorithmic improvement.
Side A makes a targeted behavioral improvement to the pairing algorithm: it groups established connected components, prioritizes the largest voted component, and randomizes endpoint selection and isolate order to avoid repeatedly attaching new items to the same node while preserving growth logic. Side B is mostly deployment documentation/configuration updates plus a large new standalone Python script with unclear integration into the project, so despite its size it provides less clearly established, lasting value to the core system.