🚀 Release v1.0.4
Added
- Guest name editing: Added ability to change QEMU VM names and LXC container hostnames from the config page
- QEMU VMs: Edit the "name" field which updates the VM display name
- LXC containers: Edit the "hostname" field which updates the container hostname
- Real-time title updates show the new name as you type
- Changes are saved to Proxmox and reflected immediately in the UI
- Input validation prevents invalid hostname characters (underscores, spaces, special chars)
- Validates hostname format (no leading/trailing hyphens, proper length limits)
- Fixed UI refresh issue with professional polling approach that verifies API changes before refreshing
- Added loading indicators during API propagation delay for better user experience
- Enhanced header component with ShowWarning method for better user feedback
- Refactored polling functionality into dedicated function for improved maintainability
- Fixed race condition by polling both config and cluster resources endpoints to ensure complete propagation
- Cross-platform config and cache paths: Added native support for Windows config/cache directories
- Windows: Config in
%APPDATA%/proxmox-tui, Cache in%LOCALAPPDATA%/proxmox-tui - macOS: Uses XDG-style paths (
~/.config/proxmox-tui,~/.cache/proxmox-tui) for consistency with other TUI applications - Linux: Maintains existing XDG support (
~/.config/proxmox-tui,~/.cache/proxmox-tui) - Maintains backward compatibility with existing XDG functions
- Environment variables still override platform defaults when set
- Windows: Config in
Breaking Changes
- Windows users only: Existing config files in XDG-style paths need to be moved to new platform-specific locations
- Windows: Move from
~/.config/proxmox-tui/to%APPDATA%/proxmox-tui/ - macOS/Linux: No changes required - existing paths continue to work
- The application will automatically use the new paths on first run after this update
- Windows: Move from
Fixed
- Community Scripts: returning from installation no longer blanks the screen. The selector now closes before refresh and a brief post-resume delay ensures stable UI restore.
- Data Refresh: new containers/VMs created by community scripts are shown immediately without restarting. After install we trigger a hard refresh (cache cleared) and the manual refresh rebuilds the guest list from fresh cluster data.
- Header: eliminated brief spinner flash that could reappear after success/error messages.
- Manual Refresh stability: VM list now rebuilt strictly from cluster resources; filtering preserved across consecutive refreshes; removed VM details flicker and selection jump by stabilizing selection and suppressing programmatic callbacks during list rebuild.
- VM delete selection fallback: after deleting a VM, selection now moves to the first remaining VM and the details panel updates accordingly; clears details when the list becomes empty.
- Manual Refresh optimization: refactored complex refresh logic into separate functions for better maintainability; reduced UI update calls and improved incremental node enrichment; fixed regression where VM list would become empty after refresh due to enriched nodes not preserving VM data from original cluster resources.