constitution · epochs · watch · epoch 3

commit

c_509fc51550347197c1

tommy-mor · sha1:88577c5650e131c087c1ce5acafb6998f72a88e2

download patch · raw event

message

reconfigure

comparisons involving this commit

comparison · c_94135a1c4c58 (tommy-mor) vs c_509fc5155034 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 7:3 · permalink

Side A delivers a coherent, security-focused change (fail-closed vote auth, mock-OAuth gating, Secure cookies, open-redirect hardening) with tests and doc updates, directly closing real vulnerabilities. Side B is a large architectural rewrite (scope->fractal tree/ItemId) that is plausible but riskier, less focused, and its terse 'reconfigure' message and broad renames (settlement->journal, groups->tree) suggest unreviewed churn without the same clear safety payoff.

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

B replaces flat scope maps with a hierarchical ItemId/GlobalTree model (path canonicalization, breadcrumbs, journaled tree votes, NodeEnsured), which is lasting core-domain design. A’s fail-closed voting, mock-OAuth gate, Secure cookies, and open-redirect hardening are real security fixes, but they tighten an existing auth layer rather than reshaping the ranking architecture.

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

Side A delivers concrete security and correctness improvements: voting now fails closed instead of silently falling back to an anonymous actor, auth cookies gain the Secure flag when appropriate, mock OAuth is gated behind an environment flag, open-redirect sanitization is strengthened, and these behaviors are covered by new tests. Side B is a broad architectural refactor toward hierarchical ItemId/tree support, breadcrumbs, and a journal rename, but much of it lays infrastructure or UI changes rather than fixing an immediate correctness or security issue, making A the more durable high-impact change.

comparison · c_509fc5155034 (tommy-mor) vs c_fdb136513896 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 9:1 · permalink

Side A is a substantial, working refactor: it introduces a generalized ItemId path/tree model (GlobalTree, NodeState), replaces the old settlement module with a journal worker, updates parser/state/html/UI code accordingly, and adds new unit/integration tests validating the behavior. Side B is a one-line, unbuilt idea note appended to a seed/notes file with no code, tests, or functional change, offering negligible lasting engineering value.

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

Side A is a full architectural rework: fractal ItemId tree, GlobalTree/NodeState, journal worker, URL canonicalization, breadcrumbs/entity UI, and event replay migration. Side B only appends one unimplemented product note to seed.tdsl with no code or design impact.

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

Side A fundamentally restructures the project around hierarchical ItemId-based nodes and a GlobalTree, replacing flat scope-based rankings, adds canonical Reddit URL parsing, breadcrumb navigation, node persistence, and a journaled vote pipeline, with corresponding tests and UI updates. Side B only appends a single planning note ('have index be sorted by viewcount') to a seed ideas file and does not change application behavior.

comparison · c_bc8c17a00ed7 (tommy-mor) vs c_509fc5155034 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 9:1 · permalink

Side A is a small, focused, correct bugfix (skip pinned/stickied Reddit posts) with a clear test verifying the exact behavior, adding real lasting value with minimal risk. Side B is a sprawling, vague 'reconfigure' commit that reworks the entire ID/scope/state model (renaming settlement->journal, scope->ItemId tree, new files) with much higher risk of regressions and no clear single purpose, making it harder to attribute clean ownership value despite its size.

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

B is a foundational redesign: ItemId path model, GlobalTree/NodeState, journal worker replacing settlement scopes, breadcrumbs/entity UI, and parser/state migration—core lasting architecture. A is a small, correct filter (skip stickied/pinned children) plus one test, valuable but narrow against B’s structural contribution.

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

Side B introduces a substantial architectural shift from flat subreddit scopes to a hierarchical `ItemId`/`GlobalTree` model, updating parsing, state management, UI navigation (breadcrumbs and item links), vote recording, event handling, and tests to support canonical item identities and per-node rankings. Side A is a correct, targeted bug fix that skips `stickied`/`pinned` Reddit posts during import and adds a regression test, but its impact is much narrower than the persistent data model and UI capabilities added in Side B.

comparison · c_28dfd8015c8a (tommy-mor) vs c_509fc5155034 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 6:1 · permalink

Side B is a substantial architectural refactor (settlement -> journal, flat scope map -> hierarchical GlobalTree, ItemId path parsing/canonicalization, breadcrumb UI, entity data) with corresponding tests and real feature capability additions. Side A is a small, useful but minor kaocha config simplification (two suites -> one glob pattern) with no code or behavioral change beyond test discovery.

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

B replaces flat string scopes with a hierarchical ItemId/GlobalTree model (path canonicalization, breadcrumbs, journaled votes, NodeEnsured events, UI/entity panels)—core lasting domain architecture. A only collapses hand-listed kaocha suites into one ns-pattern in tests.edn, a useful but narrow test-runner convenience.

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

Side B implements a substantial architectural shift from flat subreddit scopes to a hierarchical `ItemId`/`GlobalTree` model, updating vote recording, event replay, URL parsing, UI navigation (breadcrumbs, entity panels, links), and persistence with new journal and tree infrastructure. Side A improves maintainability by replacing manually enumerated Kaocha test namespaces with automatic `^test\..+` discovery, but it is limited to test configuration rather than core project behavior or architecture.

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

Side A introduces a genuinely new architecture (GlobalTree/NodeState hierarchical model, canonical ItemId URL parsing/normalization, breadcrumb navigation) with accompanying unit tests, replacing the flat scope-based ranking system — a substantial, lasting design shift that the codebase clearly builds on later (fetch/render modules in B depend on this tree). Side B is a smaller, useful cleanup (fixing duplicate-id morph targets, deduplicating vote-card rendering by reusing entity_section) but is narrower in scope and fixes a bug introduced by prior work rather than establishing new capability, and even contains a stray formatting glitch in the match arm indentation.

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

A replaces flat scope maps with a hierarchical GlobalTree/ItemId model, path canonicalization, journaled votes, breadcrumbs, and event replay—foundational design the app still sits on. B only switches entity morph targets to data-attribute selectors and reuses entity_section in vote cards (plus CSS cleanup), a useful but local UI DRY fix with far less lasting structural impact.

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

Side A introduces a substantial architectural shift from flat subreddit-scoped rankings to a hierarchical ItemId-based tree, adding GlobalTree/NodeState, canonical URL parsing, breadcrumb navigation, journaled vote handling, and compatibility for replaying legacy events. Side B is mainly a UI refactor that reuses the existing entity section for vote comparison and switches DOM morph targets to item-specific selectors, which improves maintainability but is much narrower in lasting impact.

comparison · c_57453fc5c6c0 (tommy-mor) vs c_509fc5155034 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 7:3 · permalink

Side A adds a well-scoped, clearly-motivated feature (garden ranking clipboard copy) that follows existing patterns (CopyThread), and ships with unit tests, an integration test, a browser test, and doc updates. Side B is a sprawling, vaguely-described ('reconfigure') architectural pivot that rewrites the ranking data model (scope->tree), renames/removes settlement.rs, rewrites the URL parser, and touches many files at once, making its lasting value and correctness far harder to assess despite some added tests.

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

B replaces flat string scopes with a hierarchical ItemId/GlobalTree model, journaled votes, path canonicalization, and breadcrumb navigation—core lasting architecture. A adds a useful but incremental clipboard UX (CopyGardenRank) that mostly reuses existing ranking/JsBuilder patterns and does not reshape the system.

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

Side B introduces a substantial architectural shift from flat scope-based rankings to a hierarchical `ItemId`/`GlobalTree` model, adding canonical URL parsing, breadcrumb navigation, per-node rankings, event replay for tree nodes, and a journal worker while updating vote handling and integration tests accordingly. Side A is a well-implemented user-facing feature that adds a garden ranking copy button with markdown generation, `/ui` action handling, permissions, and tests, but it primarily extends existing UI behavior rather than changing the project's core data model.

comparison · c_597d3f736194 (tommy-mor) vs c_509fc5155034 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 80:20 · permalink

Side B is a substantial, structural refactor introducing a generalized ItemId/tree model (path_types, reducer's GlobalTree/NodeState, journal.rs replacing settlement.rs, breadcrumb rendering, reddit.rs) that changes the core data model to support hierarchical ranking beyond just subreddits, backed by new unit/integration tests. Side A is a narrower, useful but low-risk test-infrastructure fix (correcting regex usage, HttpExchange methods, exception handling in mock OAuth server) that restores E2E test reliability but adds no new product capability.

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

B replaces flat scope/group ranking with a hierarchical ItemId/GlobalTree model, journaled votes, breadcrumbs, and URL canonicalization—core lasting product design. A only repairs test OAuth mocks (query split, request body, null-safety) and selector helpers so E2E auth runs again, valuable but confined to test plumbing.

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

Side B introduces a substantial architectural shift from string-based scopes to hierarchical `ItemId`/`GlobalTree` state, adds persistent node registration, canonical Reddit URL parsing, breadcrumb navigation, entity support scaffolding, and rewires voting and UI around the new model. Side A is a valuable bugfix that restores OAuth end-to-end tests by fixing mock HTTP handling (`getRequestBody`, redirect responses, null checks, query parsing) and improving test selectors, but its impact is primarily limited to test infrastructure rather than the project's core design.

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

Side B is a substantial feature commit introducing a hierarchical ItemId/fractal-tree model (parent/child, breadcrumbs, URL canonicalization), rewiring state/journal/reducer/UI to use it, replacing the flat scope-based GroupMap, with new tests and CSS support—clearly lasting architectural work. Side A is a small, focused refactor (Deque -> List with query-time capping) that removes a write-amplifying trim step, which is a solid but narrow correctness/perf improvement compared to B's broad structural redesign.

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

B reshapes the product around a hierarchical ItemId/GlobalTree model (path canonicalization, parent/child wiring, NodeEnsured, journal-backed votes, breadcrumbs/UI), a lasting architectural shift; A only swaps recent_votes Deque/VecDeque for append-only List/Vec with read-time capping and drops write-time trim—a correct but narrow storage simplification.

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

Side B introduces a substantial architectural evolution from flat string-scoped rankings to a hierarchical ItemId/GlobalTree model, adds canonical URL parsing, breadcrumb navigation, node registration events, and a journal worker while updating state, UI, and tests to support the new design. Side A mainly replaces a deque with an append-only list, removes write-time trimming in favor of query-time capping, bumps the schema version, and adds a targeted test; useful, but much narrower in long-term impact.

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

Side B lays down the actual foundational architecture (ItemId path canonicalization/breadcrumbs, GlobalTree replacing the flat GroupMap, journal worker, parser rewrite) that Side A's commit builds directly on top of (rank_list/tree signature, entity_panel, reddit render module). Side A is a nice incremental feature (reddit post thumbnails/images) but is smaller in scope and depends on B's tree/ItemId infrastructure to even function; B's changes are more foundational and broadly enabling despite being messier/larger.

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

B replaces flat per-scope GroupMap/settlement with a hierarchical GlobalTree, canonical ItemId paths (parent/breadcrumbs/from_url), journal replay including NodeEnsured, and UI wired to ?item= nodes—core lasting architecture. A only extends that surface with Reddit-specific markup (thumb/image/link fields, render/reddit cards, CSS) and a fixture test, valuable polish but dependent and narrower.

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

Side B introduces a substantial architectural shift from string-based subreddit scopes to a hierarchical `GlobalTree` keyed by canonical `ItemId`s, updating state management, event replay, URL parsing, voting, breadcrumbs, and persistence to support per-node rankings and navigation. Side A adds valuable Reddit-specific rendering (thumbnails, entity cards, image/link extraction, and tests), but it is primarily a presentation and metadata enhancement layered on top of the existing model, whereas B establishes broader lasting infrastructure used across the application.

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

Side A implements a real, working feature: a background Reddit fetch worker with OAuth, rate-limit handling, backoff, JSON parsing into EntityData, and unit tests, wired into the UI to actually populate node data. Side B is largely a structural refactor (settlement->journal rename, scope->ItemId tree plumbing, path canonicalization) that is valuable groundwork but leaves reddit.rs as an unchanged placeholder (fetch_reddit_entity still returns None), so it delivers less concrete end-user functionality than A's completed fetch pipeline.

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

B replaces flat string scopes/GroupMap/settlement with the hierarchical GlobalTree, rich ItemId canonicalization/parents/breadcrumbs, NodeEnsured events, journal worker, and UI wired to tree nodes—core lasting design. A adds a solid RedditBroker (OAuth, rate limits, JSON parse, tests) on that stub, but it is feature work that depends on B’s model rather than reshaping the project.

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

Side A turns the Reddit integration from a placeholder into a working subsystem: it adds a background fetch broker, OAuth support, rate-limit handling, request deduplication/caching, JSON parsing into EntityData, automatic fetch triggering from navigation and node creation, and tests. Side B mainly restructures the application around hierarchical ItemId/GlobalTree concepts, updates the UI to use breadcrumbs and node-based rankings, and renames the settlement worker to a journal, but much of it is architectural refactoring and scaffolding, whereas Side A delivers substantial new functionality that persists in the project.

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

B introduces a real architectural feature (a hierarchical ItemId/GlobalTree fractal-scope system replacing flat scope strings, with breadcrumbs, entity panels, and journal worker rename) backed by substantial new tests, whereas A mostly removes an unused visibility field from room creation (a minor simplification/cleanup) plus doc/CLI wiring for an existing feature. B's diff, while larger, represents genuine feature depth (URL canonicalization, tree traversal, UI rendering) rather than churn, though it also carries more risk/complexity that could be seen as scope creep in a single commit named vaguely 'reconfigure'.

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

B rebuilds the core data model from flat string scopes into a hierarchical ItemId/GlobalTree (path canonicalization, parent links, breadcrumbs, journaled votes on parent nodes), which is lasting architecture. A adds a real room-create CLI path and a useful simplification (drop ThreadVisibility; rooms as a HashSet), but it is incremental product surface on an existing private-room design rather than a foundational redesign.

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

Side B introduces a substantial architectural shift from flat per-scope rankings to a hierarchical `GlobalTree` of `ItemId` nodes, adding canonical URL parsing, breadcrumb navigation, node persistence (`NodeEnsured`), and a new journal worker while updating the UI and state management to use the new model. Side A adds a useful `room create` CLI command and simplifies room handling by removing unused visibility state, but it is a narrower feature and cleanup compared with B's broader, lasting redesign of core data structures and navigation.

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

Side A adds a self-contained, well-tested dev tool (offline compiler/linter) with clear docs and no risk to production code paths, reusing existing server logic cleanly via a new offline.rs module. Side B is a large, invasive refactor (scope->tree, settlement->journal rename, ItemId overhaul) that touches many core files simultaneously with a vague 'reconfigure' message, increasing risk despite adding real tree/breadcrumb functionality; its scope creep and rename churn (settlement->journal) reduce clarity of lasting value compared to A's precise, additive tool.

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

B rewrites the core domain from flat scope maps to a hierarchical GlobalTree/ItemId model (canonical URL paths, parent/child wiring, journal worker, UI breadcrumbs, vote/event replay), which permanently changes product behavior. A adds solid but auxiliary workspace tooling (offline.rs compile/scan + sorterc CLI) that validates DSL/JSONL without altering the runtime architecture.

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

Side A adds a substantial new offline tooling capability by introducing a reusable `offline` module plus a new `sorterc` workspace binary that compiles `.sorter` files, replays reducer state from JSONL, scans event logs for malformed ingests, and includes tests and documentation. Side B is a broad architectural reconfiguration toward hierarchical `ItemId`/tree-based state and UI changes, but much of it is scaffolding (placeholder Reddit fetch, renames, structural migration) whose completed value depends on later work, whereas A delivers immediately usable developer functionality built on existing server logic.

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

B builds substantial lasting architecture (a fractal ItemId/GlobalTree model, breadcrumb navigation, parent-child ranking, journal worker replacing settlement) that generalizes the app beyond flat subreddit scopes, while A merely replaces an over-engineered but self-contained autocomplete graph with a simpler paste-and-go parser. However, B's diff also carries real risk/incompleteness (renamed settlement->journal with duplicated logic, legacy scope shims, less test coverage of new tree semantics), so it's not a clean sweep, but its net design contribution outweighs A's more isolated simplification and deletion of test infrastructure.

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

A’s lasting value is a correct simplification: ripping out the unreliable ~1.8k-line keystroke graph, parser_action, race harness, and live-autocomplete JS in favor of paste-and-go plus a small URL parser. B goes further with durable product architecture—hierarchical ItemId canonicalization, GlobalTree/NodeState with parent-scoped rankings, journaled NodeEnsured events, breadcrumbs/entity panel, and item-based navigation—so the app’s core model, not only one UI entrypoint, becomes hierarchical and extensible.

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

Side B introduces a durable architectural shift from flat subreddit scopes to canonical `ItemId`-based hierarchical nodes, adding `GlobalTree`, breadcrumb navigation, parent-child rankings, canonical URL parsing, and a journal-backed persistence path. By contrast, Side A mainly simplifies the UI by replacing the fragile autocomplete parser with a paste-and-go flow and a much smaller parser, which is a valuable cleanup but narrower in long-term project impact.

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

Side A implements a substantial new feature (fractal ItemId tree, journal worker replacing settlement, breadcrumb navigation, reddit entity scaffolding) with new tests and coherent architecture across many files, delivering real forward-looking capability. Side B is a cleanup commit removing legacy projection code paths in a meta/governance codebase, which is valuable for simplifying maintenance but is narrower in scope and mostly deletes/adjusts existing logic rather than building new lasting functionality.

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

Commit A replaces flat string scopes with a hierarchical ItemId/GlobalTree model, path canonicalization, journaled tree votes, breadcrumbs, and related UI—foundational product architecture. Commit B mainly deletes legacy GitDiscovery/Emission projection shims so epoch/commit pages read Evidence envelopes only, plus matching test/fixture cleanup; valuable schema hygiene but narrower and largely subtractive.

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

Side A introduces a substantial architectural shift from flat scope-based rankings to a hierarchical `ItemId`/`GlobalTree` model, adds canonical URL parsing, breadcrumb navigation, node persistence, and a journal worker while updating UI and state handling to support tree-structured rankings. Side B mainly removes legacy compatibility paths and requires evidence-only records in the ledger/UI, simplifying code and tests but primarily deleting fallback behavior rather than adding new core capabilities.

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

B ships a coherent, working feature set (cookie-based web login/logout, a generic POST /post handler wired through the existing RPC/ACL pipeline, and room-scoped thread pages reusing a new ThreadNav abstraction) that visibly increases end-user functionality and route coverage. A is a substantial internal refactor (ItemId/tree/journal rename plus reddit-url canonicalization) that is well-tested but mostly repackages existing scope logic without adding end-user-visible capability, and it also includes an unrelated, unpolished plan2.md prose file that adds no code value.

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

A replaces flat string scopes with a lasting hierarchical domain model (ItemId/GlobalTree/NodeState, path ensure/vote replay, journal worker, breadcrumbs/entity panel), which is core design rather than glue. B restores valuable room/web surfaces (session cookie auth, /r/* views, compose/post), but much of the diff is route/UI wiring plus a large unused plan2.md, so it is less foundational than A’s model change.

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

Side A introduces a substantive shift from flat string scopes to a canonical hierarchical `ItemId`/`GlobalTree` model, updates vote recording and replay to use that structure, adds path normalization, breadcrumbs, node persistence, and adapts the UI and parser around the new design. Side B mainly reconnects and expands the web UI (cookie-based browser sessions, room routes, posting forms, and routing), which is useful, but it is largely wiring on top of existing capabilities rather than introducing a comparably foundational data model and persistence change.

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

Side B consolidates three duplicated endpoints (/post, /post/check, /post/redact) into the single /ui RPC dispatch path, removing ~350 lines of near-duplicate handler code and unifying session resolution, which is a real architectural simplification with test/fixture updates to match. Side A introduces a large new hierarchical ItemId/tree model (also substantial and well-tested), but it's a bigger, less proven refactor with more speculative surface (breadcrumbs, entity panels, reddit.rs stub) versus B's more contained, verifiably correct consolidation.

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

Commit A replaces flat string scopes with a hierarchical GlobalTree/ItemId model, path canonicalization, breadcrumbs, journaled votes, and node ensure events—core lasting domain design. Commit B mainly consolidates existing /post* handlers into POST /ui (delete web_post.rs, rewire forms/tests), which cleans the API but mostly relocates behavior without comparable architectural depth.

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

Side A introduces a substantive new hierarchical data model centered on `ItemId` and `GlobalTree`, migrates voting from flat scope strings to parent-node rankings, adds canonical Reddit URL parsing, breadcrumb navigation, node persistence (`NodeEnsured`), and a journal worker that updates the tree after durable event logging. Side B is primarily a refactor that consolidates existing `/post` endpoints into the `/ui` RPC flow, factors out shared session resolution, and rewires forms and tests; while it reduces duplication and simplifies routing, it mostly reorganizes existing behavior rather than adding comparable long-term functionality.

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

Side A is a focused, well-tested refactor that consolidates path/URL logic into a shared types crate with correct-by-construction newtypes, removing duplicated string-based helpers while preserving behavior (tests carried over and passing). Side B is a much larger, riskier architectural rewrite (scope→fractal-tree, settlement→journal, subreddit-only parser→generic ItemId) that touches many core modules with less certainty of correctness and a vague commit message ('reconfigure'), making it harder to trust as durable, reviewed value versus A's clear, incremental centralization.

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

B replaces flat string scopes with a real hierarchical domain model (ItemId parent/breadcrumbs, GlobalTree/NodeState, journaled NodeEnsured, tree-scoped votes and UI), which changes how rankings and navigation work permanently. A is a strong hygiene refactor—moving canonicalize_* and CanonicalItemUrl into slug-types and wrapping wire hrefs as GardenItemUrl/ForumThreadUrl—but it mostly relocates and type-wraps existing URL rules without introducing comparable new behavior.

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

Side A performs a substantial architectural consolidation by moving canonical path normalization and URL construction into a shared `types::paths` module, replacing ad hoc string helpers with typed wrappers (`GardenItemUrl`, `ForumThreadUrl`, `TildeOntologyPath`) throughout the server and API models. This centralizes path identity, reduces duplication, and makes RPC/serialization use correct-by-construction types, whereas Side B is a broad reconfiguration introducing a new tree/journal architecture and UI changes but also many placeholders (e.g. stubbed Reddit fetch), renames, and incomplete infrastructure whose lasting value is less clearly realized in the patch itself.

comparison · c_abd68b5e771a (tommy-mor) vs c_509fc5155034 (tommy-mor)
~anthropic/claude-sonnet-latest · winner A · 8:2 · permalink

Commit A is a small, precise, verifiable bugfix that closes a real correctness gap (ghost items/pairs being registered before the zero-ratio guard) and updates the test to assert the corrected behavior. Commit B is a large speculative refactor ('reconfigure') introducing a whole new tree/journal/reddit-import architecture with no tests demonstrating it fixes a real bug, higher risk of regressions, and no clear necessity established beyond feature expansion.

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

B lands lasting core design: hierarchical ItemId/GlobalTree, path canonicalization, journaled tree votes, and UI (breadcrumbs/entity panel) that replace flat string scopes—foundational product capability. A is a correct, necessary ordering fix (zero-ratio return before ensure_item/voted_pairs) with tight tests, but it is a localized guard versus B’s structural model change.

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

Side A fixes a real correctness bug by moving the zero-ratio early return before `ensure_item` and `voted_pairs.insert`, preventing ghost items and incorrectly marked voted pairs. It also updates the test to verify that no items, edges, or voted pairs are registered, whereas Side B is a large architectural reconfiguration with broad feature changes but no clearly demonstrated targeted bug fix or validated lasting correctness improvement in the patch itself.

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

Metadata
commit_idc_509fc51550347197c1eeef95bf3aef728faff5d437c4ecbea3fecd64adbcc149
patch_sha2562f022af32e550f33fb458f9406dc40ce4ef69234faef07a41daf7f194844d659
patch_identitygit-patch-id-stable-v1:908d01b75fa5bfb8080e0a286939f5ba89c49c02
committer_timestamp_ms1780122644000