comparison · c_554c5efe648b (tommy-mor) vs c_3e6a3370542e (tommy-mor)
Side B implements a real feature: pseudonym-based actor identity with UUID-keyed vote dedup, replacing blind edge-merge accumulation with idempotent uuid_votes storage, plus schema version bumps, migration seeding, and updated tests across many call sites—substantive lasting design work fixing a Sybil/re-vote correctness gap. Side A is a pure module reshuffle (moving room_route and url_identity_tests into other files) with no behavioral change, offering negligible lasting value beyond cosmetic reorganization.
A only consolidates existing room_route helpers into paths.rs and relocates url_identity_tests with no behavior change. B redesigns vote identity: schema/event fields, uuid_votes + pseudonym map, edge rebuild/rollback for per-actor pair dedup, and projection storage—real lasting domain architecture versus pure file churn.
Side B makes a substantive architectural change to vote handling: it replaces incremental edge merges with per-actor `uuid_votes` deduplication, introduces pseudonym-to-UUID resolution and seeding, updates event/schema versions, and rebuilds rankings from stored deduplicated votes, with corresponding validation and regression tests. Side A is primarily a consolidation/refactoring that moves room-route helpers into `paths.rs`, relocates tests, and deletes a module without materially changing behavior.
comparison · c_3e6a3370542e (tommy-mor) vs c_99071b4accf5 (tommy-mor)
Side A is a coherent architectural fix: it replaces ad-hoc/vestigial vote fields with a proper pseudonym→actor-UUID identity model and uuid-keyed vote dedup, rewrites the storage schema and reducer accordingly, and adds targeted tests validating dedup/rollback semantics — a real correctness improvement to the ranking core. Side B is a useful but more diffuse grab-bag of UI/UX fixes (GitHub resolver pagination and readable bodies, vote-compare next-pair suggestion, login redirect handling) that improves surface features without touching the system's core data-integrity model.
A redesigns core vote persistence: uuid-keyed dedup with rollback/replace, rankings derived from uuid_votes on load, and a seeded pseudonyms map—replacing blind edge merges and vestigial identity fields. B delivers real product value (safer auth next redirects, richer GitHub resolver + paging/bodies, vote-compare next-pair/nav UX), but it is incremental feature/fix work rather than a lasting storage/identity model change.
Side A introduces a fundamental change to vote storage and replay by replacing incremental edge merges with UUID-keyed deduplicated votes, adding pseudonym-to-UUID resolution, rebuilding rankings from stored votes, updating schemas, and changing reducer logic to replace prior votes from the same actor. Side B contains valuable fixes and UX improvements (GitHub resolver pagination/content, vote compare navigation, safe login redirects, and browser flow fixes), but these are incremental features and bug fixes rather than a lasting redesign of core persistence and ranking behavior.