feat(alerts): Threshold Alert Engine, Notification Center & Release Packaging (M5 / Issue #24) #26

Merged
gronod merged 2 commits from feat/24-threshold-alerts into milestone/m5-alerts-hardening 2026-09-08 14:04:19 +01:00
2 Commits
Author SHA1 Message Date
gronodandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 073d4036c7 ci: add release packaging job producing MacMonitor-intel-x86_64.zip on tags
Add a release-package job (gated on v* tags, after build-and-test) that
builds the Release configuration for x86_64, ad-hoc signs the app bundle so
UNUserNotificationCenter works in the distributed build, archives
MacMonitor.app via ditto, uploads it as a workflow artifact, and creates a
Gitea release with the zip attached via the API token.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-08 13:58:09 +01:00
gronodandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> a7f13542ae feat(alerts): implement threshold alert engine and Notification Center integration (fixes #24)
Introduce Sources/Intelligence with an @Observable AlertEngine that evaluates
five configurable rules (CPU temperature, fan stall, low memory, low storage,
low battery) against a Sendable AlertEvaluationContext built after each
telemetry decode pass. Breached conditions dispatch through a mockable
AlertNotificationDispatching protocol to UNUserNotificationCenter with
per-alert cooldowns, edge-triggered resolve detection, and a capped
in-memory history log.

Add a macOS Settings scene (AlertsSettingsView) for thresholds, cooldown,
permission status, and test notifications; a new Alerts and Notifications
sidebar tab with active-alert cards and the history log; header and menu bar
warning indicators; and an AppNavigationBus so notification actions
(Open MacMonitor, View Processes) steer the main window.

Also fix the memory snapshot decode to read memoryPressureStatus so
pressureLevel is populated correctly.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-08 13:53:48 +01:00