comparison · c_a896b2dc05d5 (tommy-mor) vs c_32dfae0385a4 (tommy-mor)
Commit A makes a substantial behavioral and storage-layer change. It replaces the recent-votes deque with an append-only list, updates the storage schema version, removes write-time trimming in favor of query-time capping, adjusts the in-memory representation, updates persistence logic and comments, removes obsolete code, and adds a regression test covering the new behavior. This affects data structures, persistence semantics, migration/versioning, and tests. Commit B is a small cleanup that simplifies an HTML form by removing client-side check attributes, with a minimal code change and much narrower impact.
Side A introduces a substantial change to how recent votes are stored and managed, replacing a deque with an append-only list, shifting from write-time trimming to read-time capping, updating schema versioning, and adding tests to validate the new behavior. This affects storage, in-memory structures, and data loading logic. Side B is a minor UI tweak removing form attributes, with negligible impact by comparison.
Side A introduces substantial architectural changes: migrating from Deque to List in storage, altering recent vote capping semantics (write-time to read-time), updating schema version, modifying reducer logic, removing trimming logic, and adding a new test. This impacts persistence, in-memory state, and query behavior. Side B is a minor HTML form attribute cleanup with negligible functional impact.
comparison · c_32dfae0385a4 (tommy-mor) vs c_9bced108c8aa (tommy-mor)
Commit B introduces a substantial new URL canonicalization and traversal subsystem, including graph-based routing, parsing utilities, a graph builder with validation, integration into the module tree, and an extensive suite of unit and integration tests. It adds significant new functionality and infrastructure. Commit A is a small cleanup that removes client-side form validation attributes from a single HTML form, with minimal scope. The overall contribution of B is orders of magnitude larger.
Commit B introduces an entire URL canonicalization system with multiple new modules, hundreds of lines of logic, graph traversal, parsing, and extensive tests. Commit A is a tiny removal of attributes from a form. The scope and impact of B vastly outweigh A.
Side B introduces a substantial new URL canonicalization subsystem: multiple new modules (graph, graph_builder, parse, registry tests), ~1000+ lines of production and test code, a DFA-based semantic graph, generic fallback logic, and extensive unit and integration tests covering Reddit, YouTube, and generic sites. Side A is a tiny ‘nit’ change removing form attributes (a small simplification of a single HTML form). The scope, architectural impact, and test coverage of B overwhelmingly exceed A.
comparison · c_a896b2dc05d5 (tommy-mor) vs c_32dfae0385a4 (tommy-mor)
Side A performs a substantive schema/data-structure change (Deque -> List, moving vote capping from write-time to read-time), updates all call sites, bumps the schema version, and adds a test verifying the new cap behavior. Side B is a trivial one-line removal of unused form attributes with no functional impact or test coverage.
A replaces durable Deque with append-only List, moves the recent-votes cap to query time, drops write-path trim/batch bookkeeping, and adds a regression test—real storage/reducer design. B only strips check-action attrs from one HTML form (a tiny UI nit) with no lasting subsystem impact.
Side A makes a substantive storage design change by replacing the durable recent-votes deque with an append-only list, removing post-commit trimming, updating schema versioning, adapting in-memory state, and adding a regression test that verifies query-time capping. Side B only removes client-side validation attributes from a single HTML form, a small UI simplification with far less lasting architectural impact.
A fundamentally changes how recent votes are stored and read: it replaces a Deque with an append-only List, removes write-time trimming, introduces query-time capping, updates the schema version, and adds tests to verify behavior. B only removes a data-check attribute block from a form, which is a minor UI tweak with limited lasting impact.
Side A makes a substantive storage design change: replacing a write-time-capped `Deque` with an append-only `List`, removing `trim_recent_votes`, bumping the schema version, shifting the cap to query-time in `build_group_state`, and adding a test to verify the new behavior. Side B merely removes `data-check-*` attributes from a form tag, a minor HTML simplification with limited architectural impact.
comparison · c_32dfae0385a4 (tommy-mor) vs c_9bced108c8aa (tommy-mor)
Side A is a trivial one-line removal of an unused data-check-rpc attribute, essentially cosmetic cleanup. Side B introduces a substantial, well-tested URL canonicalization/breadcrumb system (graph DFA engine, builder with validation, robust parsing/normalization, and extensive unit/integration tests) that provides real, lasting functionality to the project.
Side B adds a full URL canonicalization subsystem (semantic DFA graph, builder, parser, generic fallback, and extensive tests) that delivers lasting product behavior for Reddit/YouTube/generic URLs and breadcrumbs. Side A only deletes a few unused data-check-* attributes from a form—a trivial nit with negligible lasting design or bugfix value.
Side B introduces a substantial new URL canonicalization subsystem: a semantic graph with traversal, parsing, canonical URL generation, breadcrumbs, graph validation via a builder, and extensive unit/end-to-end tests covering Reddit, YouTube, and generic URLs. Side A only removes client-side form validation attributes (`data-check-action`/`data-check-rpc`) from a single HTML form, a small behavioral tweak with far less enduring architectural impact.
Side A merely removes the `data-check-action` and `data-check-rpc` attributes from a form, likely reducing client-side validation without adding functionality. Side B introduces an entire URL canonicalization system (graph traversal, parsing, builder, and extensive tests), providing substantial new capabilities and long-term architectural value.
Side B introduces an entire semantic URL canonicalization system (new graph, parser, builder, registry tests) with ~800+ lines of substantive logic and extensive tests covering Reddit/YouTube normalization, breadcrumbs, tracking stripping, and security encoding. Side A merely removes a `data-check-*` attribute block from a form in `forum.rs`, a small UI tweak with minimal architectural impact.