constitution · epochs · watch · epoch 3

commit

c_3f420a1f5aa12c1c2d

tommy-mor · sha1:2fe70b0e13020691a8fc26644a2b0f44c6b70049

download patch · raw event

message

themes

comparisons involving this commit

comparison · c_995cbd9de96d (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
openai/gpt-chat-latest · winner B · 25:1 · permalink

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.

openai/gpt-5.3-chat · winner B · 1:25 · permalink

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.

openai/gpt-5.2-chat · winner B · 9:1 · permalink

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_3f420a1f5aa1 (tommy-mor) vs c_3ff71f7eaeda (tommy-mor)
openai/gpt-chat-latest · winner A · 9:1 · permalink

Commit A introduces substantial new functionality across the project. It adds server-backed theme selection with cookie persistence, updates many HTML handlers to propagate theme state, preserves theme cookies through authentication flows, adds a new POST /theme endpoint, replaces client-only theme switching with a server-integrated implementation, introduces room-aware URL generation helpers with tests, and updates many RPC responses and page renderers to produce correct room-specific links. The changes span authentication, routing, HTML rendering, RPC behavior, utilities, CSS, and documentation comments. Commit B is a focused refinement. It improves the garden UI by showing pairwise vote counts, changes the pinned-item HUD from a permalink into an unpin action, adds supporting CSS, a helper function with a unit test, updates browser tests, and makes a small documentation correction. These are useful UX and correctness improvements, but they are much narrower in scope and impact than the broad architectural and feature work in Commit A.

openai/gpt-5.3-chat · winner A · 5:1 · permalink

Side A introduces a substantial cross-cutting feature set: a full theme system with cookie persistence, request/response propagation, layout changes, new endpoints, and consistent integration across many HTML views and auth flows. It also adds room-aware URL handling throughout the RPC layer, affecting core API behavior. Side B is more incremental—UI/UX improvements (vote counts, HUD unpin behavior), small helper logic, and tests. While useful, it’s localized compared to A’s broad architectural impact.

openai/gpt-5.2-chat · winner A · 5:1 · permalink

Side A introduces a comprehensive theme system (cookie handling, POST /theme, layout refactor, JS/CSS changes), propagates theme context across nearly all HTML handlers, and adds room-aware URL handling throughout the RPC/API layer with new helpers and tests. It touches many core files and changes routing, rendering, and JSON outputs. Side B focuses on garden pin UX improvements (vote counts, HUD unpin via POST), related JS/CSS tweaks, and a targeted test—meaningful but much narrower in scope and architectural impact. Overall, Side A is substantially larger and more foundational.

comparison · c_995cbd9de96d (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 85:15 · permalink

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.

~x-ai/grok-latest · winner B · 1:25 · permalink

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).

openai/gpt-chat-latest · winner B · 10:1 · permalink

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.

openai/gpt-5.3-chat · winner B · 1:10 · permalink

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.

openai/gpt-5.2-chat · winner B · 9:1 · permalink

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_3f420a1f5aa1 (tommy-mor) vs c_3ff71f7eaeda (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 6:4 · permalink

Commit A implements a substantial, coherent feature (server-rendered theme selection replacing client-only JS theme switching, with cookie persistence, proper redirect/session cookie propagation, and room-aware wire URL helpers with dedicated unit tests) touching many call sites correctly. Commit B is a smaller UX polish (vote counts on garden rows, HUD unpin-via-form instead of link) plus one doc tweak and a browser test update, which is useful but narrower in scope and lasting impact than A's structural change to theming and API URL handling.

~x-ai/grok-latest · winner A · 3:1 · permalink

A lands lasting infrastructure: cookie/server-rendered themes (with login cookie re-issue and POST /theme) plus correct private-room wire URLs via item_path_for_api_in_room/forum_thread_web_url threaded through RPC and accompanied by tests. B is real but narrower UX polish—vote counts on garden compare icons and turning the pin HUD into an unpin POST—valuable with tests, yet not as foundational as A’s product-wide path and theme design.

openai/gpt-chat-latest · winner A · 5:1 · permalink

Side A introduces substantial, project-wide functionality: persistent theme selection via validated cookies and a new `/theme` endpoint, propagates theme state through authentication so login no longer drops the theme, and correctly generates room-scoped URLs across RPC responses with dedicated helpers and tests. Side B is a focused UI refinement that adds vote counts to garden compare links, changes the pin HUD into an unpin action, and updates CSS/tests, but its impact is localized compared with A's cross-cutting infrastructure and correctness improvements.

openai/gpt-5.3-chat · winner A · 4:1 · permalink

Side A introduces substantial cross-cutting functionality: a full theme system (cookie handling, POST /theme, layout changes) and correct room-aware URL generation by replacing item_path_for_api with item_path_for_api_in_room throughout RPC and helpers. Side B is a focused UI improvement (vote counts, HUD unpin behavior) with a small helper and test, but far less impactful to core behavior.

openai/gpt-5.2-chat · winner A · 3:1 · permalink

Side A introduces a full server-backed theme system (new /theme route, cookie normalization, layout changes, and propagation through all HTML handlers) and adds room-aware URL handling across RPC via `item_path_for_api_in_room` and `forum_thread_web_url`, affecting many endpoints and responses. Side B mainly enhances the garden UI with vote counts and a HUD unpin form plus related CSS/tests, which is valuable UX polish but narrower in scope and architectural impact than A’s cross-cutting design changes.

comparison · c_ebc883667d61 (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 75:25 · permalink

Side B implements a real, working feature: server-rendered theme switching via cookies (with localStorage migration, /theme route, layout signature changes across many pages) plus a legitimate multi-room URL-prefixing bugfix for ontology/forum links in private rooms, backed by unit tests. Side A is purely a file-split/dedup cleanup removing a duplicate forum.rs (structural refactor with no behavioral change), which is useful hygiene but far less substantive than B's functional additions and bugfixes.

~x-ai/grok-latest · winner B · 2:5 · permalink

Side B lands real product and API substance: cookie-backed themes with POST /theme, auth flows that re-issue the theme cookie, layout/CSS integration, plus item_path_for_api_in_room/forum_thread_web_url wired through rpc with tests so private-room JSON links are correct. Side A mainly deletes the leftover monolithic forum.rs and finishes the forum/ module split (mod, feed, views, etc.), which is lasting structure but largely reorganization without new behavior.

openai/gpt-chat-latest · winner B · 4:1 · permalink

Side B adds enduring functionality: a persistent theme system (theme cookie handling, `/theme` endpoint, layout updates, propagation through auth and page rendering) and correct room-aware web/API URLs via `item_path_for_api_in_room` and `forum_thread_web_url`, with accompanying tests and widespread RPC fixes. Side A mainly removes the obsolete monolithic `server/src/html/forum.rs` and establishes `forum/mod.rs` as the sole module root, a valuable cleanup that resolves module ambiguity but largely reorganizes existing code rather than adding new behavior.

comparison · c_97611919bf0b (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

Side B ships concrete, testable value: it fixes a real bug where private-room item/thread URLs in RPC responses were always emitted as public-scope paths (ambiguous/broken for room-scoped API consumers), adds new unit tests for that fix, and implements a proper server-rendered theme-cookie mechanism (replacing pure client-side localStorage switching) wired through all page handlers. Side A is a large but largely mechanical rename/refactor of `CanonicalItemUrl` into an `ItemId` enum whose variants all just wrap `String`s (little added type safety), is behaviorally equivalent to before, and its main artifact of substance—deleting a planning doc—doesn't itself add project value; per the stated preference for real bugfixes over renames/churn, B edges out.

~x-ai/grok-latest · winner A · 3:1 · permalink

A replaces the stringly CanonicalItemUrl newtype with a structural ItemId enum (plus item_wire split), then propagates it through reducer maps, ranking, VoteData, RPC, and HTML—removing CanonicalItemUrl and encoding identity vs presentation in the domain model. B improves theme persistence (cookie + POST /theme + server-side layout) and adds room-aware RPC path helpers, which is useful polish and a real private-room URL fix, but is mostly presentation/wiring rather than lasting core design.

openai/gpt-chat-latest · winner A · 9:2 · permalink

Side A performs a foundational identity refactor by introducing a structural `ItemId` type, extracting normalization into `item_wire`, and propagating the new type through the reducer, ranking, routing, RPC, HTML, and tests. Side B adds useful theme persistence and room-aware URL generation, but its changes are primarily UI and presentation plumbing, whereas Side A changes the project's core data model and eliminates widespread dependence on `CanonicalItemUrl` strings.

comparison · c_66eb04076a98 (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 65:35 · permalink

Commit B is a substantial, functionally significant change: it moves theme selection from client-only JS/localStorage to a server-rendered, cookie-based, SSR-consistent mechanism (new /theme route, cookie helpers, layout signature changes across every page handler) and also adds room-aware URL rewriting for API/RPC responses (item_path_for_api_in_room, forum_thread_web_url) with accompanying tests, fixing real correctness gaps for private rooms. Commit A is a smaller, well-tested fix improving color gradient semantics for rank rows, which is valuable but narrower in scope and impact than B's cross-cutting architectural and correctness improvements.

~x-ai/grok-latest · winner B · 2:5 · permalink

B delivers a durable theme architecture (cookie + POST /theme, SSR stylesheet selection, login cookie re-issue) and substantial private-room API correctness via item_path_for_api_in_room/forum_thread_web_url wired through RPC and pages with tests. A is a focused, well-tested rank-color fix (score min–max vs list ordinal) but is scoped polish; B’s product and API surface changes outweigh that despite more mechanical plumbing.

openai/gpt-chat-latest · winner B · 4:1 · permalink

Side B implements a substantial cross-cutting feature: persistent theme selection via cookies and a POST /theme flow, preserves the theme across authentication by reissuing cookies, updates page rendering to honor the selected theme, and fixes room-aware URL generation throughout the RPC/API with dedicated helper functions and tests. Side A improves the rank list visualization by switching row coloring from list position to per-group score normalization and adds focused tests, but it is a localized UI enhancement compared with B's broader infrastructure and correctness improvements.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_597d3f736194 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

B fixes real, concrete bugs (str/split with a string instead of regex, reading from the wrong stream, -1 vs 0 content-length, unhandled nil token/state causing crashes) that were actually breaking E2E auth tests, plus adds exception handling so the mock server doesn't die silently. A is a larger feature/refactor (theme cookie plumbing, room-scoped URL rewriting) which is plausibly useful but is unreviewed new surface area with added complexity across many files, whereas B's changes are small, targeted, and verifiably correct fixes to broken test infrastructure.

~x-ai/grok-latest · winner A · 4:1 · permalink

A delivers durable product design: cookie-based SSR theming (POST /theme, layout/auth re-issue so login keeps theme) plus real private-room wire fixes (item_path_for_api_in_room, forum_thread_web_url, RPC/CLI URL correctness and tests). B is a precise, valuable unblocker for E2E OAuth mocks (split regex, getRequestBody, null-safe state/token, redirect length) but is test-only and narrower in lasting project impact.

openai/gpt-chat-latest · winner A · 9:1 · permalink

Side A adds substantial user-facing and architectural functionality: persistent theme selection via cookies and a new `/theme` endpoint integrated across HTML rendering, preserves theme through authentication by reissuing cookies, and introduces room-aware URL generation (`item_path_for_api_in_room`, `forum_thread_web_url`) with broad RPC integration and tests. Side B is a valuable maintenance fix that repairs OAuth test mocks (query parsing, request-body handling, redirects, null checks, exception handling) so end-to-end auth tests work again, but its impact is confined to test infrastructure rather than core project behavior.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_af08bd851e49 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

B introduces a genuine algorithmic improvement (bridge-preferring pair selection in pair.rs) and fixes a real correctness bug where Reddit permalinks with title slugs created duplicate ItemIds (ItemId::from_storage), backed by new unit and integration tests plus a Clojure e2e test. A is a solid but more mechanical feature (server-persisted theme cookie threaded through ~20 handlers) plus useful but secondary private-room URL prefixing fixes; it's broader in diff size but less deep in core logic than B's ranking/pair-selection and id-normalization fixes.

~x-ai/grok-latest · winner B · 2:5 · permalink

B adds lasting core product logic: bridge-first pair selection in pair.rs (with unit tests), a full /vote compare UI with post-vote edge-history morphing, and ItemId::from_storage normalization plus integration coverage. A mostly plumbs cookie-based theme through layout/handlers and secondary private-room wire URL helpers in RPC—useful polish and API consistency, but less foundational than the ranking/vote path work.

openai/gpt-chat-latest · winner A · 3:2 · permalink

Side A delivers two substantial, project-wide improvements: persistent theme support via cookies integrated across authentication and HTML rendering (including preserving the theme through login redirects), and correct room-aware URL generation throughout the RPC/API layer with dedicated helper functions and tests. Side B adds a useful vote-comparison UI flow with in-place morph updates and improves item normalization for Reddit imports, but much of the patch is feature-specific, whereas Side A fixes cross-cutting behavior affecting navigation, rendering, and API correctness across the application.

comparison · c_7a129e904906 (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 3:2 · permalink

Side A ships production deployment infrastructure (Dockerfile, fly.toml, CI test+deploy workflow), fixes real correctness issues (git auth via GITHUB_TOKEN for private mirrors, requiring OPENROUTER_API_KEY before contested ranking, deduping redundant object-hash checks), and adds a functioning audited dashboard backed by new unit/integration tests. Side B is a solid but narrower fix (private-room URL prefixing across many RPC call sites plus a cookie-based theme switch) with good targeted tests, but it lacks the operational/deployment impact and breadth of correctness fixes found in A.

~x-ai/grok-latest · winner A · 3:1 · permalink

A ships production deployment (Dockerfile, fly.toml, main-branch CI), multi-repo roots/contributors, GitHub-auth mirrors, epoch retry, and a tested live /watch audit SSE surface that makes the constitutional process operable and observable. B improves theme persistence via cookies and correctly room-prefixes many RPC/web URLs, which is real lasting API fix work, but it is incremental product polish relative to A’s end-to-end deployable constitution runtime.

openai/gpt-chat-latest · winner A · 4:1 · permalink

Side A delivers substantial operational and product functionality: it adds production deployment (Dockerfile, Fly config, GitHub Actions), a live audit dashboard with SSE-backed progress and status APIs, improves emission processing and retry behavior, optimizes Git object verification to avoid redundant work, and adds tests for the new behavior. Side B is a useful but narrower feature set, primarily introducing persistent theme handling across pages and correct room-aware URL generation for RPC/web responses, with corresponding plumbing and helper functions.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_afa638171cf7 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

Side B implements a real feature with security implications (multi-provider OAuth linking, UUID-canonical identity, conflict handling for already-linked accounts, private provider visibility) with backing unit tests and mock-server test infrastructure updates. Side A is mostly plumbing (threading theme/jar/uri params through many handlers) plus a room-URL-prefixing helper, which is useful but lower-stakes UI/URL-formatting churn compared to B's identity/auth model change.

~x-ai/grok-latest · winner B · 2:5 · permalink

B redesigns canonical identity around UUID with multi-provider OAuth linking (GitHub + Reddit), conflict handling when a provider is already owned, private linked-provider UI, trust-weight batching, and matching mocks/tests—core lasting auth architecture. A’s theme cookie/POST switcher and SSR wiring improve UX, and its room-aware `item_path_for_api_in_room`/`forum_thread_web_url` RPC path fixes are real product correctness, but they are narrower surface work than B’s identity model.

openai/gpt-chat-latest · winner B · 3:1 · permalink

Side B implements a substantial identity model change: OAuth providers become private links to a canonical UUID account, adds Reddit OAuth alongside GitHub, updates login/account flows, introduces provider-link conflict handling, persists linked providers, and fixes trust-weight application during batched projection updates. Side A mainly adds persistent theme selection across pages and login plus correct room-aware URL generation in RPC responses, which are useful UX and API improvements but are narrower in architectural impact than the new authentication and identity design.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_11d6a0ec9839 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 6:4 · permalink

Side A delivers a coherent feature (server-rendered, cookie-persisted themes replacing a client-only localStorage hack) plus a real correctness fix for private-room item/URL paths in the API, backed by new unit tests. Side B is a solid but narrower bugfix/cleanup (route rename, better delegate attribution, removing a fallback bug and a dead UI button) with good test updates, but it's smaller in scope and impact than A's broader feature and correctness work.

~x-ai/grok-latest · winner A · 3:1 · permalink

A delivers lasting infrastructure: server-side theme cookies with POST /theme, auth cookie re-issue so login does not drop theme, layout/CSS integration, plus item_path_for_api_in_room/forum_thread_web_url and RPC/next-hint wiring so private rooms emit correct /r/… ontology and thread URLs (with tests). B is valuable but narrower—out-of-band WEB_BROWSER_AGENT delegate, drop the all-items next-pair fallback, remove swap, and rename /vote/compare→/vote—real fixes, but less project surface than A’s combined theme + room wire-path work.

openai/gpt-chat-latest · winner A · 5:1 · permalink

Side A implements a substantial, cross-cutting feature set: persistent theme selection via validated cookies and a new `/theme` endpoint, propagates theme state through page rendering and authentication so login preserves the user's theme, and adds room-aware URL generation for RPC/API responses with dedicated helper functions and tests. Side B makes useful but narrower fixes—passing browser delegate metadata out-of-band, preventing an incorrect fallback when too few sibling items exist, removing a redundant swap button, and renaming `/vote/compare` to `/vote`—but its impact is much more localized.

comparison · c_4772ee88dbe3 (tommy-mor) vs c_3f420a1f5aa1 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 65:35 · permalink

B delivers a substantial, coherent feature (server-rendered theme cookie/select replacing JS localStorage switcher, applied consistently across every page handler) plus real room-aware URL fixes (item_path_for_api_in_room, forum_thread_web_url) with new tests, all preserving working functionality. A mostly rips out a working demo-counter feature (net code reduction, arguably a regression in test coverage) and adds a settlement/batching worker for votes that, while a reasonable design, is unproven and less broadly impactful than B's cross-cutting fix.

~x-ai/grok-latest · winner A · 2:1 · permalink

Commit A removes disposable demo-counter scaffolding and introduces a real settlement worker (batched vote append + ranking recompute, warm cache, read-path ranked_items_cached, write→read lock narrowing)—lasting core architecture for the vote/rank loop. Commit B mainly wires theme cookies through layout/auth and room-scoped API URL helpers; useful correctness and UX, but more surface plumbing than A’s concurrency and ranking design.

openai/gpt-chat-latest · winner A · 4:1 · permalink

Side A makes a substantive architectural improvement by introducing a settlement worker that batches vote persistence and ranking recomputation, adds cached ranking reads (`ranked_items_cached`) to avoid unnecessary recomputation and write locks on HTTP requests, and removes the temporary demo-counter feature and its related event/UI code. Side B is largely a UI and routing enhancement for persistent themes plus correct room-specific URL generation in RPC responses, which is useful but less foundational than the concurrency, caching, and cleanup changes in Side A.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_e57094c6229a (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 55:45 · permalink

Side B introduces a real architectural improvement: raw entity payloads are now persisted through the event log (EntityImported event) and replayed on startup, fetches become explicit user actions instead of implicit auto-fetch, and it adds config (dotenv, configurable API/OAuth bases) plus tests and fixtures validating replay/import correctness. Side A is a broad but mostly mechanical refactor (threading theme/jar/uri params through many handlers, room-prefixed URL helpers) which is useful but lower-risk plumbing with less architectural novelty, though it does add solid test coverage for URL prefixing.

~x-ai/grok-latest · winner B · 2:3 · permalink

B lands a durable domain design: EntityImported in the event log with raw payload + derived view, explicit user-driven fetch (no auto-fetch on browse), configurable API bases, replay, and an end-to-end mock integration test. A’s room-aware wire URLs (item_path_for_api_in_room / forum_thread_web_url) are real API correctness, but much of the diff is theme plumbing (cookie/layout/handler threading) that is less foundational than B’s import architecture.

openai/gpt-chat-latest · winner A · 3:2 · permalink

Side A implements two broadly useful, user-facing capabilities across the codebase: persistent theme selection via validated cookies and a dedicated /theme endpoint (including preserving the theme across login redirects), plus correct room-aware URL generation for RPC/API responses with new helper functions and tests. Side B adds explicit Reddit entity fetching with event-log persistence of raw payloads and replay support, which is substantial, but it is more specialized; Side A's changes affect core navigation, authentication, rendering, and link correctness throughout the application.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_2722a3195825 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

B implements a genuine algorithmic improvement to pair selection (spanning-tree bridging then rank-zip refinement) with clear rationale and thorough new tests validating the logic. A is a large, useful feature (per-room theme cookies + private-room URL prefixing) but is mostly plumbing/threading extra parameters through many call sites, which is real but more mechanical/lower-risk value than B's core-algorithm correctness improvement.

~x-ai/grok-latest · winner B · 2:1 · permalink

B tightens core ranking behavior with clear bridge/attach/isolate priorities and rank-adjacent zip refinement, backed by targeted tests—lasting product logic rather than surface work. A’s value is real (cookie/SSR themes and private-room wire URLs) but much of the diff is mechanical layout/signature plumbing across many pages, so it is broader yet less concentrated lasting design than B’s pair-selection change.

openai/gpt-chat-latest · winner B · 3:2 · permalink

Side B makes a substantive algorithmic improvement to vote pair selection by introducing component-aware bridge priorities, rank-adjacent refinement once the graph is connected, and corresponding tests that validate the new behavior. Side A adds useful theme persistence across pages and login plus room-aware URL helpers, but much of the patch is broad plumbing to thread theme state through handlers, whereas Side B changes a core ranking heuristic with lasting impact on system behavior.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_0c466eea1ed4 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

Side B adds a self-contained, well-tested offline dev tool (sorterc) with clear docs, a reusable offline module, and unit tests covering compile/scan behavior, providing durable developer tooling value. Side A's theme/room-URL commit is functional but is a large, plumbing-heavy diff threading CookieJar/Uri through many handlers plus room-URL prefixing logic with less test coverage relative to its surface area, making its long-term maintenance cost higher for the value delivered.

~x-ai/grok-latest · winner A · 3:1 · permalink

A lands production fixes and features: private-room wire URLs (`item_path_for_api_in_room`, `forum_thread_web_url`) across RPC rankings/threads/hints, plus durable server-side theming (cookie, `POST /theme`, layout/SSR). B adds a solid dev-only `sorterc`/`offline` compile+scan path with tests, but it does not change shipped product behavior.

openai/gpt-chat-latest · winner A · 3:2 · permalink

Side A adds durable user-facing and API behavior: it implements persistent theme selection via validated cookies and a `/theme` endpoint, preserves theme across authentication, threads theme state through page rendering, and fixes room-aware URL generation throughout the RPC layer with dedicated helpers and tests. Side B introduces a useful developer-only offline `sorterc` tool for compiling `.sorter` files and scanning `events.jsonl`, but its impact is primarily on development workflows rather than the application's core runtime behavior.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_c6f5afec1d36 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 6:4 · permalink

Side A fixes a real correctness issue (wire URLs for ontology items/votes/threads were wrong for private rooms across many RPC endpoints) and replaces a client-only, flicker-prone theme switcher with a server-rendered cookie-based theme that persists correctly across auth/redirects, backed by new unit tests. Side B is a well-scoped but narrower feature (pool-scoped voting) that adds genuine value but touches far fewer correctness-critical paths and has smaller overall impact on the project's URL/API consistency.

~x-ai/grok-latest · winner A · 2:1 · permalink

A delivers lasting infrastructure: private-room wire URLs (`item_path_for_api_in_room`, `forum_thread_web_url`) fixed across RPC plus a durable cookie/POST theme design with auth re-issue and tests. B is a solid, focused pool-scoped voting feature, but narrower in scope than A’s API correctness and theme architecture.

openai/gpt-chat-latest · winner B · 4:1 · permalink

Side B adds a substantive new capability: pool-scoped voting, allowing `/vote?pool=...` to select comparison pairs from a parent's children, preserving pool context through vote submission and next-pair navigation, and exposing the feature with a new 'vote on children' UI. Side A is largely a broad UI/theme integration plus room-aware URL adjustments; while useful, much of it is plumbing and presentation, whereas Side B introduces a coherent new workflow with changes across routing, state propagation, and navigation logic.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_2f5d9e0370f8 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

Commit B implements a real, cross-cutting DSL syntax change (explanation-first votes) with new parser logic, updated grammar rules, and extensive test/fixture/docs updates ensuring correctness across the codebase, representing genuine language-level design work. Commit A is a UI feature (theme cookie persistence) that's useful but more localized and lower-stakes, mostly threading a jar/uri parameter through many handler signatures rather than solving a deeper correctness problem.

~x-ai/grok-latest · winner B · 2:5 · permalink

B redesigns the core sorter DSL (explanation-before-verdict votes, stricter item body placement) with a real parser rewrite, rejection of legacy syntax, and coordinated updates across docs, fixtures, UI vote payloads, and tests—lasting product semantics. A mainly swaps client localStorage theme cycling for cookie/POST /theme plumbing plus room-prefixed wire URL helpers in RPC; useful UX/API correctness, but more peripheral than B’s language-level change.

openai/gpt-chat-latest · winner A · 3:2 · permalink

Side A delivers lasting functional improvements across the application: it implements persistent server-backed theme selection (including cookie handling across authentication redirects), propagates theme state through page rendering, and fixes private-room URL generation by introducing room-aware item/thread URL helpers used throughout the RPC API with dedicated tests. Side B makes a substantial parser redesign by changing the DSL to require block-first vote explanations and updates documentation and tests accordingly, but much of the patch is migration churn for the new syntax rather than new end-user capability.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_ca9169f732b8 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

B fixes a real production bug (Reddit OAuth fallback causing hard 403 blocks from cloud IPs), adding proper retry-on-401/403 logic, better error truncation, and a config fix (SORTER2_BASE_URL), with a targeted test. A is a substantial but purely cosmetic/UX feature (theme switcher moved to a form-based cookie approach plus room-scoped URL prefixing) that adds real value but is less critical than fixing broken external API integration.

~x-ai/grok-latest · winner A · 2:1 · permalink

A delivers lasting product infrastructure: cookie-backed server-rendered themes (POST /theme, layout/auth propagation so login does not drop theme) plus private-room wire URL helpers (`item_path_for_api_in_room`, `forum_thread_web_url`) wired through RPC with tests. B is a critical but narrower production fix—force OAuth when credentials exist, AuthRejected + one refresh on 401/403, and pin SORTER2_BASE_URL—so Reddit cloud fetches stop falling back to blocked www endpoints.

openai/gpt-chat-latest · winner A · 5:2 · permalink

Side A adds a durable cross-cutting feature by introducing server-backed theme persistence (cookie handling, POST /theme, layout integration, preserving the theme across authentication) and systematically propagating room-aware URLs through RPC responses with helper functions and tests. Side B fixes an important Reddit integration issue by requiring OAuth when configured, retrying after 401/403 with token refresh, and improving error handling, but it is a narrower subsystem-specific reliability improvement compared with A's broader architectural enhancements.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_abd68b5e771a (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 60:40 · permalink

B is a small, precise bugfix that removes ghost items and false voted_pairs entries from the reducer's core ranking logic, correcting a real correctness issue with accompanying test verification. A is a larger feature (theme switcher rework + room-scoped URL helpers) that adds value but is more speculative/UI-focused, mixes several concerns, and lacks the surgical correctness guarantee of B's fix to core data integrity.

~x-ai/grok-latest · winner B · 2:5 · permalink

B fixes a real reducer integrity bug by dropping zero-ratio votes before ensure_item/voted_pairs side effects, eliminating ghost items and false “already voted” state, with a matching test update. A is largely theme UX (cookie/select plumbing threaded through many handlers) plus useful but secondary private-room URL wire helpers—valuable product surface, yet more diffuse and less foundational than the ranking-state correctness fix.

openai/gpt-chat-latest · winner B · 4:1 · permalink

Side B fixes a correctness bug in the reducer by moving the zero-ratio guard before `ensure_item` and `voted_pairs.insert`, preventing ghost items and incorrectly recorded voted pairs, and updates the test to verify the corrected behavior. Side A adds broad theme persistence and room-aware URL handling across many files, but it is largely feature work and plumbing rather than a targeted correctness fix with the same lasting impact on core data integrity.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_552f408ae0da (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 6:4 · permalink

A fixes a real correctness gap (RPC/HTML links for private-room items previously always resolved to public `/~/...` or `/t/...` URLs, breaking room-scoped navigation) via `item_path_for_api_in_room`/`forum_thread_web_url` with unit tests, plus reworks theme handling to be cookie-based (fixing FOUC/flash and enabling SSR-consistent rendering) across many pages. B is a clean, well-tested but narrower feature (RoomList RPC + CLI) with good integration coverage, but lower overall impact than the correctness fix and broader theming rework in A.

~x-ai/grok-latest · winner A · 2:1 · permalink

A ships lasting platform fixes: cookie/SSR theme plumbing (POST /theme, auth cookie re-issue so login does not drop theme) plus room-correct wire URLs via item_path_for_api_in_room/forum_thread_web_url wired through RPC rank/pair/forum responses with unit tests. B adds a useful RoomList RPC/CLI with solid isolation integration tests, but is a single narrow endpoint versus A’s API correctness and cross-surface design work.

openai/gpt-chat-latest · winner A · 4:1 · permalink

Side A delivers broad, lasting functionality by introducing persistent theme handling (cookie-backed theme selection that survives authentication), propagating theme context through page rendering, and fixing room-aware URL generation across the RPC/API with dedicated helper functions and tests for private-room paths. Side B adds a useful but narrowly scoped RoomList RPC/CLI command with integration tests that simply enumerates rooms granted to the authenticated user, making it a smaller feature with less architectural impact.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_c124c217f89c (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 6:4 · permalink

Side A delivers a coherent, tested feature (server-rendered theme cookie handling plus room-scoped canonical URL helpers) with unit tests and a genuine bugfix (theme cookie dropped on login). Side B's Reddit importer, while more elaborate, ships with rough edges—a leftover 'sorter2' user-agent string, a stray 'todo' file admitting the feature is unfinished, a duplicated reqwest dependency, and an auto-fetch-on-view behavior that contradicts its own todo note about fetching only on explicit request—making it less polished and less clearly finished than Side A's focused, tested changes.

~x-ai/grok-latest · winner A · 2:1 · permalink

A lands durable product correctness: cookie/SSR theme switching with auth cookie re-issue, plus room-aware wire URLs (`item_path_for_api_in_room`, `forum_thread_web_url`) wired through RPC with tests—fixing private-room API links and CLI hints. B adds a solid Reddit fetch worker (OAuth, rate limits, parse/map tests), but it is a narrower external-import foundation still marked incomplete versus A’s core API/UX paths.

openai/gpt-chat-latest · winner A · 3:2 · permalink

Side A delivers two lasting functional improvements across the codebase: a complete server-backed theme system (cookie persistence, theme selection, propagation through layouts, preserving the theme across authentication redirects) and correct room-aware URL generation for RPC/web responses via new helper functions with accompanying tests. Side B adds substantial Reddit background-fetch infrastructure with OAuth, rate limiting, and parsing, but it is only partially integrated (triggering fetches while rendering/importing) and leaves rendering and broader functionality unfinished, reducing its immediate long-term project value.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_c0df72aee6da (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:4 · permalink

B fixes a genuine XSS vulnerability by sanitizing untrusted Reddit HTML before rendering with maud::PreEscaped, a real security bugfix with focused scope and tests. A is a larger feature/refactor (theme cookie persistence + private-room URL prefixing) that adds real value but is more sprawling churn across many files without addressing a security risk; both are legitimate, but B's correctness impact is more critical and self-contained.

~x-ai/grok-latest · winner A · 2:1 · permalink

A delivers lasting product infrastructure: server-side theme cookies with POST /theme, layout wiring, and especially room-aware wire URLs (item_path_for_api_in_room, forum_thread_web_url) threaded through RPC with tests. B is a precise, high-value XSS fix (ammonia on Reddit body_html) but narrower in scope than A’s combined theme + private-room API correctness work.

openai/gpt-chat-latest · winner B · 2:1 · permalink

Side B closes a concrete security vulnerability by sanitizing untrusted Reddit HTML with `ammonia` before passing it to `maud::PreEscaped`, preventing script and event-handler execution while preserving safe markup, and adds focused tests for that behavior. Side A adds substantial functionality around theme persistence and room-aware URLs, but it is largely feature work spread across many handlers rather than a single correctness or security fix with comparable lasting risk reduction.

comparison · c_3f420a1f5aa1 (tommy-mor) vs c_fbeec5c4ad18 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 3:2 · permalink

Side B changes the core ranking algorithm from author-level to per-commit pairwise ranking, fixing a real correctness gap (same-contributor multiple commits were never compared) and adds rollup logic, updated evidence schema, epoch page rendering, and new/updated tests covering the behavior. Side A is a sizable but purely additive UI feature (theme cookie/selector) plus a room-URL helper refactor, useful but narrower in scope and lower architectural impact than B's fix to the ranking/reward mechanism.

~x-ai/grok-latest · winner B · 2:5 · permalink

B fixes ranking to pairwise-compare every eligible commit (not bundled per author) and only short-circuit on a single commit, with rollup scores, evidence fields, epoch UI, and tests—a lasting fairness design for emissions. A’s theme cookie/POST work is real UX polish plus useful private-room wire URL helpers, but much of the diff is repetitive layout/jar plumbing rather than core design.

openai/gpt-chat-latest · winner B · 4:1 · permalink

Side B changes the core ranking algorithm from contributor-level comparisons to pairwise ranking of individual commits, removes the incorrect single-contributor short circuit, rolls commit scores back up to contributors, updates evidence/UI, and adds tests covering same-contributor multi-commit behavior. Side A mainly implements persistent theme handling across pages and login plus room-aware URL generation, which is useful, but it is largely feature integration rather than a fundamental correctness improvement to the project's ownership allocation logic.

The full patch is loaded only by the download route: download patch

Metadata
commit_idc_3f420a1f5aa12c1c2d5388310be4713c52f8cb819b08bb299d3c7b3d630bb468
patch_sha2569dbad4ba292c95635fb5fbce1241d91ca515af63209632e83aab4fb41cd7770d
patch_identitygit-patch-id-stable-v1:669832f60300ae5f40f1fbce3a5a5020b0781a6f
committer_timestamp_ms1775962509000