Skip to content

Added notification to different providers#191

Merged
javedh-dev merged 18 commits intodevfrom
feature/notifications
Mar 17, 2026
Merged

Added notification to different providers#191
javedh-dev merged 18 commits intodevfrom
feature/notifications

Conversation

@javedh-dev
Copy link
Owner

No description provided.

Javed Hussain and others added 15 commits February 14, 2026 14:02
Create a /settings route (+layout, +page) implementing a config form
using superforms and Zod, theme/locale handling, and persistence via
saveConfig. Add SettingsFeatureToggle, SettingsSectionHeader and
SettingsSelectField components and minor Header import cleanup.
Add AGENTS.md guide for AI coding agents and add the "nav_settings"
i18n key to multiple locale files.
Support testing and sending for webhook and Gotify; refactor provider UI
into per-type forms (Email, Webhook, Gotify). Update domain schemas,
backend services and API routes to handle multiple provider types. Add
config helper and boolean config handling and adjust settings UI/store.
Copilot AI review requested due to automatic review settings March 16, 2026 15:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a new notification system with configurable delivery providers (email/webhook/gotify) and updates the UI to consume API-backed notifications and manage provider settings.

Changes:

  • Adds notification + notification-provider domain models (Zod schemas/types) and exports them via the domain index.
  • Reworks the notifications dropdown to fetch/mark/clear notifications via API and adds provider-management UI (forms, testing dialog, cron schedule input).
  • Adds DB migration for notifications/providers, server startup scheduler initialization, and various formatting/i18n/message updates.

Reviewed changes

Copilot reviewed 66 out of 442 changed files in this pull request and generated 20 comments.

Show a summary per file
File Description
src/lib/domain/reminder.ts Changes reminder type constants and removes localized label helper.
src/lib/domain/notification.ts Adds notification domain model + Zod schema.
src/lib/domain/notification-provider.ts Adds provider config schemas for email/webhook/gotify.
src/lib/domain/index.ts Re-exports notification domain types/constants.
src/lib/domain/config.ts Adds boolean config key set + notification-related config fields.
src/lib/config/env.server.ts Adds APP_URL + APP_SECRET to server env config.
src/lib/components/ui/switch/switch.svelte Adds a Switch UI wrapper component.
src/lib/components/ui/switch/index.ts Exports Switch component.
src/lib/components/ui/form/form-field.svelte Formatting update to children render call.
src/lib/components/ui/form/form-element-field.svelte Formatting update to children render call.
src/lib/components/ui/accordion/index.ts Adds Accordion component exports.
src/lib/components/ui/accordion/accordion.svelte Adds Accordion Root wrapper.
src/lib/components/ui/accordion/accordion-trigger.svelte Adds Accordion Trigger wrapper.
src/lib/components/ui/accordion/accordion-item.svelte Adds Accordion Item wrapper.
src/lib/components/ui/accordion/accordion-content.svelte Adds Accordion Content wrapper.
src/lib/components/layout/Notifications.svelte Replaces local reminder/alert notifications with API-backed notifications + actions.
src/lib/components/layout/Header.svelte Shows notifications conditionally and routes Settings to /settings.
src/lib/components/layout/DashboardTabs.svelte Formatting-only tab definition changes.
src/lib/components/layout/DashboardNav.svelte Formatting-only nav entry changes.
src/lib/components/layout/AppTable.svelte Formatting-only derived pagination expansion.
src/lib/components/feature/vehicle/VehicleDetailsModal.svelte Formatting-only text wrapping changes.
src/lib/components/feature/settings/WebhookProviderForm.svelte Adds webhook provider config form UI.
src/lib/components/feature/settings/TestProviderDialog.svelte Adds provider test dialog UI + API call.
src/lib/components/feature/settings/SettingsSelectField.svelte Adds reusable select field component.
src/lib/components/feature/settings/SettingsSection.svelte Adds accordion-based settings section wrapper.
src/lib/components/feature/settings/SettingsModal.svelte Formatting-only options list changes.
src/lib/components/feature/settings/SettingsForm.svelte Removes old settings form implementation.
src/lib/components/feature/settings/SettingsFeatureToggle.svelte Adds reusable feature-toggle field component.
src/lib/components/feature/settings/SettingFormSection.svelte Adds accordion item wrapper for settings sections.
src/lib/components/feature/settings/ProviderCard.svelte Adds provider card UI (enable toggle, edit/delete/test actions).
src/lib/components/feature/settings/NotificationProvidersSettings.svelte Adds provider management page section (CRUD, schedule, test/send).
src/lib/components/feature/settings/GotifyProviderForm.svelte Adds gotify provider config form UI.
src/lib/components/feature/settings/EmailProviderForm.svelte Adds email provider config form UI.
src/lib/components/feature/settings/CronInput.svelte Adds cron expression input with presets and basic validation.
src/lib/components/feature/reminder/ReminderList.svelte Minor formatting change for recurrence end date display.
src/lib/components/feature/reminder/ReminderForm.svelte Removes localized reminder label usage; uses REMINDER_TYPES labels + hardcoded strings.
src/lib/components/feature/overview/MileageChart.svelte Formatting-only date formatter expansion.
src/lib/components/feature/overview/CostChart.svelte Formatting-only date formatter expansion.
src/lib/components/feature/overview/AreaChart.svelte Changes skeleton container height class.
src/lib/components/feature/maintenance/MaintenanceLogList.svelte Formatting-only renderSnippet call expansion.
src/lib/components/feature/insurance/InsuranceList.svelte Changes skeleton max-width utility class.
src/lib/components/feature/data-export-import/DataExportImport.svelte Formatting-only title wrapping change.
src/lib/components/feature/auth/profile-form.svelte Formatting-only Zod refine message object expansion.
src/lib/components/app/loading.svelte Formatting-only message wrapping change.
src/lib/components/app/DeleteConfirmation.svelte Formatting-only message wrapping change.
src/lib/components/app/AutocompleteInput.svelte Removes unused i18n import.
src/hooks.server.ts Initializes notification scheduler at server startup.
scripts/seed.ts Adds db seeding script entrypoint.
pnpm Adds a file that appears to contain an accidental shell error output.
package.json Updates deps; adds node-cron/nodemailer and type packages.
migrations/meta/_journal.json Adds migration journal entry for notification system.
migrations/meta/20260316065336_snapshot.json Adds Drizzle snapshot for new migration.
migrations/20260316065336_add_notification_system.sql Adds notifications + notification_providers tables.
migrations/20260120190820_config_changes.sql Adds statement breakpoints to config inserts.
messages/ar.json Adds nav_settings translation.
messages/de.json Adds nav_settings translation.
messages/en.json Removes many existing translations; adds notification mark-all-read strings.
messages/es.json Adds nav_settings translation.
messages/fi.json Adds nav_settings translation.
messages/fr.json Adds nav_settings translation.
messages/hi.json Adds nav_settings translation.
messages/hu.json Removes many existing translations; adds nav_settings translation.
messages/it.json Adds nav_settings translation.
AGENTS.md Adds contributor guide (includes formatting rules).
.prettierrc Switches to spaces (useTabs false) and sets tabWidth=2.
.env.example Adds ENABLE_CRON_JOBS and APP_SECRET docs.
Comments suppressed due to low confidence (1)

messages/en.json:1

  • This file appears to have had a very large number of existing translation keys removed (the JSON now ends almost immediately after the pollution recurrence strings). If Paraglide generates message functions from this file, removing keys will cause compile failures wherever those messages are still referenced. If this was not intentional, restore the missing keys (or re-run the i18n generation workflow without dropping entries).
{

You can also share your feedback on Copilot code review. Take the survey.

Copilot AI review requested due to automatic review settings March 17, 2026 17:04
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a notification system with configurable delivery providers (email/webhook/gotify), along with UI updates to display in-app notifications and manage provider settings.

Changes:

  • Introduces domain schemas/models for notifications and notification providers (including config validation).
  • Adds UI for in-app notifications and provider management (create/edit/test/toggle, schedule input).
  • Adds DB migration for notifications/provider tables and wires server startup to initialize a notification scheduler.

Reviewed changes

Copilot reviewed 64 out of 442 changed files in this pull request and generated 17 comments.

Show a summary per file
File Description
src/lib/domain/notification.ts Adds notification constants, type, and Zod schema
src/lib/domain/notification-provider.ts Adds provider types and config schemas (email/webhook/gotify)
src/lib/domain/index.ts Re-exports new notification domain types/constants
src/lib/domain/config.ts Adds boolean config key set and new schedule config field
src/lib/config/env.server.ts Adds BASE_URL formatting, introduces APP_SECRET
src/lib/components/ui/switch/switch.svelte Adds Switch wrapper component
src/lib/components/ui/switch/index.ts Switch barrel export
src/lib/components/ui/form/form-field.svelte Formatting/structure change for render snippet
src/lib/components/ui/form/form-element-field.svelte Formatting/structure change for render snippet
src/lib/components/ui/accordion/index.ts Adds Accordion barrel export
src/lib/components/ui/accordion/accordion.svelte Adds Accordion Root wrapper
src/lib/components/ui/accordion/accordion-trigger.svelte Adds Accordion Trigger wrapper
src/lib/components/ui/accordion/accordion-item.svelte Adds Accordion Item wrapper
src/lib/components/ui/accordion/accordion-content.svelte Adds Accordion Content wrapper
src/lib/components/layout/Notifications.svelte Replaces reminder/alert derived notifications with API-backed notifications UI
src/lib/components/layout/Header.svelte Shows notifications conditionally and routes to /settings
src/lib/components/layout/DashboardTabs.svelte Formatting tweak for tabs array
src/lib/components/layout/DashboardNav.svelte Formatting tweak for nav items
src/lib/components/layout/AppTable.svelte Formatting tweak for derived pagination
src/lib/components/feature/vehicle/VehicleDetailsModal.svelte Formatting tweaks
src/lib/components/feature/settings/WebhookProviderForm.svelte Adds webhook provider config form
src/lib/components/feature/settings/TestProviderDialog.svelte Adds provider test dialog
src/lib/components/feature/settings/SettingsSelectField.svelte Adds reusable select field component
src/lib/components/feature/settings/SettingsSection.svelte Adds settings section with accordion layout
src/lib/components/feature/settings/SettingsModal.svelte Formatting tweak for options array
src/lib/components/feature/settings/SettingsForm.svelte Removes old settings sheet form implementation
src/lib/components/feature/settings/SettingsFeatureToggle.svelte Adds reusable feature toggle field
src/lib/components/feature/settings/SettingFormSection.svelte Adds accordion-based form section component
src/lib/components/feature/settings/ProviderCard.svelte Adds provider card (toggle/edit/delete/test)
src/lib/components/feature/settings/NotificationProvidersSettings.svelte Adds provider management page/section and schedule input
src/lib/components/feature/settings/GotifyProviderForm.svelte Adds gotify provider config form
src/lib/components/feature/settings/EmailProviderForm.svelte Adds email provider config form
src/lib/components/feature/settings/CronInput.svelte Adds cron input with presets and basic validation
src/lib/components/feature/reminder/ReminderList.svelte Formatting tweak
src/lib/components/feature/reminder/ReminderForm.svelte Changes reminder type label rendering
src/lib/components/feature/overview/MileageChart.svelte Formatting tweak
src/lib/components/feature/overview/CostChart.svelte Formatting tweak
src/lib/components/feature/overview/AreaChart.svelte Adjusts loading skeleton container height class
src/lib/components/feature/maintenance/MaintenanceLogList.svelte Formatting tweak
src/lib/components/feature/insurance/InsuranceList.svelte Adjusts skeleton max width utility class
src/lib/components/feature/data-export-import/DataExportImport.svelte Formatting tweak
src/lib/components/feature/auth/profile-form.svelte Formatting tweak for refine error objects
src/lib/components/app/loading.svelte Formatting tweak
src/lib/components/app/DeleteConfirmation.svelte Formatting tweak
src/hooks.server.ts Initializes notification scheduler during server startup
pnpm Adds a file that appears to be an accidental shell error capture
package.json Adds nodemailer/node-cron deps and bumps toolchain versions
migrations/meta/_journal.json Registers new migration snapshot entry
migrations/meta/20260316065336_snapshot.json Adds new migration snapshot metadata
migrations/20260316065336_add_notification_system.sql Creates notifications + notification_providers tables
migrations/20260120190820_config_changes.sql Adds statement breakpoints to existing config migration
messages/*.json Adds nav_settings and new notification strings (partial locales)
AGENTS.md Adds developer/agent contribution guide
.prettierrc Switches formatting to spaces (useTabs=false)
.env.example Adds BASE_URL and APP_SECRET examples

You can also share your feedback on Copilot code review. Take the survey.

@javedh-dev javedh-dev merged commit 87ea869 into dev Mar 17, 2026
1 check passed
@javedh-dev javedh-dev deleted the feature/notifications branch March 17, 2026 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants