constitution · epochs · watch · epoch 3

commit

c_0a9a8eab32ba3502b6

tommy-mor · sha1:c94456ff46a3245a61c4006423c1f3a4b3501770

download patch · raw event

message

Make feed catch-up stable and permission-aware

Anchor implicit feeds to durable ingest order and cover multi-user private-room visibility so concurrent posts are not missed or leaked.

Co-authored-by: Cursor <cursoragent@cursor.com>

comparisons involving this commit

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

Side B fixes a concrete correctness/security bug (feed catch-up using ingest position instead of timestamp, preventing missed posts on clock rollback and leaked private-room content after permission changes) and backs it with thorough multi-user integration tests. Side A is a solid internal-tooling refactor (per-commit vs per-author ranking with rollup) but addresses a fairness/design limitation rather than a user-facing correctness bug, making B's impact more concrete and durable.

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

B fixes real feed correctness and privacy failures by anchoring catch-up to durable ingest index (not colliding/backwards timestamps), centralizing logic in rpc_feed, and adding multi-user private-room/revoke regression tests plus a room field on posts. A is a solid redesign—pairwise-rank each commit and roll scores up, with matching UI/evidence/tests—but it is mostly an internal ranking granularity change rather than closing missed-update and leak bugs.

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

Side B fixes substantive feed correctness by introducing durable ingest-order anchoring instead of timestamp-only cutoffs, preserving permission checks, adding room metadata to feed responses, and covering multi-user/private-room edge cases with comprehensive integration tests. Side A mainly refactors ranking from contributor-level to commit-level with UI/evidence updates and tests, which is a meaningful feature but less fundamental than correcting feed consistency and visibility bugs.

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

Side A fixes a real correctness bug (implicit feed cutoff using timestamps that can collide or move backwards) with a principled ingest-order anchor, adds a room field to prevent private-content leakage, and backs this with substantial multi-user permission integration tests. Side B is a pure refactor (splitting forum.rs into submodules) plus an unrelated dev tooling script, providing organizational value but no functional fix or new guarantees, and its diff even reintroduces some inline duplication it had previously factored out.

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

A fixes real feed correctness and privacy: implicit catch-up anchors on durable ingest index (not ms timestamps), keeps visibility checks so multi-user private rooms neither drop concurrent posts nor leak revoked content, and adds room on FeedPost plus targeted integration tests. B mostly splits forum.rs into modules, inlines a few RPC helpers, and adds a macOS sample-fixture script—organizational churn without comparable behavioral value.

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

Side A fixes core feed correctness by introducing a shared `rpc_feed` implementation that anchors implicit catch-up to durable ingest order instead of timestamps, enforces per-viewer visibility checks, includes room metadata, and adds extensive integration tests covering timestamp collisions, private-room permissions, and revoked access. Side B is primarily a code organization/refactoring change that splits forum code into new files and inlines some helper calls, with only a small auxiliary profiling script added; it does not materially change project behavior.

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

Side B is a real, tested bugfix: it replaces a timestamp-based feed cutoff with an ingest-index anchor (fixing same-millisecond and clock-rollback bugs), adds room field for permission clarity, and includes substantial integration tests proving multi-user visibility correctness. Side A is purely a planning document plus a thin, mostly unused wrapper struct (RouteContext) with no behavioral change or migration completed, so it contributes intent but no delivered value yet.

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

B fixes real feed correctness and privacy: durable ingest-index anchors instead of millisecond timestamps, permission-aware multi-user room visibility, FeedPost.room, plus solid integration/CLI tests. A mostly adds a long future-refactor plan.md and a thin RouteContext wrapper over ThreadNav without finishing the ItemId migration, so it delivers far less lasting runtime value.

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

Side B implements a substantive feed correctness fix by introducing a shared `rpc_feed` path that anchors implicit catch-up to durable ingest order instead of timestamps, preserves permission filtering, adds room metadata to `FeedPost`, and includes integration tests covering timestamp collisions, private-room visibility, and revoked access. Side A mainly adds a planning document plus a thin `RouteContext` wrapper and re-export without migrating call sites or changing runtime behavior, so its lasting project impact is much smaller.

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

B fixes a real correctness bug (timestamp-based feed cutoffs failing under same-millisecond posts and clock rollback) and closes a permission-leak edge case for private rooms, backed by substantial integration tests exercising these exact scenarios. A refines pair-selection heuristics for a ranking algorithm with good test coverage, but it's an optimization/tuning change rather than a bugfix, and its value is more speculative/UX-quality than correctness-critical.

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

B fixes real correctness and permission bugs by anchoring catch-up to durable ingest index (not timestamps), so concurrent/same-ms and clock-rollback posts are not missed, and private-room visibility/revocation cannot leak or skip content; it also adds room on FeedPost and solid multi-user integration tests. A is a solid ranking heuristic refinement (attach-isolate before isolate-isolate, then zip adjacent ranks) with unit tests, but it optimizes pair suggestion quality rather than closing feed reliability/security gaps.

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

Side B fixes a correctness issue in feed catch-up by anchoring implicit pagination to durable ingest order instead of timestamps, preserving behavior across same-millisecond posts and clock rollback, while also enforcing permission-aware visibility and exposing room metadata. It refactors duplicated feed-building into a shared helper and adds comprehensive integration tests for multi-user, private-room, and permission-revocation scenarios, whereas Side A mainly improves pair-selection heuristics and ordering for ranking refinement with supporting tests.

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

Side B fixes a real correctness bug (feed cutoffs using non-monotonic timestamps and leaking/hiding private-room content across concurrent users), refactors duplicated feed logic into a shared function, and backs it with substantial targeted integration tests. Side A adds a genuinely useful Reddit-fetch worker with good design (rate limiting, OAuth, backoff) but is a new feature buildout without the bug-fix urgency, and includes a stray 'todo' file that adds no lasting value.

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

B hardens core feed catch-up by anchoring on durable ingest index (not wall-clock ms), scanning the ordered ledger for explicit since, and enforcing per-viewer scope checks so concurrent same-ms posts and private-room grants/revokes neither drop updates nor leak; it ships FeedPost.room plus multi-user integration tests for those cases. A replaces a Reddit stub with a real broker/OAuth/rate-limit/parser path and browse hooks—valuable feature work—but B’s correctness and permission fixes are more foundational lasting product value.

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

Side B fixes a subtle correctness issue in feed catch-up by anchoring implicit feeds to durable ingest order instead of timestamps, preserving behavior under same-millisecond posts and clock rollback while enforcing permission-aware visibility. It also refactors duplicated feed-building logic into a shared function, adds room metadata to feed responses, and includes comprehensive integration tests for multi-user and private-room edge cases, whereas Side A adds substantial Reddit import functionality but is primarily a new feature rather than a core correctness improvement.

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

Side B fixes a real correctness bug (timestamp-based feed cutoffs colliding/rolling back across users) with a principled ingest-index anchor, deduplicates duplicated logic into a shared rpc_feed helper, and adds substantial targeted integration tests proving multi-user permission and ordering correctness. Side A also delivers real security hardening (fail-closed votes, Secure cookies, open-redirect fixes) but is more incremental/config-oriented, whereas B's fix addresses a subtler and more consequential data-correctness/leakage bug with broader test coverage.

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

B fixes foundational feed correctness by anchoring catch-up to durable ingest index (not wall-clock ms), so same-millisecond and clock-rollback posts are not missed, and adds room-scoped permission filtering plus multi-user private-room/revoke integration tests and a room field on FeedPost. A’s auth fail-closed votes, mock-OAuth gate, Secure cookies, and open-redirect hardening are real security wins, but they are more localized hardening/UI (nav alias) and dep pinning than B’s ledger semantics change.

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

Side B refactors feed generation into a shared `rpc_feed` path and fixes a correctness bug by anchoring implicit catch-up to durable ingest order instead of timestamps, preventing missed posts during same-millisecond events or clock rollback while preserving permission checks. It also adds extensive multi-user integration tests covering private-room visibility and revoked access, whereas Side A primarily hardens authentication (fail-closed voting, Secure cookies, redirect sanitization, mock OAuth gating) and adds UI/account polish.

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

A fixes a severe, user-facing bug: a shared sentinel delegate bound on first vote silently blocked every subsequent human voter, breaking core multi-user functionality; the change is minimal, clearly scoped (Option<String> agent), removes dead sentinel code, and is verified by a concrete two-user vote test. B is also solid—refactoring duplicated feed logic into one function and fixing subtle same-millisecond/clock-rollback ordering plus permission-anchor edge cases—but the bug it fixes is rarer and less catastrophic than A's outright feature-breaking defect.

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

B replaces fragile timestamp cutoffs with durable ingest-order anchors and correct permission filtering in rpc_feed, fixing missed concurrent posts, clock-rollback gaps, and private-room leaks (including room on FeedPost). A is a real multi-user vote fix by dropping shared browser sentinel delegates for Option::None, but it is a narrower auth/UI binding cleanup than B’s core feed correctness and visibility hardening.

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

Side B refactors feed generation into a shared `rpc_feed` path and fixes a subtle correctness issue by anchoring implicit catch-up to durable ingest order instead of timestamps, while also enforcing visibility filtering and exposing room metadata in feed responses. Its integration tests cover timestamp collisions and private-room permission changes, whereas Side A primarily removes browser sentinel delegates by making pending-session agents optional to fix multi-user browser voting and simplify attribution.

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

Side B fixes a real correctness bug (implicit feed cutoffs using timestamps instead of durable ingest order, causing missed/leaked posts across concurrent multi-user activity and private-room visibility), backed by substantial targeted integration tests proving the fix. Side A is a large but mostly mechanical refactor (renaming/moving canonicalize functions, dropping '@' sigils in wire format) that improves code organization but fixes no functional bug and touches many files for consistency rather than solving a concrete defect.

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

B fixes real feed catch-up correctness and privacy bugs by anchoring on durable ingest order (not ms timestamps) and enforcing multi-user private-room visibility, backed by focused integration tests for collisions, clock rollback, and revoked grants. A is a broad worthwhile split of path vs identity and strict no-@ wire form, but much of the diff is module moves, call-site churn, and API convention updates rather than new behavioral guarantees.

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

Side B fixes a correctness issue in feed catch-up by anchoring implicit feeds to durable ingest order instead of timestamps, preventing missed posts when timestamps collide or move backwards, and filters results through permission checks to avoid leaking revoked private content. The patch also factors feed generation into a shared `rpc_feed` helper and adds targeted integration tests covering multi-user timestamp collisions and private-room visibility, whereas Side A is largely a broad API/identity refactor with behavior and representation changes rather than a focused correctness improvement.

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

Side B fixes a genuine correctness bug (feed catch-up relying on timestamps that can collide or move backwards) with a principled ingest-order anchor, deduplicates duplicated code paths into a shared rpc_feed helper, and adds thorough targeted integration tests for multi-user/private-room visibility. Side A is largely infrastructure/deploy plumbing (Dockerfile, fly.toml, CI) plus a UI/dashboard feature with generated CSS/JS, which is useful operationally but lower in durable design value and correctness impact than B's bugfix.

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

A lands durable production infrastructure (Dockerfile, fly.toml, gated deploy workflow), epoch retry/error handling, GitHub-authenticated discovery, and a tested live audit SSE/watch surface that makes the constitution process operable. B is a precise, well-tested feed fix (ingest-index anchors, private-room visibility, room on FeedPost) but is a narrower correctness patch than A’s end-to-end production and observability delivery.

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

Side B fixes a core correctness issue in feed retrieval by anchoring implicit catch-up to durable ingest order instead of timestamps, preserving correct behavior across same-millisecond posts, clock rollback, and permission changes. It also refactors the feed logic into a shared helper, includes room metadata, and adds thorough integration tests covering multi-user visibility and revoked access, whereas Side A is largely deployment, monitoring, and operational infrastructure with only a few smaller correctness improvements (such as deduplicating Git object verification and authenticated Git fetches).

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

Side B fixes a genuine correctness/security bug: feed catch-up previously relied on wall-clock timestamps, which could miss or leak posts across users due to millisecond collisions or clock rollback, and adds strong multi-user private-room permission tests proving the anchor-by-ingest-position fix. Side A is a larger feature addition (GitHub import cards, resolver refactor) plus a real bug fix for the empty external garden index, but it's more feature/UI surface than a critical correctness fix, and part of the diff is churn from moving/renaming external_resolver.rs into resolvers/.

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

B fixes foundational feed catch-up by anchoring on durable ingest index (not wall-clock ts), so same-ms and clock-rollback posts are not skipped, and adds permission-aware multi-user private-room filtering plus room on FeedPost with strong integration tests. A’s real /- empty-index fix and GitHub card renderer matter, but much of that patch is resolver relocation/UI chrome versus B’s core correctness and leak-prevention design.

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

Side B fixes a correctness issue in feed catch-up by anchoring implicit feeds to durable ingest order instead of timestamps, preventing missed posts when timestamps collide or move backwards, and preserving permission-aware behavior across private-room visibility changes. It also factors the logic into a reusable rpc_feed helper, adds room metadata to feed responses, and includes comprehensive multi-user integration tests covering concurrent ingests, permission revocation, and restoration, whereas Side A mixes one real bugfix for the external index with a larger feature/refactor for GitHub import cards and UI rendering.

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

Side A is a large mechanical refactor (REST endpoints collapsed into an RPC batch dispatcher) with lots of churn but no new correctness guarantee — it's mostly moving code around. Side B fixes a real, subtle bug (feed cutoff using wall-clock timestamps instead of durable append order, causing missed/duplicated posts under concurrent writes or clock rollback) and adds permission-aware multi-room visibility with targeted regression tests, delivering concrete lasting correctness value in a small, precise diff.

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

A is a foundational redesign: batch RPC replaces the REST surface, events/reducer separate room scope from forum thread tags (RoomCreated, ScopeId::Room, ingests_by_scope_thread), and the CLI/tests are rewired to that model. B is a high-quality but narrow correctness fix—stable feed anchors on ingest index plus permission filtering—with strong tests, yet it only hardens one path after A’s architecture is in place.

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

Side A replaces many ad hoc REST endpoints with a unified RPC batch API, restructures the CLI around scoped public/private rooms, introduces room-aware routing in events and the reducer, and factors ingest validation into a reusable module. Although it is a large refactor, it establishes a lasting architectural foundation and migrates existing functionality, whereas Side B is a focused improvement that makes feed catch-up stable under timestamp collisions and permission-aware by anchoring to durable ingest order and adding targeted tests.

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

B is a tight, correct bugfix: it replaces timestamp-based feed cutoffs with ingest-position anchors (fixing same-millisecond races and clock rollback) and adds permission-aware room visibility, backed by focused integration tests proving the exact failure modes it fixes. A vendors an entire new 'durable' crate wholesale—including marketing README, RFC docs, motivation.md, multiple examples, and a duplicated Cargo.lock—so most of its bulk is generated/boilerplate noise, with the actual server-side change (entity_store.rs, streaming replay) being comparatively small and unproven by tests for the RAM-reduction claim. Per the rubric favoring precise, necessary fixes over diffuse churn, B delivers more verified, lasting correctness per line changed.

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

Commit A adds a full RocksDB-backed durable crate, moves Reddit entity JSON off the in-memory GlobalTree into entity_db, and streams event-log replay line-by-line, which is a lasting architectural fix for startup RAM and payload retention. Commit B correctly stabilizes feed catch-up on ingest order and hardens multi-user private-room visibility with solid tests, but it is a targeted correctness fix in one API path rather than a foundational storage redesign.

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

Side A implements substantial infrastructure changes: it introduces a RocksDB-backed `durable` workspace crate, moves raw Reddit entity JSON out of the in-memory tree into a persistent `EntityStore`, and replaces whole-file event loading with streaming replay to reduce startup memory while updating reducers and tests accordingly. Side B is a solid correctness improvement—changing feed catch-up to use durable ingest order instead of timestamps, enforcing room visibility during feed generation, and adding regression tests—but it is a targeted behavioral fix rather than the broad persistence and scalability architecture added in Side A.

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

Metadata
commit_idc_0a9a8eab32ba3502b6d7cf7c1142e33918e37c38c7455e9754a8d34490d3372d
patch_sha256c4e9eaa0920aca114d659e2172a4c78de16198f987a014f38d26fa327fba019e
patch_identitygit-patch-id-stable-v1:117358497f543d3a3fc253acec2b0f95a8b958e7
committer_timestamp_ms1784403466000