From d2b0681dbb48a1e61e9cb21456b039a41ed39aae Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Sat, 11 Apr 2026 08:26:14 -0500
Subject: [PATCH] feat: Announcements (#7431)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
---
.../Announcement/AnnouncementDialog.vue | 139 ++++++++++++++++++
.../Announcements/2026-03-27_1_welcome.vue | 62 ++++++++
.../Announcements/announcements.test.ts | 37 +++++
.../Domain/Group/GroupPreferencesEditor.vue | 41 +++++-
.../Household/HouseholdPreferencesEditor.vue | 14 ++
.../Layout/LayoutParts/AppSidebar.vue | 24 +++
frontend/app/components/global/BaseDialog.vue | 21 ++-
frontend/app/composables/use-announcements.ts | 135 +++++++++++++++++
frontend/app/composables/use-groups.ts | 2 +
frontend/app/lang/messages/en-US.json | 8 +
frontend/app/lib/api/admin/admin-groups.ts | 5 -
frontend/app/lib/api/base/base-clients.ts | 29 ++--
frontend/app/lib/api/types/group.ts | 3 +
frontend/app/lib/api/types/household.ts | 4 +
frontend/app/lib/api/types/user.ts | 9 ++
frontend/app/lib/icons/icons.ts | 7 +
.../app/pages/admin/manage/groups/[id].vue | 2 +-
.../pages/admin/manage/households/[id].vue | 1 -
frontend/app/pages/group/index.vue | 60 ++++----
frontend/app/pages/user/profile/edit.vue | 9 ++
frontend/app/plugins/axios.ts | 8 +-
frontend/eslint.config.mjs | 1 +
frontend/vitest.config.js | 2 +
...20.19.07_4395a04f7784_add_announcements.py | 47 ++++++
mealie/db/models/group/preferences.py | 1 +
mealie/db/models/household/preferences.py | 2 +
mealie/db/models/users/users.py | 6 +-
mealie/schema/group/group_preferences.py | 1 +
.../schema/household/household_preferences.py | 2 +
mealie/schema/user/user.py | 5 +
.../admin_tests/test_admin_group_actions.py | 5 +-
.../test_admin_household_actions.py | 1 +
32 files changed, 631 insertions(+), 62 deletions(-)
create mode 100644 frontend/app/components/Domain/Announcement/AnnouncementDialog.vue
create mode 100644 frontend/app/components/Domain/Announcement/Announcements/2026-03-27_1_welcome.vue
create mode 100644 frontend/app/components/Domain/Announcement/Announcements/announcements.test.ts
create mode 100644 frontend/app/composables/use-announcements.ts
create mode 100644 mealie/alembic/versions/2026-03-27-20.19.07_4395a04f7784_add_announcements.py
diff --git a/frontend/app/components/Domain/Announcement/AnnouncementDialog.vue b/frontend/app/components/Domain/Announcement/AnnouncementDialog.vue
new file mode 100644
index 000000000..3f38c91c2
--- /dev/null
+++ b/frontend/app/components/Domain/Announcement/AnnouncementDialog.vue
@@ -0,0 +1,139 @@
+
+
+ Welcome to Mealie! If this is your first time seeing announcements, here's what to expect.
+
+ While we generally keep everything in our GitHub release notes,
+ sometimes certain changes require some extra attention.
+
+ Announcements are English-only; they're one-off messages from the maintainers, not a replacement for our release notes. Some elements may still be translated.
+
+ You can opt out of announcements in your user settings:
+
+ As {{ user?.admin ? "an admin" : "a household manager" }}, you can disable announcements for your entire household:
+
+ {{ user?.admin ? "You can also" : "As a group manager, you can" }} disable announcements for your entire group:
+
+ {{ $t("group.private-group-description") }}
+
+ {{ $t("announcements.show-announcements-setting-description") }}
+
+
+
+
+
+
+
+ {{ $t("announcements.show-announcements-setting-description") }} +
+