Remove the newly added quick actions strip from the shared Proxmox layout because it duplicated existing navigation and added visual noise. Keep the original tab navigation as the single, clear navigation surface.
Made-with: Cursor
Introduce starter firewall rule templates, one-click rule creation from log entries, and quick log filter presets to speed up incident response. Add a shared quick actions hub plus refreshed help and overview surfaces to improve discoverability and make key VPS tasks faster.
Made-with: Cursor
Introduced a new Livewire component for statistics redirection and added a corresponding route to enhance navigation within the Proxmox extension. This update lays the groundwork for future statistics-related features.
New Blade layout, copy, and visual system for the monitoring tab; RRD hosts use data-statistics-chart hooks; tables use pxStatTableKit and data-statistics-data-row; network and comparison panels use new selectors; CSV helpers renamed (pxExport*); modals and telemetry refreshed.
Made-with: Cursor
- Add is_lxc column to ext_proxmox_oses for tracking template type
- OS model now has vmType() helper returning 'lxc' or 'qemu'
- Install uses OS template's type for clone API path (not node type)
- createServer validates OS type matches node type before provisioning
- calculateNode filters nodes by LXC/KVM type based on selected OS
- Reinstall OS list filtered to only show matching template types
- Admin location OS repeater now has LXC Template checkbox
- Add is_lxc boolean column to ext_proxmox_nodes (default false, existing nodes unaffected)
- Add LXC checkbox to admin node creation form (disabled on edit)
- Dynamic API path selection via Node::vmType() (returns 'lxc' or 'qemu')
- LXC deployment: syncLxcSettings() for cores, memory, swap, hostname, rootfs, net config
- LXC network uses name=eth0 format with applyLxcPoolSettings() for VLAN/firewall/MTU
- All lifecycle operations LXC-aware: install, suspend, unsuspend, terminate, upgrade, reinstall
- VNC/xterm console uses correct type (lxc vs kvm)
- All 20+ Livewire components use vmType() for Proxmox API paths
- LXC user interface shows basic-only view (no advanced toggle, no KVM-specific tabs)
- Basic tabs for LXC: Overview, Network Configuration, Backups, Console
- Cache getTaskHistoryProperty() with 30s TTL to avoid Proxmox API calls on every render
- Move networkAnalysis heavy arrays (connections, topConnections, topPorts) out of Livewire public property into server-side cache only
- Store only counts and metadata in the Livewire payload instead of thousands of connection objects
- Pagination and export methods now read from cache instead of public property
- Reduce wire:poll intervals from 10s to 30s on task history and lifecycle events cards
- Dramatically reduces JSON payload size on every Livewire request
Three separate click handlers were all firing on the same Graph button
click, each calling classList.toggle('open'). Multiple toggles cancel
out (on->off or on->off->on), making the button appear broken.
Removed redundant per-button listeners from poll() and livewire:navigated.
The document-level event delegation handles all clicks correctly for
dynamically created elements.
Root cause: wire:poll.2s on layout div caused Livewire to morph/overwrite
the JavaScript-rendered network traffic interface cards every 2 seconds,
replacing them with the server-rendered placeholder HTML.
- Add wire:ignore to #network-traffic-container to prevent Livewire DOM
morphing from destroying dynamically rendered content
- Add retry logic (10x at 300ms) to createChart() for when Chart.js CDN
hasn't finished loading (e.g. during wire:navigate)