comparison · c_c6f5afec1d36 (tommy-mor) vs c_92734e554a25 (tommy-mor)
Side A implements a coherent, working feature (pool-scoped voting) with consistent threading through query params, route handling, and JS morph logic, plus updated tests. Side B's commit removes two legitimate test cases and reverts a CI workflow fix without justification, providing no lasting value and arguably regressing test coverage.
A adds a real product feature (pool-scoped /vote, pair picking from children, UI entry point, and pool threaded through post-success nav), with coherent API and routing changes. B only bumps Node in CI and deletes two obsolete ingest tests—useful hygiene, but far less lasting substance.
Side A implements a substantive new capability: pool-scoped voting, including `pool` query handling, pair selection from child items, navigation that preserves pool context after voting, UI links to start child voting, and the necessary request/response plumbing. Side B is a small maintenance change that updates the GitHub Actions Node version and removes obsolete tests, which is useful but far less impactful to the project's functionality and design.
comparison · c_92734e554a25 (tommy-mor) vs c_48aeaf9b52c3 (tommy-mor)
Side B fixes a real algorithmic bug (bipartite Markov chain causing incorrect ranking convergence) with a mathematically justified change grounded in cited literature, plus regression tests in both Rust and Clojure across multiple topologies. Side A merely deletes two existing tests and tweaks CI node version/npm install, providing no new functionality or bugfix and reducing test coverage.
B fixes a real correctness bug in core ranking (star topologies yielding uniform/oscillating scores) by switching to degree-based d_max per the Negahban–Oh–Shah definition, with Rust and Clojure regression coverage. A only bumps Node 22→24, drops a one-line npm upgrade step, and deletes two obsolete unit tests—useful chore work but far less lasting substance.
Side B fixes a substantive algorithmic bug in Rank Centrality by changing the normalization from summed edge weights to degree-based d_max, preventing oscillating bipartite Markov chains and restoring correct rankings for star topologies. It also adds focused Rust and end-to-end regression tests with fixtures covering star, inverse star, chain, and cycle cases. Side A mainly updates the CI Node version, removes an npm upgrade step, and deletes obsolete tests, providing comparatively limited lasting value.
comparison · c_4a5c84c0a37b (tommy-mor) vs c_92734e554a25 (tommy-mor)
Side A fixes a real user-facing bug (hrefs leaking full storage URLs instead of display paths) and substantially strengthens test coverage with a complete, deterministic 45-pair ranking assertion. Side B is a vague 'fix' commit that reverts a CI workflow tweak and deletes two passing tests without replacement or justification, providing no clear lasting value.
A fixes real product behavior (vote hrefs encode display_path forms users actually see) and replaces a thin 15-iteration smoke loop with a full C(10,2)=45-pair exercise plus GetGardenRank assertions. B only bumps Node 22→24, drops an npm upgrade step, and deletes two obsolete unit tests—useful cleanup but far less lasting design/test value.
Side A fixes user-facing URL generation by using each item's display_path in vote links instead of internal storage URLs, aligning hrefs with the displayed DSL, and it substantially strengthens the browser test by exercising all 45 pairwise votes and verifying the final ranked order through the GardenRank API. Side B mainly updates the release workflow to Node 24 and removes obsolete tests, which is comparatively maintenance work without adding equivalent functional behavior or verification.
comparison · c_d6d339485601 (tommy-mor) vs c_92734e554a25 (tommy-mor)
Side A adds a concrete, tested user-facing feature (connectivity stats display in CLI output) with well-defined formatting logic and unit tests covering edge cases. Side B is a mixed 'fix' that includes a legitimate CI improvement (Node version bump, removing redundant npm upgrade step) but also deletes two existing unit tests without replacing them or explaining why, which reduces test coverage and provides less lasting value.
A adds a real CLI feature (format_connectivity_stats + pair-response display and tests) so users see graph density/components before voting. B only bumps Node in release.yml and deletes two obsolete ingest-validation tests—useful hygiene, but little lasting product value.
Side A adds a new user-facing capability by formatting and displaying existing graph connectivity statistics in the CLI, including density, connected-component status, and connection suggestions, and backs it with targeted unit tests. Side B mainly updates the release workflow to Node 24 and removes obsolete tests after behavior changes, which is useful maintenance but provides less enduring functional value than the new CLI visibility.
comparison · c_7ec67b9cef2c (tommy-mor) vs c_92734e554a25 (tommy-mor)
Side A is a large planning document plus a thin, mostly unused wrapper struct (RouteContext) that isn't wired into call sites yet, offering speculative value. Side B makes a small but concrete fix (correcting CI node-version/npm workflow logic and removing duplicate/dead tests), which is a real, immediately useful change even though minor in scope.
A adds a concrete RouteContext abstraction plus a detailed, actionable migration plan for ItemId/routing—foundational design that steers lasting architecture. B only bumps Node in release CI and deletes two obsolete validation tests, which is useful hygiene but far smaller in project impact.
Side A introduces a new `RouteContext` abstraction in `server/src/html/routing.rs`, re-exports it, and documents a concrete migration plan toward structured `ItemId` and centralized route generation, creating a reusable architectural direction even though most call sites are not yet migrated. Side B mainly updates the GitHub Actions Node version, removes an npm upgrade step, and deletes a couple of obsolete tests, which is comparatively routine maintenance with less lasting impact on the codebase design.
comparison · c_f6d0fed9bf9a (tommy-mor) vs c_92734e554a25 (tommy-mor)
Side A, despite some copy-paste artifacts (stray shell prompts in two files), introduces substantial working functionality: a rank-centrality algorithm with a documented correctness fix (issue #146), a reducer/state-machine for votes and content, a form-template substitution system with tests, and a vote-compare UI feature — real, lasting design work. Side B is a small maintenance fix (bump Node version, drop an npm upgrade step, remove two now-invalid unit tests) that is correct but trivial in scope and impact by comparison.
Commit A seeds substantial core systems (rank-centrality with regression tests, event reducer/state, form-template/$form plumbing, HTML UI actions, vote-compare UI, and a large composable parser with tests), which define lasting product behavior. Commit B only bumps the Node release workflow and deletes two stale validation tests—useful hygiene, but minor versus A’s architectural payload.
Side A introduces substantial new project functionality, including a reducer and ranking engine with tests, a parser framework, browser UI plumbing, vote handling, form-template processing, and supporting scripts. Although it contains some low-quality artifacts (such as pasted terminal prompts and planning notes), it establishes major reusable infrastructure, whereas Side B only makes a small maintenance change by updating the GitHub Actions Node version and removing a few obsolete tests.
comparison · c_b8e80699547c (tommy-mor) vs c_92734e554a25 (tommy-mor)
Side A adds a substantial, self-contained Reddit API client module with rate limiting, typed response models, custom deserializers, and helper methods—real functional code with lasting utility. Side B is a small CI tweak plus deletion of two passing test cases (with no clear justification), which reduces test coverage rather than adding value.
A adds a full Reddit API client module with rate limiting, typed serde models, error handling, and extraction helpers—substantial lasting feature code. B only bumps Node in CI, drops an npm upgrade step, and deletes two obsolete unit tests, which is minor cleanup.
Side A adds an entirely new Reddit API client with built-in rate limiting, HTTP request handling, response/error processing, strongly typed serde models, custom deserializers, and helper methods for working with posts and comments, representing significant new project functionality. Side B only updates the GitHub Actions Node.js version, removes an npm upgrade step, and deletes a couple of obsolete tests, which are comparatively small maintenance changes.