comparison · c_f10e7b043e68 (tommy-mor) vs c_5696b828c728 (tommy-mor)
Side A is a substantive code refactor of the URL canonicalization engine—removing the old combinator-based engine.rs and rewiring registry.rs to a new graph/parse-based architecture, with documentation updated to match—representing real, functional lasting change to core logic. Side B is purely documentation/plan-file alignment (removing @ syntax from prose docs) with no code changes, which is useful for coordination but has less durable engineering value than an actual module refactor.
Side A replaces the composable ParsedUrl/engine URL normalizer with a graph-based canonicalization API (registry rewrite, engine removal, hierarchy/breadcrumbs via graph), which is lasting core identity logic; Side B only aligns prose/docs (DSL.txt, GUIDE.sorter, plan.md) on wire identity without @—useful consistency but no runtime behavior.
Side A restructures the URL canonicalization implementation by replacing the old rule engine with a graph- and parser-based architecture (`graph`/`parse`), simplifying the public registry API to delegate canonicalization and breadcrumb logic, and updating module organization and tests. Side B only updates documentation to reflect identity and API conventions, improving clarity but not changing project behavior or implementation.
comparison · c_5696b828c728 (tommy-mor) vs c_8c6a5e2e4a54 (tommy-mor)
Side B ships substantial, functional code: cookie-based web session auth, a new /post web-ingest endpoint, room-scoped thread views/routing, and updated router wiring—real, working features that expand the product surface. Side A is valuable but purely documentation alignment (DSL.txt/GUIDE.sorter/plan.md wording fixes) with no functional change, and Side B is weakened somewhat by including an unpolished 'plan2.md' AI-chat transcript as noise, but its actual Rust/routing changes still represent more durable, load-bearing functionality than the doc-only patch.
B delivers substantial lasting product value: session cookies + web login/logout, /post web ingest, private-room ACL-gated pages and thread/post/expand routes, compose forms, and home navigation wired through the real axum/HTML/auth stack. A only realigns DSL/GUIDE/plan.md prose and examples with the no-@ wire identity model—useful consistency, but documentation churn with no runtime behavior change.
Side B adds substantial application functionality: browser session cookies, login/logout flows, web posting wired into the existing RPC path, room-aware thread views, routing, and UI handlers that enable authenticated web use rather than just CLI access. Side A is a documentation-only update that usefully aligns the DSL, guide, and plan with the new wire identity model (removing `@` from API examples and clarifying `--delegate`), but it does not change project behavior.
comparison · c_cf0a514b261a (tommy-mor) vs c_5696b828c728 (tommy-mor)
Side A removes actual dead code in a code path (a redundant guard in apply_vote), verifies the correctness rationale, and updates a test to match real behavior with clear reasoning about invariants—this is a small, precise, functional cleanup. Side B is a large documentation-only rewrite that improves internal consistency of docs/plans but changes no code behavior and carries risk of documentation drift versus actual implementation; it's valuable but purely informational rather than a lasting code-level fix.
A removes dead zero-ratio early-return logic from apply_vote and corrects the test to the real behavior (items/pairs still registered; zero-weight edges skipped), a precise reducer cleanup. B only rewrites DSL/GUIDE/plan docs to drop @ from wire identity—useful alignment, but documentation churn without runtime effect.
Side A makes a behavioral code change by removing a redundant early return in `GroupState::apply_vote`, allowing items and voted pairs to be registered even when clamped ratios become zero while still relying on `add_edge_weight` to skip zero-weight edges. It also updates the test to verify the new, more consistent reducer behavior. Side B is an extensive documentation update aligning guides and plans with the current identity model, but it does not change project behavior.
comparison · c_b8e80699547c (tommy-mor) vs c_5696b828c728 (tommy-mor)
Side A adds a standalone reddit.rs API client that appears unintegrated into the project (no evidence of wiring into the main app, generic boilerplate that could apply to any project), with a vague 'nice' commit message suggesting low intentionality. Side B is a coherent, well-documented refinement of the project's core identity/wire-format design across DSL.txt, GUIDE.sorter, and plan.md, fixing a real inconsistency (removing @ from wire identity) that affects how the actual system's API and DSL parser behave, providing lasting clarity for future contributors.
A adds a full Reddit API client (rate limiting, HTTP handling, and typed post/comment serde models with helpers)—substantial reusable runtime code. B only realigns docs (DSL.txt, GUIDE.sorter, plan.md) on wire identity without @; useful consistency, but no behavioral or structural code change.
Side A adds a substantial new `reddit.rs` module implementing a reusable Reddit API client with rate limiting, HTTP request handling, structured serde models for posts/comments, custom deserializers, and helper methods for extracting typed data. Side B improves documentation by aligning the DSL and API identity conventions (removing `@` from wire formats, updating CLI examples, and clarifying bearer/delegate behavior), but it does not change runtime behavior or project capabilities.
comparison · c_59974b9da42a (tommy-mor) vs c_5696b828c728 (tommy-mor)
Side A performs a substantive refactor of forum.rs into focused submodules (access.rs, ingest.rs, nav.rs, new_thread.rs, room_members.rs), improving code organization and maintainability of real application logic, plus adds a useful diagnostic tool (sample-fixture). Side B only edits documentation/plan text files (DSL.txt, GUIDE.sorter, plan.md) with no code changes, which is lower-impact churn on prose rather than lasting code structure improvement.
A lasting structural win: forum HTML is split into real modules (nav, access, ingest, room_members, new_thread) with clear seams, plus a useful sample-fixture helper—more than move churn despite inlined RPC helpers. B only realigns DSL/GUIDE/plan prose to the no-@ wire identity model; valuable correctness for readers, but docs-only and no runtime or architecture change.
Side A introduces substantial code organization by extracting forum functionality into dedicated modules (`access.rs`, `ingest.rs`, `nav.rs`, `new_thread.rs`, `room_members.rs`) and adds a reusable `sample-fixture` debugging tool integrated into the build tasks. Although some changes inline helper calls, the commit creates reusable navigation, access-control, rendering, and composition components that support future development, whereas Side B is limited to documentation updates aligning identity and wire-format conventions without changing project behavior.