constitution · epochs · watch · epoch 3

commit

c_14dd365ffe226ea4e2

tommy-mor · sha1:8d5328d33eb2ce53e808e2534b344ae670c95537

download patch · raw event

message

-theme

comparisons involving this commit

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

B introduces a clean, testable URL scheme change (`/~/` browse routing) with new ItemId methods, unit tests, integration tests, and removes dead theme-switching machinery, yielding a simpler and more maintainable routing model. A adds real but narrower value (sorting vote history, morph preview card, fullscreen layout) with a good test, but includes large speculative CSS duplication across three theme files and a doc rewrite, which is more surface area for less structural payoff than B's URL refactor.

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

B establishes lasting core design: path-based `/~/` browse routes, `ItemId::browse_href`/`from_browse_uri`, and drops the whole theme cookie/POST stack for a single stylesheet—structural URL and app-shell changes. A is solid product work (chromeless vote-compare, left-aligned edge-history sort, post morph + tests) but stays scoped to one UI flow rather than re-plumbing navigation.

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

Side A delivers functional improvements to the vote-compare workflow: it adds a fullscreen chromeless layout, morphs the newly created vote preview after submission, normalizes and sorts edge-history ratios relative to the displayed left/right order, and includes tests covering the new sorting behavior and browser interactions. Side B mainly removes theme support while introducing cleaner browse URLs (`/~/...`) and helper methods like `browse_href`, which is useful but also deletes existing functionality and is narrower in long-term impact than the end-to-end UI and correctness improvements in Side A.

comparison · c_14dd365ffe22 (tommy-mor) vs c_c124c217f89c (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 4:1 · permalink

Side B implements a substantial, well-tested feature: an async Reddit fetch worker with OAuth token management, rate-limit/backoff handling, JSON parsing for subreddits/posts, and integration into AppState/routes, including unit tests for URL mapping and JSON parsing. Side A mostly removes an existing theme feature and refactors URL routing (/?item= to /~/...), which is a reasonable but comparatively minor and partly destructive change (deleting theme CSS/cookie logic) with less enduring functional value.

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

B replaces the Reddit fetch stub with a full background broker (OAuth, rate-limit/backoff, dedup/TTL, JSON parsing for subreddits/posts) wired into browse and ensure_node—core lasting product capability. A mainly deletes the theme/cookie stack and consolidates CSS while adding cleaner `/~/` browse URLs on ItemId; useful routing design, but mostly simplification versus B’s new domain functionality.

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

Side B adds a substantive new capability: a background Reddit fetch pipeline with request deduplication, rate-limit handling, optional OAuth, JSON parsing into entity data, and integration into application state so browsing or ensuring a node can populate metadata asynchronously. Side A mainly refactors navigation to canonical `/~/` browse URLs and removes the theme system while simplifying static asset handling; although useful and supported by tests, much of the patch is restructuring and feature removal rather than adding enduring functionality.

comparison · c_6a02ffb06a41 (tommy-mor) vs c_14dd365ffe22 (tommy-mor)
~anthropic/claude-sonnet-latest · winner B · 8:2 · permalink

Commit B is a substantive refactor that removes an entire theme-switching subsystem (CSS files, cookie handling, form endpoint) and replaces query-param item addressing with a cleaner path-based `/~/` browse route, backed by new URL parsing logic and tests. Commit A is a smaller, more localized fix (replacing a fallback default with an explicit panic/expect and correcting doc comments/indexing semantics), which is useful but far more limited in scope and lasting architectural impact.

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

B introduces a lasting routing design (`ItemId::browse_href` / `/~/…`), removes the theme cookie/CSS machinery, and wires real browse handlers with tests—foundational product structure. A is a correct but narrow consistency fix (0-based `thread_post_index`, `expect` instead of silent `unwrap_or(0)`, always-on post links) with supporting asserts, so it matters less overall.

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

Side B makes a substantial architectural change by replacing query-parameter navigation with canonical `/~/...` browse routes, centralizing URL generation/parsing in `ItemId` (`browse_href`, `from_browse_uri`), updating routing, and adding integration tests for the new behavior. Side A mainly tightens an invariant by replacing a silent fallback with `expect`, aligns documentation/tests around 0-based thread indices, and always renders the post link, which is useful but much narrower in lasting impact.

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

Side B implements a real URL-routing refactor (item paths become canonical /~/<url> routes) with new tests validating parsing and rendering, plus removes dead theme-switching code and consolidates CSS—substantive structural improvement with test coverage. Side A is a useful but narrower bugfix (deploy target and base-URL centralization) that fixes real redirect bugs but is smaller in scope and lacks new tests.

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

B introduces lasting core routing design (ItemId browse_href/from_browse_uri, /~/ paths, shared helpers, and tests) and simplifies the HTML stack, whereas much of its diff is theme/CSS deletion. A is a solid but narrower fix: centralizing get-base-url/HOSTNAME and window.location.origin for OAuth redirects plus pointing Fly deploys at staging.

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

Side A centralizes base URL generation into a shared utility, replaces multiple hardcoded host/environment checks across OAuth/login integrations, uses the current browser origin on the frontend, and updates deployment to run from the staging branch. Side B introduces cleaner browse URLs and removes the theme system, but much of the patch is feature/refactoring churn and deletion, whereas Side A directly fixes incorrect redirect behavior for custom hosts across several authentication flows.

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

Side A adds a genuine, well-tested feature (pretty `/~/` browse URLs backed by a canonical ItemId encoding) while cleanly removing an unused theme system, keeping the codebase coherent and reducing surface area. Side B's refactor swaps a bounded Deque for an unbounded List and defers capping to read time, which removes the write-time trim guarantee and risks unbounded storage growth for recent_votes, a more questionable trade-off despite its own test coverage.

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

A introduces a durable browse URL scheme (`/~/*` routes, `ItemId::browse_href`/`from_browse_uri` with normalization and tests) and deletes the entire theme subsystem (cookies, `/theme` handler, dual CSS, controls UI), replacing brittle `/?item=` redirects. B only swaps `Deque`/`VecDeque` recent-votes for append-only `List`/`Vec` with read-time capping and drops write-time trim—useful internal simplification, but narrower and leaves on-disk growth unbounded.

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

Side A introduces a lasting routing and URL design change by adding canonical browse paths (`/~/...`), centralizing link generation with `ItemId::browse_href()`, parsing browse URLs, updating redirects, and adding integration/tests for the new navigation behavior. Although it also removes the theme feature and simplifies static asset handling, the new browse URL infrastructure affects routing and link consistency across the project, whereas Side B is primarily an internal storage refactor from deque to append-only list with query-time capping and corresponding cleanup/tests.

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

B introduces a real URL-structure improvement (path-based /~/ browse routes replacing query params) with new parsing logic, tests, and removes dead theme-switching machinery, simplifying the codebase while adding genuine functionality. A is a solid but narrower feature (room create RPC simplification, removing unused visibility field) that mostly strips an unused option rather than adding new capability, making B's net contribution slightly larger in lasting design value.

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

A ships the end-to-end room-create path (CLI command, RPC, docs) and a lasting domain simplify—dropping ThreadVisibility/RoomState so rooms are a HashSet of private ids—with matching tests. B’s useful browse `/~/` URL helpers are real, but much of the patch is theme/cookie/CSS deletion and routing cleanup, which is less core product value.

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

Side A adds a substantive new capability by exposing private room creation through the CLI, wiring a new `room create` command to the existing RPC, improving user guidance, and simplifying the server model by removing the unused room visibility field and replacing the room registry with a `HashSet`. Side B mainly removes theme support and switches browsing to cleaner `/~/...` URLs with related routing and helper refactors, which is useful but largely a UI/navigation cleanup compared with the new end-to-end functionality delivered in Side A.

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

Side B strengthens type safety by threading CanonicalItemUrl through resolve_item, scope-rank computation, and pair selection, and adds Deref impls for href newtypes—reducing stringly-typed bugs and repeated CanonicalItemUrl::parse calls across the codebase. Side A is a reasonable feature swap (dropping theming for /~/ browse URLs) with tests, but it trades one feature for another rather than improving correctness or maintainability, and includes wholesale deletion of CSS/theme code that was working.

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

A introduces a durable browse URL model (`ItemId::browse_href` / `from_browse_uri`, `/~/*` routing) and removes the theme cookie/CSS stack with matching integration tests, which changes how the app is navigated long-term. B is a worthwhile type-safety refactor (Deref on href newtypes, `resolve_item` → `CanonicalItemUrl`, fewer String re-wraps) but is mostly internal plumbing without new behavior or user-facing design.

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

Side A introduces a new canonical browse URL scheme (`/~/...`), centralizes link generation with `ItemId::browse_href`, adds parsing helpers and routing for path-based browsing, updates redirects, and includes integration tests, creating a lasting user-facing navigation improvement while removing obsolete theme infrastructure. Side B improves type safety by propagating `CanonicalItemUrl` through APIs and eliminating many string conversions, but it is primarily an internal refactor with limited behavioral change compared with A's new routing and URL model.

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

Side A adds a self-contained, well-tested feature (garden ranking markdown copy) with unit tests, an integration test, a browser test, and updated docs, all without touching existing behavior. Side B mixes an undocumented removal of the theme-switching feature with a routing scheme change (query param → path-based /~/ URLs), which is riskier and less clearly scoped, and its terse '-theme' message reflects the lack of clarity in intent.

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

B establishes durable browse routing (`ItemId::browse_href` / `/~/…` paths, route wiring, parse fixes) and removes the whole theme cookie/endpoint/CSS fork in favor of one stylesheet—core navigation design. A is a solid, well-tested UX feature (CopyGardenRank + markdown formatter + UI/tests) but is incremental product surface on existing patterns, not structural lasting design.

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

Side B makes a deeper architectural improvement by introducing canonical browse URLs (`/~/...`), centralizing URL generation/parsing in `ItemId::browse_href`/`from_browse_uri`, updating redirects and routing to use those helpers, and adding tests for the new navigation behavior. Side A adds a well-implemented clipboard feature for garden rankings with new UI actions, markdown formatting, permission checks, and tests, but it is primarily a user-facing convenience feature rather than a foundational routing and URL design change.

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

Side B consolidates three parallel legacy POST endpoints (/post, /post/check, /post/redact) into the single /ui RPC dispatch path, removing duplicated auth/session logic (web_post.rs deleted entirely) and updating tests/fixtures accordingly—this is a substantive architectural simplification with real behavioral consolidation. Side A mainly swaps a cookie-based theme system for a /~/ URL-based browse route and deletes CSS themes, which is a reasonable but narrower and more cosmetic refactor (URL scheme change plus theme removal) with less overall reduction in duplicated logic.

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

Commit A lands a lasting navigation design: ItemId browse_href/from_browse_uri (with https:/ normalization and tests), a /~/ route, and call-site cleanup—plus real simplification by dropping the theme cookie/CSS stack. Commit B is valuable consolidation (fold web_post into POST /ui, WebSession, form __rpc__ migration) but mostly relocates existing ingest/check/redact behavior rather than adding comparable core design.

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

Side A introduces a new canonical browse URL scheme (`/~/...`) with `ItemId::browse_href`, parsing helpers, routing, and integration tests, replacing ad hoc query-string links and centralizing URL generation. Although it also removes theme support, the core change establishes a cleaner navigation design reused across the UI. Side B mainly refactors existing web post/check/redact flows into the `/ui` dispatcher and consolidates session handling, improving structure but with less new end-user capability.

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

Side B removes a real architectural inconsistency (dual legacy/Evidence code paths for epoch/commit rendering), simplifying and hardening the evidence system with corresponding test updates across Python and Clojure, which is a substantive correctness/maintainability improvement. Side A is a solid but narrower refactor (dropping theme switching, adding /~/ browse routes) that is useful but smaller in scope and impact than B's cross-cutting cleanup of legacy projection logic.

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

B removes legacy GitDiscovery projection paths and helper functions that invented epoch/commit history, enforcing required Evidence envelopes and schema fields on Emission while simplifying the detail pages and tests to a single source of truth. A mainly deletes the incomplete theme cookie/CSS/form machinery and renames static assets, with the /~/ browse_href routing as a useful but narrower URL cleanup.

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

Side A introduces a durable routing and URL design improvement by replacing query-based item navigation with canonical browse paths (`/~/...`), centralizing link generation/parsing in `ItemId` (`browse_href`, `from_browse_uri`), updating redirects, and adding integration tests. Side B mainly removes legacy compatibility code to make the system Evidence-only and simplifies related pages, which is a meaningful cleanup but is more of a schema transition than a broadly reusable architectural enhancement.

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

Side A replaces an admittedly unreliable, 1800-line keystroke-transition parser graph (plus its dead ParserAction module and a Playwright race test needed only for that debounced input) with a small, testable ~90-line URL parser and a simple paste-and-go form, directly fixing a stated reliability problem with a much simpler design. Side B is a more ad-hoc refactor (bare '-theme' message) that both drops the retro theme feature and simultaneously reworks routing to a '/~/' path scheme, mixing unrelated concerns with less clear justification, though it is still a reasonable and tested change.

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

A replaces an unreliable ~1800-line keystroke transition graph, ParserAction surface, live morph/race JS, and Playwright race test with a small paste-and-go URL parser that redirects to ranking—fixing core navigation and deleting lasting complexity. B mainly drops dual-theme CSS/cookies and adds `/~/` browse_href routing (useful URL design, but narrower and partly cleanup).

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

Side A replaces a large, unreliable keystroke-driven autocomplete graph with a much simpler paste-and-go flow: it removes the complex parser/action system, introduces a focused URL parser with validation and tests, updates the UI to redirect directly on successful parsing, and eliminates the associated race-prone client logic. Side B mainly refactors routing and theming by introducing canonical `/~/...` browse URLs (`browse_href`, new browse route) and removing theme infrastructure, which is useful cleanup but has less direct impact on core functionality and reliability.

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

Metadata
commit_idc_14dd365ffe226ea4e2a38912b40201220a1ca76f0e06eacee34da2e811a4a807
patch_sha256a95f1a2e9a40dbfaa99689bf38308be89dab59239887983afce61ddf91d6d747
patch_identitygit-patch-id-stable-v1:ff0e7f006f1eda3b5eb3876a51763e7b742b229f
committer_timestamp_ms1780122963000