comparison · c_b447fc224eaf (tommy-mor) vs c_257b57c092b1 (tommy-mor)
Side B makes a substantive engineering improvement: it removes unnecessary Rc<RefCell<>> indirection in favor of direct HashMap ownership, adds Send+Sync bounds, and caches the graph in a OnceLock instead of rebuilding it on every parse call, improving both performance and correctness. Side A is purely additive CSS styling with no logic changes, useful but lower-impact and more superficial than B's architectural fix to the parser's core data structures.
B refactors the core parser graph from Rc<RefCell<Node>> to owned Nodes with Send+Sync handlers and OnceLock caching, fixing rebuild-on-every-parse overhead and enabling safe sharing; A only adds a new static CSS file of presentational rules with no logic or bugfix.
Side B makes a substantive architectural improvement by replacing the parser graph's Rc<RefCell>-based mutable structure with an immutable HashMap, requiring handlers to be Send + Sync, and caching the graph in a OnceLock so it is built once instead of on every parse. Side A only adds a new CSS stylesheet with presentation rules, which improves appearance but does not change core behavior or fix functionality.
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.