comparison · c_257b57c092b1 (tommy-mor) vs c_164969eeea14 (tommy-mor)
Side B delivers a real user-facing feature (account/alias management page, alias switching, re-linking OAuth) with corresponding CSS, template, and test updates, representing lasting functional value. Side A is a solid but narrow internal refactor (Rc<RefCell> -> plain HashMap + OnceLock singleton) that improves code quality and enables Send+Sync but has much smaller scope and impact than B's feature work.
B delivers a lasting product surface: /login becomes a real account page (trust weight, alias list/switch, claim forms, OAuth re-link) with shared claim UI, CSS, and test updates. A is a solid parser design fix (drop Rc<RefCell>, Send+Sync handlers, OnceLock-cached graph) but stays an internal efficiency/thread-safety refactor with less user-facing value.
Side A refactors the parser graph to be immutable after construction, removes unnecessary Rc<RefCell> indirection, makes handlers Send + Sync, and caches the graph in a OnceLock so it is built once and safely reused. Side B adds a substantial account-management UI (alias switching, claiming, OAuth relinking, styling, and page restructuring), but it is primarily a feature/UI expansion rather than a foundational runtime improvement with broad, lasting performance and thread-safety benefits.
comparison · c_164969eeea14 (tommy-mor) vs c_55d1158891d1 (tommy-mor)
B restores a real, tested feature (page view counts) end-to-end: a new ViewStore, canonicalization logic for query-order-insensitive counting, middleware wiring, and integration tests verifying counts increment and dedupe correctly across permuted URLs. A is a substantial UX rework (login->account page) with reasonable structure, but it's mostly UI/markup/CSS churn with one test assertion removed rather than strengthened, and no verification of the new alias-switching/claim flows added by the diff.
B restores cross-cutting ViewStore infrastructure (middleware increments, query canonicalization, AppState wiring) and wires real view counts into garden/forum/search/try layouts with integration tests replacing a stub—lasting platform behavior. A is a solid localized auth UX win (account page, alias switch/claim, OAuth re-link, shared claim forms) but does not add comparable systemic durability beyond /login and CSS.
Side B restores a cross-cutting feature by wiring a persistent ViewStore into AppState, adding GET middleware that canonicalizes query parameters before counting views, and propagating real view counts into many page layouts with integration tests verifying both incrementing and canonical URL behavior. Side A substantially improves the account UI by turning /login into an account management page with alias switching, alias claiming reuse, and OAuth relinking, but it is primarily a user-interface and flow enhancement rather than foundational infrastructure.