Remove escalation functionality from alert management system including:
- Remove escalationTime configuration from alert rules
- Remove escalation checking and processing logic
- Remove escalation UI indicators and notifications
- Clean up escalation-related state management
- Remove escalation socket events and handlers
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed undefined guest.type errors in generateAlertMessage by adding proper null checks
- Separated notification status from alert objects to prevent circular references during serialization
- Added comprehensive error handling with fallback data when alert serialization fails
- Improved alert state management to track notification status separately
- Fixed alert display issues in UI by ensuring proper data structure
- Added debugging helpers for troubleshooting serialization issues
- Cleaned up console logging and removed development artifacts
These changes resolve the "Converting circular structure to JSON" errors that were
preventing alerts from being properly displayed and managed in the UI.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update PBS connectivity check endpoint for better compatibility
- Make alert checking asynchronous to prevent blocking
- Update test expectations for webhook error messages with retry counts
- Enhance alerts handler with better event listeners and error handling
- Improve PBS UI by replacing symbols with clearer text labels
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add refreshRules() method to AlertManager for dynamic rule updates
- Add cleanupAlertsForRule() to remove active alerts when rules are disabled
- Modify configuration reload to trigger alert rule refresh
- Add getAlertManager() method to state module for consistent access
- Existing alerts are now properly cleaned up when global alert types are disabled
- Changes take effect immediately without requiring server restart
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
• Merge separate "Alerts" and "Custom Thresholds" tabs into single "Alert Configuration" tab
• Improve UX by organizing all alert settings in one logical location
• Add comprehensive custom per-VM/LXC threshold management system with migration support
• Include blue "T" badges for VMs with custom thresholds in dashboard
• Implement full CRUD operations for threshold configurations via REST API
• Support migration-aware threshold keys (endpointId:vmid) for cluster environments
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add endpoint configuration sharing between server and client
- Make Proxmox node group headers clickable using API-based mapping
- Make PBS instance names clickable in both desktop and mobile views
- Links open correct cluster endpoints based on node's actual endpointId
- Subtle hover styling without blue underlines for cleaner UI
- All links open in new tabs with security attributes
Resolves issue with users wanting direct access to host web interfaces.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add support for local PVE backups (vzdump tasks)
- Add support for backup files on PVE storage (including NFS)
- Add VM/CT snapshot display with modal view
- Update backup tab to show both PBS and PVE backups
- Change columns to Source/Location for clarity
- Update diagnostics to handle PVE-only setups
Fixes#81 - PBS token permission warnings for PVE-only users
Fixes#80 - Support for backups on NFS and other PVE storage
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>