Every once in a while when I come back to an old Discourse tab in Firefox I get an ugly popup dialog saying something like “This site was just updated; want to reload?” (I don’t recall the exact words and I don’t know how to reproduce.)
What does this mean? What state do I lose when I accept it?
Discourse runs as a single-page Javascript application in your browser. The dialog box is shown when something on the server has changed (a setting that affects how the client behaves, or a version upgrade). Reloading means your browser will load the new code and settings; it’s like any client restart after upgrade. Not reloading means you could miss out on bug fixes or could be using outdated APIs to interact with the server.
I think Discourse stores all state in local (browser) storage in a way that’ll survive the update process (as well as store things server side), so nothing should be lost. But bugs happen, so there always is a non-zero risk of blowing up your local state. But it’s a small enough risk.
Having checked the relevant source code it looks like you’ll only ever see this if you left a browser tab open for 24 hours or longer. Normally updates are applied transparently as you browse the site.