Changes
- refactor(inventory): extract context menus and dialogs from InventoryTree
- refactor(inventory): extract 15+ dialogs from InventoryDetails into InventoryDialogs
- refactor(inventory): extract ExternalHypervisorDashboard from InventoryDetails
- refactor(inventory): extract StorageDetailPanel from InventoryDetails
- refactor(inventory): extract VmItem and TreeIcons from InventoryTree
- fix(db): add alert_silences table to db-migrate.js for Docker builds
- fix(failover): comprehensive failover reliability for clusters with downed nodes
- fix(failover): count timeouts as failures and lower threshold to 2
- fix(migration): remove unsupported delete param from Proxmox remote_migrate call
- fix(migration): unlock + delete source VM after cross-cluster migration
- fix(migration): track UPID for cross-cluster migrations with deleteSource flag
- fix(alerts): simplify alert actions + add DELETE endpoint to orchestrator
- fix(db): add sort_order column to db-migrate.js for Docker builds
- fix(alerts): dedup keeps most recent entry as-is, no occurrence summing
- fix(alerts): delete uses frontend-only dismissed IDs, not fingerprint silence
- fix(alerts): separate mute (visible as Muted) from delete (hidden entirely)
- fix(alerts): show all alerts including silenced in All statuses filter
- fix(alerts): deduplicate orchestrator alerts by fingerprint
- fix(alerts): hide silenced alerts from all views except explicit Silenced filter
- fix(dashboard): persist tab order on drag-and-drop reorder (#235)
- fix(alerts): use correct orchestrator endpoint for purge (DELETE /alerts, not /alerts/clear)
- fix(alerts): show silenced alerts in All statuses filter
- feat(alerts): add purge button to clear all old alerts + silences from orchestrator
- fix(alerts): hide silenced alerts from All statuses, only show with Silenced filter
- fix(alerts): delete alerts by silencing indefinitely instead of resolve
- fix(alerts): exclude silenced alerts from summary counts and active filter
- fix(alerts): widen actions column to show mute button
- fix(alerts): graceful fallback when alert_silences table does not exist yet
- fix(console): revert node-IP routing that broke cross-node VNC (#236)
- feat(alerts): add mute/unmute UI with duration popover
- feat(alerts): add mute/silence translations (en/fr/de/zh-CN)
- feat(alerts): skip silenced alerts during sync
- feat(alerts): annotate orchestrator alerts with silence state
- feat(rolling-updates): add reboot timeout warning and increase max timeout (#237)
- feat(alerts): add silence CRUD API route
- feat(alerts): add silence schema and silenced status to Alert type
- feat(alerts): add AlertSilence Prisma model for mute feature
- fix(alerts): allow resolving acknowledged alerts + add bulk actions (issue #238)
Docker Images
docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.1
docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.1