comparison · c_2dc96aace098 (tommy-mor) vs c_8fdd9b86c77f (tommy-mor)
Commit A introduces substantial new functionality and architectural changes. It adds a new RocksDB-backed durable storage crate, moves raw Reddit entity payloads out of in-memory structures into persistent storage, changes replay to stream the event log line-by-line to reduce startup memory usage, updates application state and Reddit import paths to use the new storage layer, adds tests, and integrates the new crate into the workspace and build. These changes materially affect performance, persistence, memory usage, and project architecture. Commit B is a small cleanup that removes a few UI elements and adjusts CSS gradients for the voting slider, with only minor presentation impact.
Commit A introduces a substantial new subsystem: a full RocksDB-backed persistence layer (the new `durable` crate with maps, vectors, nested collections, tests, docs, and examples), integrates it into the server (entity storage, event replay streaming, state changes), and refactors core data flow. This is a major architectural and performance improvement. Commit B is minor UI/CSS cleanup and removal of small elements, with negligible impact on functionality.
Commit A introduces a substantial architectural change: adds a full RocksDB-backed `durable` workspace crate (with maps, vectors, nesting, tests, docs, examples), integrates it into the server, offloads entity payloads to disk, and rewrites event log replay to stream line-by-line for reduced RAM usage. This spans many new modules and core state changes. Commit B contains only minor UI/CSS tweaks and small HTML removals. The scope, complexity, and impact of A vastly exceed B.
comparison · c_8fdd9b86c77f (tommy-mor) vs c_9e1ff4fc0186 (tommy-mor)
Commit A makes small but user-visible changes: it removes redundant UI elements from the vote page and fixes the vote slider gradient logic so the highlighted side matches the selected winner. Although labeled as 'nits', it changes application behavior and presentation. Commit B is dominated by workspace-wide rustfmt reformatting with a few tooling improvements (pinning rustfmt/clippy, adding VS Code settings, and a minor CSS cleanup). Those changes improve developer experience and consistency but have much less impact on the project's functionality.
Commit A is a small cleanup: removing a few UI elements and tweaking CSS gradients. Commit B, while largely non-functional, applies workspace-wide formatting, fixes lint/tooling issues, pins toolchain components, adds editor configuration, and cleans up duplicated CSS. These changes significantly improve maintainability, consistency, and developer experience across the entire project, making it far more impactful overall.
Commit B performs a workspace-wide rustfmt run affecting many source files, improves code consistency, pins rustfmt and clippy in rust-toolchain.toml to stabilize tooling, adds VS Code configuration for correct rust-analyzer toolchain usage, and fixes/cleans related code and CSS. This impacts a large portion of the codebase and developer workflow. Commit A is a small UI/CSS tweak and removal of some markup/functions labeled as 'nits', with limited scope. Therefore B contributes substantially more overall.
comparison · c_2dc96aace098 (tommy-mor) vs c_8fdd9b86c77f (tommy-mor)
Side A implements a substantive architectural change: it vendors a RocksDB-backed durable crate, moves large Reddit JSON payloads out of the in-memory GlobalTree into an EntityStore, and switches event-log loading from load-all-into-memory to a streaming line-by-line replay, with accompanying tests and integration updates across reddit.rs, reducer.rs, state.rs, and event_log.rs. Side B is a small cosmetic 'nits' commit that removes two UI elements and flips CSS gradient directions on vote sliders, with no functional or architectural impact.
Side A delivers a lasting architectural fix: Reddit entity JSON moves out of in-memory GlobalTree into a RocksDB-backed EntityStore, plus streaming event-log replay that cuts startup RAM. Side B only removes minor vote-page markup and flips slider gradient CSS—pure UI nits with negligible lasting impact.
Side A introduces substantial new functionality: it adds a durable RocksDB-backed storage crate, moves raw Reddit entity JSON out of in-memory state into an EntityStore, changes replay to stream the event log line-by-line to reduce startup memory, and updates application logic and tests to use the new persistence model. Side B is limited to UI cleanup and CSS gradient tweaks plus removal of a few navigation/label elements, with no comparable architectural or functional impact.
Side A introduces a substantial new persistence layer (new `durable` crate with RocksDB-backed collections), adds `EntityStore`, and refactors event replay to streaming (`replay` replacing bulk `load_all`), fundamentally improving memory usage and architecture. Side B only removes minor UI elements and tweaks CSS gradients, with no impact on core functionality.
Side A introduces a full `durable` workspace crate (RocksDB-backed `DurableMap`/`DurableVec` with tests, examples, and docs), adds an `EntityStore` to offload raw JSON from memory to disk, and replaces bulk `load_all` with streaming `replay` to reduce startup RAM—substantial architectural improvements affecting persistence and memory usage across server modules. Side B only removes minor HTML text and tweaks CSS gradient directions, providing cosmetic changes with no structural impact.
comparison · c_8fdd9b86c77f (tommy-mor) vs c_9e1ff4fc0186 (tommy-mor)
Side B is a substantial, workspace-wide rustfmt pass plus real tooling fixes (pinning rustfmt/clippy components in rust-toolchain.toml, adding .vscode settings for rust-analyzer, and deduplicating a redundant CSS rule), improving consistency and dev workflow across the whole codebase. Side A is a tiny, narrowly-scoped 'nits' commit that removes some UI elements and swaps CSS gradient stop ordering, which is minor and even partially redundant with/overlaps B's cleanup of the same CSS block.
A makes targeted UI cleanups (removing unused vote_back_nav, redundant legend/scope copy) plus a concrete slider gradient direction fix in sorter.css. B is almost entirely rustfmt whitespace/import churn across durable/ and server/, with only minor lasting bits (toolchain components pin, vscode settings, one duplicate CSS merge) that do not outweigh the noise.
Side B mostly consists of workspace-wide rustfmt changes, but it also makes lasting tooling improvements by pinning the `rustfmt` and `clippy` components in `rust-toolchain.toml`, adding VS Code settings to ensure rust-analyzer uses the project toolchain, and removing a duplicate CSS rule. Side A is primarily UI cleanup, removing contextual text from the voting page and flipping slider gradient directions in CSS, which is comparatively cosmetic and less broadly valuable.
B adds lasting project hygiene by pinning rustfmt/clippy in rust-toolchain.toml and standardizing tooling (plus minor CSS rule cleanup), whereas A mainly removes UI elements (e.g., vote scope text, legend span, back nav) and tweaks gradient colors, which is largely cosmetic and potentially reduces functionality.
Side B pins `rustfmt` and `clippy` in `rust-toolchain.toml`, adds VS Code settings to enforce the project toolchain, and standardizes formatting across the workspace—improving reproducibility and developer experience long-term. Side A mostly removes small UI elements (e.g., deleting the vote scope paragraph and back-nav function) and tweaks CSS gradients, which are comparatively minor and cosmetic.