comparison · c_af08bd851e49 (tommy-mor) vs c_995cbd9de96d (tommy-mor)
Commit A introduces substantial new functionality and infrastructure. It adds a new vote comparison page, pair-selection algorithms, dynamic UI morphing after votes, item ID normalization improvements, integration and unit tests, CSS/JS updates, and refactors related request handling. These changes materially expand the project's capabilities and improve correctness. Commit B is a formatting/refactoring pass that reorganizes imports, wraps lines, and adjusts code layout without changing behavior. While useful for readability and consistency, it contributes far less to the project's functionality.
Side A introduces a substantial new feature set: a full vote-compare UI flow, pair selection algorithm, dynamic DOM morphing, new modules (vote.rs, pair.rs), API changes, normalization improvements, CSS/JS updates, and integration tests. Side B is purely formatting and minor code reorganization with no functional changes. The impact difference is large.
Side A introduces a substantial new feature: a full pairwise vote compare UI (/vote), new HTML rendering module, pair selection algorithm with prioritization and tests, integration tests, storage normalization improvements, JS/CSS updates, and backend changes to support morphing edge history. It spans many new files and meaningful logic (~1000+ lines). Side B is purely formatting and import reordering with no behavioral changes. Therefore, Side A contributes overwhelmingly more.
comparison · c_995cbd9de96d (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
Commit B delivers substantial new functionality across the application. It introduces persistent theme selection via cookies and a new POST /theme endpoint, updates the shared layout to support server-rendered themes, preserves theme state through authentication, propagates theme handling across many HTML routes, improves private-room URL generation for API/RPC responses, updates CLI/web hints, and adds helper functions and tests. These are user-visible behavioral improvements affecting multiple subsystems. Commit A is a formatting-only change that reorganizes imports, wraps long lines, and reformats code without changing behavior. While useful for readability and consistency, it contributes far less functionality than the broad feature work in commit B.
Commit A is purely formatting and reordering with no behavioral changes. Commit B introduces a full theming system (cookies, layout integration, new endpoint), propagates theme handling across many routes, adds room-aware URL helpers, updates RPC responses, and includes new tests. It significantly expands functionality and touches many subsystems.
Commit B introduces a substantial theming system refactor and extension: adds theme cookie handling, normalization, POST /theme endpoint, layout changes, propagation of theme through many HTML handlers, updates to auth flows to preserve theme, new helper functions for room-aware URL generation, and extensive RPC adjustments plus tests. It spans multiple modules and meaningfully changes behavior. Commit A is purely formatting/reordering without functional changes. Therefore B contributes far more.
comparison · c_af08bd851e49 (tommy-mor) vs c_995cbd9de96d (tommy-mor)
Side A implements a real feature: a working vote-compare morph flow, a new pair-selection module with bridge-priority algorithm and tests, storage-id normalization (from_storage), and integration tests plus test infra refactor (mock-reddit extraction). Side B is purely cosmetic rustfmt-style reformatting (import ordering, wrapping, if/else collapsing) with zero behavioral change, providing negligible lasting value beyond style consistency.
Side A ships real product value: new pair-selection logic (bridge-preferring suggest_next_pair_in_pool), a full /vote compare UI with in-place morph after record_vote, ItemId::from_storage normalization, and integration/e2e coverage. Side B only reformats garden.rs (import order, line breaks, wrapping) with no behavioral change.
Side A introduces substantial new functionality: a complete pairwise voting page, pair-selection logic that prioritizes bridge comparisons across connected components, in-place UI morphing after votes, ID normalization via `ItemId::from_storage`, and accompanying unit/integration tests. Side B is purely formatting and import reordering with no behavioral changes, so it adds essentially no lasting project functionality.
Side A introduces substantial new functionality (pair selection algorithm in `pair.rs`, full vote-compare UI, morphing updates, and `ItemId::from_storage` normalization fixing parsing inconsistencies) plus tests, whereas Side B is purely formatting and reordering with no behavioral changes.
Side A introduces substantial new functionality: a full pairwise vote compare UI (`html/vote.rs`), a bridge-aware pair selection engine (`pair.rs`), storage normalization via `ItemId::from_storage`, JS morph helpers, and integration tests validating vote morph behavior. Side B is purely formatting and import reordering in `garden.rs` with no behavioral changes, so it adds no lasting functional value.
comparison · c_995cbd9de96d (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
Side B implements substantive functionality: server-side theme persistence via cookies (replacing pure client-side localStorage), room-aware URL rewriting for RPC/API responses (item_path_for_api_in_room, forum_thread_web_url), a new /theme POST route, and updated CSS/tests to match. Side A is purely a rustfmt/formatting pass with no behavioral change, which has minimal lasting value beyond style consistency.
Commit A is pure formatting churn in garden.rs (import reordering, line breaks, brace style) with no behavior change. Commit B lands a durable theme design (cookie + POST /theme, server-rendered CSS, login cookie re-issue, localStorage migration) plus lasting API/url fixes (item_path_for_api_in_room, forum_thread_web_url, room-aware RPC/CLI hints and tests).
Side A is a pure formatting pass: it only reorders imports, wraps lines, and reformats expressions without changing behavior. Side B adds substantial functionality by introducing persistent theme selection via cookies and a /theme endpoint, propagating theme state across pages and authentication, and fixing room-aware URL generation for RPC/API responses with new helper functions and tests for private-room paths.
Side A only reformats code (import ordering, line wrapping, minor expression compaction) without changing behavior, while Side B introduces a full theme system (cookie handling, layout changes, new /theme endpoint), adds room-aware URL helpers, and updates many API/RPC responses to use them—clear functional and architectural improvements.
Side A is purely a formatting commit (import reordering, line wrapping, no behavioral changes). Side B introduces substantive functionality: a full theme system with cookie handling (`post_theme`, `theme_from_jar`, layout changes), propagates theme through auth/editor/forum/garden/search pages, and adds room-aware URL helpers (`item_path_for_api_in_room`, `forum_thread_web_url`) with extensive RPC integration and tests—clearly adding lasting user-facing and API value.
comparison · c_f6d0fed9bf9a (tommy-mor) vs c_995cbd9de96d (tommy-mor)
Side A introduces substantial new functionality (rank-centrality ranking engine, event reducer, form templating, UI action dispatch, parser graph, vote comparison logic) that provides lasting architectural value, even though the diff is messy (shell-pasted files with prompt artifacts). Side B is purely a rustfmt-style reformatting commit with zero behavioral change, offering only cosmetic value and no new functionality or bugfixes.
Side A seeds substantial project foundations (graph-based reddit URL parser with extensive tests, rank-centrality ranking with connected components and issue #146 fix, event reducer/state, HTML UI actions + form templates, vote compare page, and client SSE plumbing), while Side B is pure non-functional formatting/reflow of imports and signatures in one existing file with zero behavior or design change.
Side A introduces substantial new functionality across the project: new ranking and reducer logic with tests, a parser graph and extensive parser test suite, browser UI plumbing, vote handling, form-template processing, and supporting scripts. Side B is a pure formatting pass that only reflows imports, line breaks, and expressions in an existing file without changing behavior.
comparison · c_e4fb43f04791 (tommy-mor) vs c_995cbd9de96d (tommy-mor)
Side A makes an actual functional/UI change (removing an unused wrapper section and fixing rank-number styling across three theme CSS files), representing real, lasting improvements to markup and visuals. Side B is purely rustfmt/import-reorder churn with no behavioral change, offering minimal lasting value beyond style consistency.
Commit A removes an unnecessary vote-compare-shell wrapper from the HTML markup and adds concrete, lasting CSS improvements for ontology ranking-list counters (larger tabular numbers, flex layout, and full support in retro/craft themes). Commit B is pure mechanical reformatting of imports, signatures, and whitespace with zero behavioral or design effect.
Side A makes user-visible changes: it removes the outer `section.vote-compare-shell` wrapper from the vote comparison page and updates ontology ranking list CSS across the default, retro, and retro_craft themes by adding explicit counter styling, typography, and layout (`::before`, `counter-reset`, `counter-increment`, `font-variant-numeric`, etc.). Side B is purely formatting and import reordering with no behavioral or design change, so it contributes little lasting project value.