Commit Graph
100 Commits
Author SHA1 Message Date
MacRimiandClaude Opus 4.7 4e26c5942f Reset update-type cooldowns on NotificationManager.start()
When the user reinstalls or restarts the Monitor (deploy of a new
beta AppImage), they expect to see a fresh "what's available now"
summary in Telegram/Gotify/etc. instead of silence — even if the
24h anti-spam cooldown for `update_summary` etc. hasn't expired yet.

Without this, the operator had to wait up to 24h after every
deploy before the next `update_summary`, `proxmenux_update`,
`post_install_update`, `pve_update`, `update_available`,
`nvidia_driver_update_available` or `secure_gateway_update_available`
notification fired. The 24h cooldown is the right default for steady
state (don't pester the user every poll cycle with the same "177
packages pending" reminder), but a service restart is an explicit
signal that the user wants a fresh status report.

- New _UPDATE_EVENT_TYPES_RESET_ON_START tuple lists the event types
  to clear (everything in the "*_update*" + "update_*" family).
- New _reset_update_cooldowns_on_start() runs at start() right after
  the running flag flips, before watchers/dispatcher come up.
- Patterns match both fingerprint shapes:
    "<host>:<entity>:<event_type>:"               trailing-colon form
    "<host>:<entity>:<event_type>"                no-suffix form (managed installs)
- In-memory `_cooldowns` cache is also pruned so the live dispatcher
  picks up the reset immediately, without waiting for the next
  `_load_cooldowns_from_db()` cycle.

Non-update cooldowns (auth_fail, log_critical_*, disk errors, …) are
preserved so a restart doesn't unleash a backlog of stale alerts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 01:03:44 +02:00
MacRimiandClaude Opus 4.7 06e6ae417e Fix notification dispatch: NameError in _dispatch_to_channels (Quiet Hours)
`_dispatch_to_channels` does NOT receive the NotificationEvent object —
only the rendered primitives (title, body, severity, event_type, …).
The Quiet Hours + Daily Digest merge introduced two references to
`event.severity` / `event` inside this function, which raised
`NameError: name 'event' is not defined` for every event passing
through dispatch.

The dispatch loop swallows the exception with a broad `except`, so the
visible symptom was "the Test button works but no real event ever
arrives" — both for community beta users (multiple reports on
Telegram, 9-18 May) and verified live on a test host (id 905 in
notification_history confirms the pipeline post-fix).

- _dispatch_to_channels: read `severity` / `event_type` directly
  instead of `event.severity` / `event.event_type`.
- _should_buffer_for_digest: take (ch_name, severity, event_type)
  primitives instead of a NotificationEvent.
- _buffer_digest_event: same — take (ch_name, event_type,
  event_group, severity, title, body).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 00:23:29 +02:00
MacRimiandClaude Opus 4.7 6eb1312c61 1.2.1.1-beta: notification + LXC + post-install fixes
- flask_notification_routes: PVE webhook X-Webhook-Secret written in
  standard base64 so PVE can decode it (GH #198)
- notification_channels: Gmail SMTP App Password handling — normalize
  tls_mode (None/empty → starttls), reject creds without host (false-
  positive sendmail delivery), surface "AUTH not advertised" hint
- notification_events: is_vzdump_active_on_host() reads /var/log/pve/
  tasks/active directly so backup_start fallback and vm_shutdown
  suppression survive a Monitor restart mid-backup
- notification_templates: extract --storage flag from vzdump log →
  "PBS-Cloud: vm/104/…" instead of generic "PBS:" prefix when multiple
  PBS endpoints exist
- health_monitor: pve_storage_capacity + zfs_pool_capacity respect
  per-item dismiss (don't keep category WARNING/CRITICAL after user
  dismisses); updates_check cache invalidated when /var/log/apt/
  history.log mtime advances
- lxc_mount_points: PVE volume size from subvol quota (df via
  /proc/<host_pid>/root/<target> + lxc.conf size=NNNG fallback);
  host_source_state detects "host detached" zombie binds; per-mount
  subprocess work parallelised via ThreadPoolExecutor so a CT with
  many bind mounts doesn't trip the Caddy 3s reverse-proxy timeout
- virtual-machines: "host detached" badge on bind mounts whose host
  source path disappeared
- auto/customizable_post_install: log2ram FUNC_VERSION 1.1 → 1.2; new
  log2ram-check.sh vacuums journal + truncates non-rotating logs
  (pveproxy/access.log, pveam.log) instead of only calling
  `log2ram write` (which leaves the tmpfs full); auto flow gains the
  missing SystemMaxUse in /etc/systemd/journald.conf

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 00:06:49 +02:00
MacRimi 81844fa456 Update AppImage 2026-05-18 18:09:15 +02:00
MacRimi 4bedeb9fcd Update appimage 2026-05-18 17:47:25 +02:00
MacRimi ab5c7093eb Update AppImage 2026-05-10 05:19:36 +02:00
MacRimi b4e8c5101a Update AppImage 2026-05-10 05:11:51 +02:00
MacRimi 911886b90c Update AppImage 2026-05-10 05:00:00 +02:00
MacRimi c14b72456f Update AppImage 2026-05-10 04:46:33 +02:00
MacRimi 6d7e06a0d2 Update AppImage 2026-05-09 23:37:46 +02:00
MacRimi 0288c14a29 Update AppImage 2026-05-09 23:22:45 +02:00
MacRimi 748334eed6 Update beta_version.txt 2026-05-09 19:10:56 +02:00
MacRimi 07301ea599 Update beta_version.txt 2026-05-09 19:10:05 +02:00
MacRimi 2f919de9e3 update beta ProxMenux 1.2.1.1-beta 2026-05-09 18:59:59 +02:00
MacRimi 5ed1fc44fd Update 1.2.1.1-beta 2026-05-09 18:31:47 +02:00
MacRimi da2e89bc94 Create CHANGELOG.md 2026-04-21 21:22:34 +02:00
MacRimi 5fea839e34 Delete CHANGELOG.md 2026-04-21 21:22:01 +02:00
MacRimi c742393efc Update CHANGELOG.md 2026-04-21 21:15:31 +02:00
MacRimi 5bee471884 Update version.txt 2026-04-21 21:07:15 +02:00
MacRimi 77eb8c7b78 update pci_passthrough_helpers.sh 2026-04-21 21:06:22 +02:00
MacRimi 20c1140676 Create build-appimage-manual.yml 2026-04-19 19:33:58 +02:00
MacRimi 899eb61dcf update verified_ai_models.json 2026-04-19 13:47:12 +02:00
MacRimi 834795d6d9 update gpu-switch-mode-indicator.tsx 2026-04-19 12:26:52 +02:00
MacRimi 3e0b907138 update notification_events.py 2026-04-19 02:01:04 +02:00
MacRimi 14adb673f6 Update nvidia_installer.sh 2026-04-18 19:20:36 +02:00
MacRimi d3e91b5d06 Update menu 2026-04-18 19:00:08 +02:00
MacRimi 74fcd7d569 Update beta_version.txt 2026-04-18 18:53:31 +02:00
MacRimi 0843cd8363 Create beta_version.txt 2026-04-18 18:52:07 +02:00
MacRimi a5a55f3c7d Delete beta_version.txt 2026-04-18 18:50:29 +02:00
MacRimi 2fb9e74a13 Update menu 2026-04-18 18:48:33 +02:00
MacRimi f950882ffd Update beta_version.txt 2026-04-18 18:20:57 +02:00
MacRimi 7318c81fe0 Create beta_version.txt 2026-04-18 18:01:40 +02:00
MacRimi 43959fc758 Delete beta_version.txt 2026-04-18 17:58:02 +02:00
MacRimi ff7b1e10a4 Create version.txt 2026-04-18 17:55:35 +02:00
MacRimi 67000f5ff1 Update nvidia_installer.sh 2026-04-18 09:13:52 +02:00
MacRimi c8b1cd0fab Update nvidia_installer.sh 2026-04-18 08:58:50 +02:00
MacRimi f6e9497f1e Delete version.txt 2026-04-18 01:23:47 +02:00
MacRimi 802dc491f8 Update menu 2026-04-18 01:20:39 +02:00
MacRimi 3ca5a36240 Update config_menu.sh 2026-04-18 01:13:13 +02:00
MacRimi 3046299414 Update hw_grafics_menu.sh 2026-04-18 01:03:16 +02:00
MacRimi 37c60cb82a Upate menu 2026-04-18 00:58:25 +02:00
MacRimi 9446112081 Update beta_version.txt 2026-04-18 00:38:32 +02:00
MacRimi 4b72490486 update menu 2026-04-18 00:33:40 +02:00
MacRimi 0f6095f8c3 Create ProxMenux_ai.png 2026-04-17 23:28:16 +02:00
MacRimi 831bf67ee4 update install 2026-04-17 22:26:25 +02:00
MacRimi 75b08de934 update hw_grafics_menu.sh 2026-04-17 21:55:53 +02:00
MacRimi 68ca68c6f1 update hardware.tsx 2026-04-17 20:56:07 +02:00
MacRimi 0e2ede5e66 update v1.2.0 2026-04-17 20:01:30 +02:00
MacRimi 75c6f74fc4 update nstall_coral_pve9.sh 2026-04-17 19:53:17 +02:00
MacRimi e6faec24fa update nvidia_installer.sh 2026-04-17 19:02:46 +02:00
MacRimi 35b7d01d7e update nvidia_installer.sh 2026-04-17 18:35:42 +02:00
MacRimi 415bc439bb Update nvidia_update.sh 2026-04-17 18:24:07 +02:00
MacRimi fe47522275 Update nvidia_update.sh 2026-04-17 18:07:43 +02:00
MacRimi 24b97831a4 Update nvidia_update.sh 2026-04-17 18:06:21 +02:00
MacRimi 03850d2958 update virtual-machines.tsx 2026-04-17 17:36:57 +02:00
MacRimi 5398211ab5 update virtual-machines.tsx 2026-04-17 17:01:24 +02:00
MacRimi 039e35f3c5 update health_monitor.py 2026-04-17 16:39:08 +02:00
MacRimi 019e98e6b6 update flask_proxmenux_routes.py 2026-04-17 15:33:50 +02:00
MacRimi baa2ff4fa9 update health_persistence.py 2026-04-17 10:38:39 +02:00
MacRimi 37f56c8a16 Update settings.tsx 2026-04-16 20:51:52 +02:00
MacRimi 5db6762690 upddate flask_proxmenux_routes.py 2026-04-16 20:40:34 +02:00
MacRimi 7d4ea806a2 Update flask_proxmenux_routes.py 2026-04-16 20:13:13 +02:00
MacRimi a776d6b746 Update health_persistence.py 2026-04-16 20:01:56 +02:00
MacRimi cf871da880 update health_persistence.py 2026-04-16 19:33:47 +02:00
MacRimi 6660122e69 Update health_persistence.py 2026-04-16 19:18:42 +02:00
MacRimi ee1204c566 update health_monitor.py 2026-04-16 19:10:47 +02:00
MacRimi 9737ffd996 Update storage-overview.tsx 2026-04-16 18:10:27 +02:00
MacRimi 97368a6f44 update storage-overview.tsx 2026-04-16 17:58:27 +02:00
MacRimi cbebd5147c update storage-overview.tsx 2026-04-16 17:36:23 +02:00
MacRimi 528b57664f Update storage-overview.tsx 2026-04-16 16:57:40 +02:00
MacRimi 7c8da462db update storage-overview.tsx 2026-04-16 16:42:11 +02:00
MacRimi d51dd35376 Update storage-overview.tsx 2026-04-16 16:08:58 +02:00
MacRimi f6ff76f9ce Update storage-overview.tsx 2026-04-16 15:52:26 +02:00
MacRimi aa3b8ebe82 Update storage-overview.tsx 2026-04-16 15:28:48 +02:00
MacRimi 056cee2f94 Update storage-overview.tsx 2026-04-16 15:09:16 +02:00
MacRimi eea765300e Update flask_server.py 2026-04-16 14:45:47 +02:00
MacRimi 324cb23f75 Update storage-overview.tsx 2026-04-16 12:08:36 +02:00
MacRimi f5b9da0908 update storage-overview.tsx 2026-04-16 11:43:42 +02:00
MacRimi 003c8850b7 Update storage-overview.tsx 2026-04-13 19:30:19 +02:00
MacRimi 57b5de4a4a Update storage-overview.tsx 2026-04-13 19:22:59 +02:00
MacRimi df4855ec47 Update storage-overview.tsx 2026-04-13 19:11:57 +02:00
MacRimi 3ec733d9c6 update storage-overview.tsx 2026-04-13 18:49:18 +02:00
MacRimi 98becfd368 update storage-overview.tsx 2026-04-13 15:29:22 +02:00
MacRimi 2344935357 update storage-overview.tsx 2026-04-13 14:49:48 +02:00
MacRimi 7d3cf4d364 Update flask_server.py 2026-04-13 11:11:42 +02:00
MacRimi a6149e3cd8 update storage-overview.tsx 2026-04-13 10:07:09 +02:00
MacRimi 3d00f33dbf Update flask_server.py 2026-04-13 09:48:48 +02:00
MacRimi 98c859fbf8 Update storage-overview.tsx 2026-04-13 09:35:23 +02:00
MacRimi 5a957fe904 Update storage-overview.tsx 2026-04-13 09:18:09 +02:00
MacRimi 9000316224 Update storage-overview.tsx 2026-04-13 08:38:32 +02:00
MacRimi b3cef0b009 Update storage-overview.tsx 2026-04-12 23:54:52 +02:00
MacRimi 78ace237dd Update storage-overview.tsx 2026-04-12 23:48:49 +02:00
MacRimi e94e065eca update storage-overview.tsx 2026-04-12 23:45:23 +02:00
MacRimi 7af4150e44 update storage-overview.tsx 2026-04-12 23:11:31 +02:00
MacRimi adb4815c9b Update storage-overview.tsx 2026-04-12 22:58:49 +02:00
MacRimi f14a0393b7 update storage-overview.tsx 2026-04-12 22:50:30 +02:00
MacRimi ae2e86d1d1 Update storage-overview.tsx 2026-04-12 22:35:12 +02:00
MacRimi 47145ab9d1 update storage-overview.tsx 2026-04-12 22:28:15 +02:00
MacRimi d7c60631b4 Update storage-overview.tsx 2026-04-12 21:37:02 +02:00
MacRimi 03dc2afe8d Update storage-overview.tsx 2026-04-12 21:28:36 +02:00