constitution · epochs · watch · epoch 3

commit

c_01304e7d0f464a69b2

tommy-mor · sha1:d88719a17f7c508917e1f6d613f6c20a8af40e20

download patch · raw event

message

refactor(html): unify public and room new-thread forms

- Single DOM contract: #new-thread-ui-slot, #new-thread-compose, #new-thread-form,
  #new-thread-tag; shared check_ingest + post_ingest error wiring for all scopes.
- Replace ExpandPublic/ExpandRoom/SetRoomNewThreadComposeExpanded with
  ExpandNewThreadForm { room_wire } and SetNewThreadComposeExpanded { room_wire, expanded };
  room_wire "public" covers the home toolbar flow.
- SSE refresh resets #new-thread-compose form for any room_key.
- Browser test selectors updated for the unified ids.

Made-with: Cursor

comparisons involving this commit

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

Side A restores a real feature (persistent view counts) with new state (ViewStore), middleware wiring, canonical URL normalization, and a concrete integration test verifying counts and canonicalization—substantive new functionality. Side B is a clean but purely internal refactor unifying duplicate new-thread form markup/ids across public/room scopes, valuable for maintainability but lower-impact than adding a working feature with tests.

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

A restores a full product capability: ViewStore on AppState, GET middleware with path filters, query canonicalization, view counts wired through garden/forum/search/try layouts, and real integration assertions—lasting infrastructure and UX. B is a worthwhile but narrower maintainability win that unifies public/room new-thread DOM ids and HtmlUiAction variants without adding new user-facing behavior.

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

Side A restores a substantive feature by introducing a persistent ViewStore into AppState, adding middleware to count GET page views with canonicalized URLs, wiring view counts into page layouts, and replacing a stub test with integration tests that verify counting and query-order canonicalization. Side B is primarily a UI refactor that unifies public and room new-thread forms, selectors, and actions under shared IDs, improving maintainability but with less direct long-term functional impact than reintroducing durable view counting.

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

Side B is a small, targeted concurrency fix that prevents readers from stalling behind pending writers on a hot page render path, a real correctness/performance bug with clear rationale. Side A is a larger refactor unifying DOM ids/actions across public/room forms, which improves clarity but is mostly renaming/restructuring churn with no bugfix, and carries more risk of regressions across multiple files and tests.

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

B fixes a real concurrency hazard by precomputing room_members_section_markup and dropping the Tokio RwLock read guard before layout/HTML stringify, avoiding reader stall behind writers during ingest. A is a worthwhile DOM/action unify of public vs room new-thread forms, but mostly structural dedup and selector renames without the same correctness impact.

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

Side B fixes a concrete concurrency issue by precomputing `room_members_section_markup`, dropping the `tokio::sync::RwLock` read guard before expensive page layout/stringification, and avoiding reader stalls when a writer is waiting. Side A is primarily a broad refactor that unifies public and room new-thread UI IDs, actions, and markup; while it reduces duplication and standardizes behavior, it is mostly structural and also changes UI behavior rather than addressing a clear correctness or performance problem.

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

Metadata
commit_idc_01304e7d0f464a69b2e621e19c27764c983cd116801dda6aadee2e66ad72eee2
patch_sha25663a7c90777e6591a16965959242f801e0dc446606f0da38b3dc89ca72e111b5b
patch_identitygit-patch-id-stable-v1:c53ca1add69566d384f3808d3812594412a61eb3
committer_timestamp_ms1776020087000