mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-04-25 00:46:21 +00:00
Release v1.2.0 with AI enhancements and optimizations
This release introduces AI-enhanced notifications, a redesigned multi-channel notification system, expanded hardware detection, and significant performance optimizations.
This commit is contained in:
252
CHANGELOG.md
252
CHANGELOG.md
@@ -1,3 +1,255 @@
|
||||
# <img src="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/images/logo.png" alt="ProxMenux logo" width="40"/> ProxMenux v1.2.0 — *AI-Enhanced Monitoring*
|
||||
|
||||

|
||||
|
||||
This release is the culmination of the v1.1.9.1 → v1.1.9.6 beta cycle and introduces the biggest evolution of **ProxMenux Monitor** to date: AI-enhanced notifications, a redesigned multi-channel notification system, a fully reworked hardware and storage experience, and broad performance improvements across the monitoring stack. It also consolidates all recent work on the Storage, Hardware and GPU/TPU scripts.
|
||||
|
||||
---
|
||||
|
||||
## 🤖 ProxMenux Monitor — AI-Enhanced Notifications
|
||||
|
||||
Notifications can now be enhanced using AI to generate clear, contextual messages instead of raw technical output.
|
||||
|
||||
Example — instead of `backup completed exitcode=0 size=2.3GB`, AI produces: *"The web server backup completed successfully. Size: 2.3GB"*.
|
||||
|
||||
### What AI does
|
||||
- Transforms technical notifications into readable messages
|
||||
- Translates to your preferred language
|
||||
- Lets you choose detail level: minimal, standard, or detailed
|
||||
- Works with Telegram, Discord, Email, Pushover, and Webhooks
|
||||
|
||||
### What AI does NOT do
|
||||
- It is **not** a chatbot or assistant
|
||||
- It does **not** analyze your system or make decisions
|
||||
- It does **not** have access to data beyond the notification being processed
|
||||
- It does **not** execute commands or modify the server
|
||||
- It does **not** store history or learn from your data
|
||||
|
||||
### Multi-Provider Support
|
||||
Choose between 6 AI providers, each with its own API key stored independently:
|
||||
- **Groq** — fast inference, generous free tier
|
||||
- **Google Gemini** — excellent quality/price ratio, free tier available
|
||||
- **OpenAI** — industry standard
|
||||
- **Anthropic Claude** — excellent for writing and translation
|
||||
- **OpenRouter** — 300+ models with a single API key
|
||||
- **Ollama** — 100% local execution, no internet required
|
||||
|
||||
### Verified AI Models
|
||||
A curated list of models (`verified_ai_models.json`) tested specifically for notification enhancement.
|
||||
|
||||
- **Hybrid verification**: the system fetches provider-side models and filters to only show those tested to work correctly
|
||||
- **Per-Provider Model Memory**: selected model is saved per provider, so switching providers preserves each choice
|
||||
- **Daily verification**: background task checks model availability and auto-migrates to a verified alternative if the current model disappears
|
||||
- **Incompatible models excluded**: Whisper, TTS, image/video, embeddings, guard models, etc. are filtered out per provider
|
||||
|
||||
| Provider | Recommended | Also Verified |
|
||||
|----------|-------------|---------------|
|
||||
| Gemini | gemini-2.5-flash-lite | gemini-flash-lite-latest |
|
||||
| OpenAI | gpt-4o-mini | gpt-4.1-mini |
|
||||
| Groq | llama-3.3-70b-versatile | llama-3.1-70b-versatile, llama-3.1-8b-instant, llama3-70b-8192, llama3-8b-8192, mixtral-8x7b-32768, gemma2-9b-it |
|
||||
| Anthropic | claude-3-5-haiku-latest | claude-3-5-sonnet-latest, claude-3-opus-latest |
|
||||
| OpenRouter | meta-llama/llama-3.3-70b-instruct | meta-llama/llama-3.1-70b-instruct, anthropic/claude-3.5-haiku, google/gemini-flash-2.5-flash-lite, openai/gpt-4o-mini, mistralai/mixtral-8x7b-instruct |
|
||||
| Ollama | (all local models) | No filtering — shows all installed models |
|
||||
|
||||
### Custom AI Prompts
|
||||
Advanced users can define their own prompt for full control over formatting and translation.
|
||||
|
||||
- **Prompt Mode selector** — Default Prompt or Custom Prompt
|
||||
- **Export / Import** — save and share custom prompts across installations
|
||||
- **Example Template** — starting point to build your own prompt
|
||||
- **Community Prompts** — direct link to GitHub Discussions to share templates
|
||||
- Language selector is hidden in Custom Prompt mode (you define the output language in the prompt itself)
|
||||
|
||||
### Enriched Context
|
||||
- System **uptime** is included only for error/warning events (not informational ones) — helps distinguish startup vs runtime errors
|
||||
- **Event frequency** tracking — indicates recurring vs one-time issues
|
||||
- **SMART disk health** data is passed for disk-related errors
|
||||
- **Known Proxmox errors** database improves diagnosis accuracy
|
||||
- Clearer prompt instructions to prevent AI hallucinations
|
||||
|
||||
---
|
||||
|
||||
## 📨 Notification System Redesign
|
||||
|
||||
- **Multi-Channel Architecture** — Telegram, Discord, Pushover, Email, and Webhook channels running simultaneously
|
||||
- **Per-Event Configuration** — enable/disable specific event types per channel
|
||||
- **Channel Overrides** — customize notification behaviour per channel
|
||||
- **Secure Webhook Endpoint** — external systems can send authenticated notifications
|
||||
- **Encrypted Storage** — API keys and sensitive data stored encrypted
|
||||
- **Queue-Based Processing** — background worker with automatic retry for failed notifications
|
||||
- **SQLite-Based Config Storage** — replaces file-based config for reliability
|
||||
|
||||
### Telegram Topics Support
|
||||
Send notifications to a specific topic inside groups with Topics enabled.
|
||||
- New **Topic ID** field on the Telegram channel
|
||||
- Automatic detection of topic-enabled groups
|
||||
- Fully backwards compatible
|
||||
|
||||
### ProxMenux Update Notifications
|
||||
The Monitor now detects when a new ProxMenux version is released.
|
||||
- **Dual-channel** — monitors both stable (`version.txt`) and beta (`beta_version.txt`)
|
||||
- **GitHub integration** — compares local vs remote versions
|
||||
- **Dashboard Update Indicator** — the ProxMenux logo changes to an update variant when a new version is detected (non-intrusive, no popups)
|
||||
- **Persistent state** — status stored in `config.json`, reset by update scripts
|
||||
- Single toggle in Settings controls both channels (enabled by default)
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Hardware Panel — Expanded Detection
|
||||
|
||||
The Hardware page has been significantly expanded, with better detection and richer per-device detail.
|
||||
|
||||
- **SCSI / SAS / RAID Controllers** — model, driver and PCI slot shown in the storage controllers section
|
||||
- **PCIe Link Speed Detection** — NVMe drives show current link speed (PCIe generation and lane width), making it easy to spot drives underperforming due to limited slot bandwidth
|
||||
- **Enhanced Disk Detail Modal** — NVMe, SATA, SAS, and USB drives now expose their specific fields (PCIe link info, SAS version/speed, interface type) instead of a generic view
|
||||
- **Smarter Disk Type Recognition** — uniform labelling for NVMe SSDs, SATA SSDs, HDDs and removable disks
|
||||
- **Hardware Info Caching** (`lspci`, `lspci -vmm`) — 5 min cache avoids repeated scans for data that doesn't change
|
||||
|
||||
---
|
||||
|
||||
## 💽 Storage Overview — Health, Observations, Exclusions
|
||||
|
||||
The Storage Overview has been reworked around real-time state and user-controlled tracking.
|
||||
|
||||
### Disk Health Status Alignment
|
||||
- Badges now reflect the **current** SMART state reported by Proxmox, not a historical worst value
|
||||
- **Observations preserved** — historical findings remain accessible via the "X obs." badge
|
||||
- **Automatic recovery** — when SMART reports healthy again, the disk immediately shows **Healthy**
|
||||
- Removed the old `worst_health` tracking that required manual clearing
|
||||
|
||||
### Disk Registry Improvements
|
||||
- **Smart serial lookup** — when a serial is unknown the system checks for an existing entry with a serial before inserting a new one
|
||||
- **No more duplicates** — prevents separate entries for the same disk appearing with/without a serial
|
||||
- **USB disk support** — handles USB drives that may appear under different device names between reboots
|
||||
|
||||
### Storage and Network Interface Exclusions
|
||||
- **Storage Exclusions** section — exclude drives from health monitoring and notifications
|
||||
- **Network Interface Exclusions** — new section for excluding interfaces (bridges `vmbr`, bonds, physical NICs, VLANs) from health and notifications; ideal for intentionally disabled interfaces that would otherwise generate false alerts
|
||||
- **Separate toggles** per item for Health monitoring and Notifications
|
||||
|
||||
### Disk Detection Robustness
|
||||
- **Power-On-Hours validation** — detects and corrects absurdly large values (billions of hours) on drives with non-standard SMART encoding
|
||||
- **Intelligent bit masking** — extracts the correct value from drives that pack extra info into high bytes
|
||||
- **Graceful fallback** — shows "N/A" instead of impossible numbers when data cannot be parsed
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Health Monitor & Error Lifecycle
|
||||
|
||||
### Stale Error Cleanup
|
||||
Errors for resources that no longer exist are now resolved automatically.
|
||||
- **Deleted VMs / CTs** — related errors auto-resolve when the resource is removed
|
||||
- **Removed Disks** — errors for disconnected USB or hot-swap drives are cleaned up
|
||||
- **Cluster Changes** — cluster errors clear when a node leaves the cluster
|
||||
- **Log Patterns** — log-based errors auto-resolve after 48 hours without recurrence
|
||||
- **Security Updates** — update notifications auto-resolve after 7 days
|
||||
|
||||
### Database Migration System
|
||||
- **Automatic column detection** — missing columns are added on startup
|
||||
- **Schema compatibility** — works with both old and new column naming conventions
|
||||
- **Backwards compatible** — databases from older ProxMenux versions are supported
|
||||
- **Graceful migration** — no data loss during schema updates
|
||||
|
||||
---
|
||||
|
||||
## 🧩 VM / CT Detail Modal
|
||||
|
||||
The VM/CT detail modal has been completely redesigned for usability.
|
||||
|
||||
- **Tabbed Navigation** — *Overview* (general information, status, resource usage) and *Backups* (dedicated history)
|
||||
- **Visual Enhancements** — icons throughout, improved hierarchy and spacing, better VM vs CT distinction
|
||||
- **Mobile Responsiveness** — adapts correctly to mobile screens in both webapp and direct browser access, no more overflow on small devices
|
||||
- **Touch-Friendly Controls** — larger buttons and spacing
|
||||
|
||||
### Secure Gateway Modal
|
||||
- **Scrollable storage list** when many destinations are available
|
||||
- Mobile-adapted layout and improved visual hierarchy
|
||||
|
||||
### Terminal Connection
|
||||
- **Reconnection loop fix** that was affecting mobile devices
|
||||
- Improved WebSocket handling for mobile browsers
|
||||
- More graceful connection timeout recovery
|
||||
|
||||
### Fail2ban & Lynis Management
|
||||
- **Delete buttons** added in Settings for both tools
|
||||
- Clean removal of packages and configuration files
|
||||
- Confirmation dialog to prevent accidental deletion
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Performance Optimizations
|
||||
|
||||
Major reduction in CPU usage and elimination of spikes on the Monitor.
|
||||
|
||||
### Staggered Polling Intervals
|
||||
Collectors now run on offset schedules to prevent simultaneous execution:
|
||||
|
||||
| Collector | Schedule |
|
||||
|-----------|----------|
|
||||
| CPU sampling | Every 30s at offset 0 |
|
||||
| Temperature sampling | Every 15s at offset 7s |
|
||||
| Latency pings | Every 60s at offset 25s |
|
||||
| Temperature record | Every 60s at offset 40s |
|
||||
| Health collector | Starts at 55s offset |
|
||||
| Notification polling | Health=10s, Updates=30s, ProxMenux=45s, AI=50s |
|
||||
|
||||
### Cached System Information
|
||||
Expensive commands now cached to reduce repeated execution:
|
||||
|
||||
| Command | Cache TTL | Impact |
|
||||
|---------|-----------|--------|
|
||||
| `pveversion` | 6 hours | Eliminates 23%+ CPU spikes from Perl execution |
|
||||
| `apt list --upgradable` | 6 hours | Reduces package manager queries |
|
||||
| `pvesh get /cluster/resources` | 30 seconds | 6 API calls per request reduced to 1 |
|
||||
| `sensors` | 10 seconds | Temperature readings cached between polls |
|
||||
| `smartctl` (SMART health) | 30 minutes | Disk health checks reduced from every 5 min |
|
||||
| `lspci` / `lspci -vmm` | 5 minutes | Hardware info cached (doesn't change) |
|
||||
| `journalctl --since 24h` | 1 hour | Login attempts count cached (92% reduction) |
|
||||
|
||||
### Increased journalctl Timeouts
|
||||
Prevents timeout cascades under system load:
|
||||
|
||||
| Query Type | Before | After |
|
||||
|------------|--------|-------|
|
||||
| Short-term (3-10 min) | 3s | 10s |
|
||||
| Medium-term (1 hour) | 5s | 15s |
|
||||
| Long-term (24 hours) | 5s | 20s |
|
||||
|
||||
### Reduced Polling Frequency
|
||||
- `TaskWatcher` interval raised from **2s → 5s** (60% fewer checks)
|
||||
|
||||
### GitHub Actions
|
||||
- All workflow actions upgraded to **v6** for Node.js 24 compatibility
|
||||
- Deprecation warnings eliminated in CI/CD
|
||||
|
||||
---
|
||||
|
||||
## 🧰 Scripts — Storage, Hardware and GPU/TPU Work
|
||||
|
||||
This release also consolidates significant work on the core ProxMenux scripts.
|
||||
|
||||
### Storage scripts
|
||||
- **SMART scheduled tests** and improved interactive SMART test workflow with clearer progress feedback
|
||||
- **Disk formatting** (`format-disk.sh`) rework with safer device selection and dialog flow
|
||||
- **Disk passthrough** for VMs and CTs — updated device enumeration, serial-based identification, and cleaner teardown
|
||||
- **NVMe controller addition for VMs** — improved controller type selection and slot detection
|
||||
- **Import disk image** — smoother path validation and progress reporting
|
||||
- **Disk & storage manual guide** refresh
|
||||
|
||||
### Hardware / GPU / TPU scripts
|
||||
- **Coral TPU installer** updated for current kernels and udev rules (Proxmox VE 8 & VE 9)
|
||||
- **NVIDIA installer** — cleaner driver installation, kernel header handling, and VM/LXC attachment flow
|
||||
- **GPU mode switch** (direct and interactive variants) — safer switching between iGPU modes
|
||||
- **Add GPU to VM / LXC** — unified selection dialogs and permission handling
|
||||
- **Intel / AMD GPU tools** kept in sync with the new shared patterns
|
||||
- **Hardware & graphics menu** restructured for consistency with the rest of ProxMenux
|
||||
|
||||
### UI flow consistency
|
||||
All recently-touched scripts follow the unified `msg_info` / `stop_spinner` / `show_proxmenux_logo` pattern between dialog menus and during the main execution phase, resulting in cleaner screen transitions and no more spinner artifacts over dialogs.
|
||||
|
||||
---
|
||||
|
||||
|
||||
## 2026-03-14
|
||||
|
||||
### New version v1.1.9 — *Helper Scripts Catalog Rebuilt*
|
||||
|
||||
Reference in New Issue
Block a user