comparison · c_3ff71f7eaeda (tommy-mor) vs c_0957178bd303 (tommy-mor)
Commit A delivers a substantial functional improvement across multiple parts of the project. It adds pairwise vote counts to the garden UI, introduces a helper with unit tests, changes the pin HUD from a navigation link to an unpin action using POST /ui, updates JavaScript, styles for two themes, documentation, and browser tests. These changes affect behavior, usability, and test coverage. Commit B is a focused UI layout fix that moves the view counter into the top navigation and adjusts CSS to prevent overlap with authentication controls. It is a useful polish change but much smaller in scope and impact.
Commit A introduces a meaningful feature (pairwise vote counts in the UI), adds a new helper function, threads data through rendering, updates multiple UI components (HTML, JS, CSS), and includes tests to validate behavior. It also refines existing interactions (pin HUD behavior). Commit B is a small layout adjustment moving an existing view counter into the nav to fix overlap. The scope, complexity, and impact of A are significantly greater.
Side A introduces substantial functional enhancements: adds edge vote counting logic with tests, updates garden UI to display per-pair vote counts, refactors pin HUD behavior to POST-based unpin with JS changes, and includes extensive CSS updates across themes plus browser test coverage. Side B is a small layout adjustment moving the view counter into the top nav with minor CSS tweaks. The scope, complexity, and user-facing impact of A are significantly greater.
comparison · c_0957178bd303 (tommy-mor) vs c_11d6a0ec9839 (tommy-mor)
Commit B makes a broader functional improvement across the application. It fixes multiple issues in the voting flow: passes delegate information separately instead of embedding it in the request text, prevents an incorrect fallback when too few sibling items exist, removes an unnecessary UI control, renames the public voting route, updates navigation and routing, propagates API signature changes, and adjusts tests accordingly. These changes affect behavior, API usage, routing, and test coverage. Commit A is a focused UI/layout fix that moves the view counter into the top navigation and updates CSS to prevent overlap with authentication controls. While useful, its scope and impact are much smaller than the multi-faceted functional changes in Commit B.
Side B makes substantial functional and architectural changes across the codebase: modifies API signatures, changes request handling, removes incorrect fallback behavior, updates routing (/vote/compare → /vote), adjusts UI logic, and updates multiple tests. Side A is a small UI/layout tweak with minor CSS adjustments. The scope and impact of B are far greater.
Commit B introduces substantial functional changes across the API, routing, UI logic, and tests: adding a delegate parameter to RPC calls, correcting vote fallback behavior, removing the swap button, renaming routes from /vote/compare to /vote, and updating integration and browser tests accordingly. These changes affect core behavior and multiple modules. In contrast, Commit A is a small UI/layout fix adjusting nav placement and CSS for the view counter. Therefore, Commit B contributed significantly more.
comparison · c_3ff71f7eaeda (tommy-mor) vs c_0957178bd303 (tommy-mor)
Side A adds substantive functionality (vote-count tooltips/badges with backing helper function and unit test) and a real UX fix (HUD unpin becomes a proper POST action with browser test coverage), touching multiple files with tests validating behavior. Side B is a small, useful but narrow CSS/layout fix moving a view counter into the nav to avoid overlap, with no tests and much less scope.
A adds lasting product behavior: pairwise vote counts on garden rows (with a real helper + unit test), turns the pin HUD into a proper unpin POST instead of a misleading permalink (plus browser coverage), and supporting CSS/docs. B only relocates the view counter into the top nav and drops fixed positioning to stop overlap—a correct but tiny layout fix.
Side A implements substantive UI and behavior improvements: it adds pairwise vote counts to garden voting controls backed by a new helper and test, changes the pin HUD from a permalink into a functional unpin action via `POST /ui set_garden_pin clear:true`, updates styling, documentation, and browser tests to support the new behavior. Side B is a small layout fix that simply moves the view counter into the existing top navigation and adjusts CSS to prevent overlap with authentication links.
A introduces new functionality and correctness checks: it computes and displays per-pair vote counts (`edge_vote_count_for_pair`), updates the UI to show counts and proper unpin behavior via POST, and adds tests verifying vote counting and HUD behavior. B only repositions an existing view counter into the nav and removes fixed positioning, a minor UI tweak without deeper impact.
Side A adds substantive functionality: a new `edge_vote_count_for_pair` helper with tests, surfaces pairwise vote counts in the garden UI, converts the HUD pin link into a proper POST `set_garden_pin clear` action with supporting JS/CSS changes, and extends browser tests to verify unpin behavior. Side B only repositions the view counter into the top nav and removes fixed positioning in CSS to avoid overlap, a small layout tweak without deeper logic or tests.
comparison · c_0957178bd303 (tommy-mor) vs c_11d6a0ec9839 (tommy-mor)
Side B makes several substantive fixes: correcting attribution by passing delegate_opt out-of-band, fixing a real bug where sibling pool fallback silently expanded to all items instead of erroring, removing dead UI, and consistently renaming a route across code and tests. Side A is a small, purely cosmetic CSS/layout fix moving a view counter into the nav, useful but minor in scope and impact.
B fixes real behavior and design: agent attribution moved out-of-band via delegate_opt, sibling-pool fallback that could return wrong pairs is replaced with an error path, dead swap-sides UI is removed, and the route is cleaned up with matching tests. A only relocates the view counter into the nav and tweaks CSS positioning—useful but narrow layout polish.
Side B makes several functional improvements to the voting flow: it fixes delegate attribution by passing the browser agent separately instead of embedding it in the DSL text, prevents incorrect fallback to voting across all items when the sibling pool is too small by returning no next pair, simplifies the UI by removing the unnecessary swap button, and consistently renames the route to `/vote` across handlers and tests. Side A is a targeted UI layout fix that moves the view counter into the top navigation and removes fixed positioning to stop overlap with login controls, but its impact is narrower and primarily presentational.
Side B fixes real behavior: it stops an incorrect fallback to all items when the sibling pool is too small (now returns None), correctly threads delegate_opt through RPC instead of embedding it in text, and simplifies/clarifies routing by renaming /vote/compare to /vote with corresponding test updates. Side A is a minor UI/layout tweak (moving the view counter into the nav and removing fixed positioning) with limited lasting impact.
Side B fixes substantive behavior in the /vote flow: it passes WEB_BROWSER_AGENT as an out-of-band delegate instead of injecting it into the DSL text, removes an incorrect fallback when the sibling pool < 2 (returning None instead of voting over all items), drops the pointless "swap sides" button, and consistently renames and rewires the route from /vote/compare to /vote across handlers, links, and tests. Side A is a small UI/CSS tweak moving the view counter into the nav to avoid overlap, which is minor compared to B’s functional and routing corrections.
comparison · c_e4fb43f04791 (tommy-mor) vs c_0957178bd303 (tommy-mor)
Side B fixes a real, user-visible layout bug (view counter overlapping login controls) with a small, targeted change to markup and CSS. Side A is mostly CSS styling tweaks for rank numbering plus a dedent/removal of a CSS class wrapper (minor cleanup with no functional bugfix), making both modest but B's fix is a clearer, more concrete improvement.
B fixes a real layout bug by moving the view counter into the top-nav flow and dropping fixed positioning so it no longer overlaps auth links—a small, necessary structural fix. A mostly unwraps a vote-compare shell (markup churn) and restyles ontology rank counters across themes, which is polish rather than a functional fix.
Side B fixes a concrete UI/layout bug by moving the view-count element into the existing top navigation and changing its CSS from `position: fixed` to normal flow with `margin-right: auto`, preventing overlap with the login/account controls in a maintainable way. Side A mostly removes a wrapper `section` around the vote-compare markup and updates ranking-list styling across themes; while the CSS improvements are useful, the HTML restructuring is largely cosmetic and the overall change is less directly tied to a lasting functional fix.
comparison · c_6864b1ca8ce6 (tommy-mor) vs c_0957178bd303 (tommy-mor)
Side B fixes a real layout bug (view counter overlapping login controls) by moving markup into the nav and removing fixed positioning, a small but correct and necessary functional fix. Side A is purely cosmetic CSS polish across two themes (padding, borders, focus outlines) that adds visual detail but no functional correctness or bug resolution, making it lower-value churn by comparison.
B fixes a real layout bug by moving the view counter into the shared top-nav markup and dropping fixed positioning that overlapped auth links—a small structural HTML/CSS change with clear lasting UX value. A is a large purely presentational CSS pass (padding, borders, focus rings, vote-compare chrome across two themes) that improves polish but adds no behavior or bugfix.
Side B fixes a concrete UI/layout problem by moving the view counter into the existing top navigation and removing its fixed positioning, preventing it from overlapping the login/account controls. Side A is a broad visual restyling of voting and ontology UI with some accessibility improvements (focus-visible outlines), but it is primarily presentation rather than a functional correction.