What changed
- Publish on merge. A GitHub workflow publishes to the production database when a merge to
mainchanges the data, and refreshes pages again after each production deploy. It skips cleanly until the production secrets are set. - Pages refresh on publish. A protected
/api/revalidateendpoint regenerates the site's static pages after a verified publish. - No stale copies. Each server instance checks whether newer data was published before answering, so it can't serve or bake in an old copy. If the database is unreachable, the copy in memory keeps serving.
New tests cover a reload after a publish, a publish landing mid-read, an unreachable database, and the endpoint's access check.