v1.5.0 — Restore from backup, meal-plan digest, notification fixes
Upgrade notes: The schema migration (settings write lockdown) applies automatically on ./start.sh up. Hard-refresh installed-PWA and kiosk devices once after updating.
Added
- Restore from backup: the join screen can rebuild a family from a Kinboard export file — everything comes back (people, calendar, recipes, lists, plans) under a fresh join code.
- Meal-plan preview push: an optional evening notification (per-device toggle) lists tomorrow's planned meals.
- Undo now also works on the shopping kiosk (/einkaufen), including offline — restored items re-sync when the connection returns.
Security
- The browser can no longer write settings directly to the database — all changes go through the app server, closing the last path a stale or hostile client on the network could use to plant settings values. Reads and live updates are unchanged.
Fixed
- Bring!: closed the one remaining case of the v1.4.0 settings-reset fix — changing an option right after app start, before the Bring settings had loaded once, could still reset the others to defaults.
- Event reminders no longer send the same push notification twice; birthday and meal-plan digests can no longer double-send if their schedule re-runs.
- The weather settings Save button now disables again when you revert your edits or after saving.
- Event links: browser back never leaves a stale event address in the URL bar, deleting a deep-linked event can be undone like any other, and shared-link events show the right person color as soon as family data loads.
- "What's new" shows a loading shimmer instead of a blank panel, renders nested release-note lists properly, and retries sooner after a failed fetch.
- Family names are trimmed at creation, so the delete-family confirmation never demands an invisible trailing space.
Full changelog: v1.4.0...v1.5.0