comparison · c_fd8e599b6022 (tommy-mor) vs c_326a64125966 (tommy-mor)
Side B is an actual code change that fixes a real bug (the disabled attribute was likely being rendered even when false, incorrectly disabling the button); this is a concrete, functional fix to UI code. Side A is merely a note added to a text file (notes.tdsl) with no code or behavioral change, contributing no lasting value beyond a to-do reminder.
B makes a real UI code change in fetch_entity_panel: conditional button markup so disabled is only present while fetching, fixing attribute handling. A only appends one line of personal backlog text to notes.tdsl with no functional impact.
Side B makes a functional template change by rendering separate enabled and disabled submit buttons instead of conditionally setting a disabled attribute, affecting the fetch entity UI behavior. Side A only appends a development note to notes.tdsl ('new public thread form needs fewer words') and does not change project functionality.
comparison · c_326a64125966 (tommy-mor) vs c_c42f908efc44 (tommy-mor)
Side B is a substantive type-safety refactor that threads a CanonicalItemUrl newtype through pair selection, validation, and rank-change computation, eliminating repeated string-to-key conversions and reducing risk of mismatched string comparisons, plus adds Deref impls with a test. Side A is a trivial one-line UI tweak (conditionally omitting disabled=false) with no lasting architectural value.
Commit B is a substantive type-safety refactor: resolve_item now returns CanonicalItemUrl, call sites drop repeated CanonicalItemUrl(parse/clone) noise, pools/maps/HashSets use the newtype directly, and Deref is added on the URL wrappers—real lasting design cleanup across api/helpers, rpc, validate, and paths. Commit A only rewrites one button’s disabled attr as an @if/@else; a tiny local markup tweak with negligible ongoing impact.
Side B performs a substantial type-safety refactor by changing `resolve_item` to return `CanonicalItemUrl`, propagating canonical URL newtypes throughout validation, ranking, RPC, and connectivity code, and adding `Deref<Target=str>` implementations plus tests. This removes repeated string wrapping/parsing, reduces opportunities for mixing raw strings with canonical IDs, and improves API correctness, whereas Side A only rewrites conditional button rendering to emit a literal `disabled` attribute instead of a bound boolean.