Commit Graph

726 Commits

Author SHA1 Message Date
Pulse Monitor efee26a0bb fix: restore original simple selection styling from initial implementation
- Removed border-left indicators that were causing issues
- Back to simple background color change when selected
- This matches the original working implementation
2025-08-29 14:12:29 +00:00
Pulse Monitor a02f94c68d fix: use classList for cleaner selection styling
- Changed from template string to classList binding for selection state
- Removed function call in isSelected to prevent reactivity issues
- Should eliminate gray border artifacts on unselected nodes
2025-08-29 14:10:09 +00:00
Pulse Monitor 40187e4284 fix: ensure consistent blue border color for selected nodes
- Made border color consistent across light/dark modes (always blue-500)
- Added transparent border to unselected rows to prevent layout shift
- This ensures all selected rows show the same blue indicator
2025-08-29 14:08:18 +00:00
Pulse Monitor ff5bdd6705 fix: prevent VM/container counts from zeroing when node is selected
- NodeSummaryTable now always uses unfiltered state data for counts
- This ensures all nodes show correct counts even when one is selected
- The parent component handles filtering for the main display separately
2025-08-29 14:05:50 +00:00
Pulse Monitor af3071b65f fix: make NodeSummaryTable fill entire card width
- Changed from fixed pixel width to 100% width table
- Converted column widths from pixels to percentages
- Removed inline styles in favor of Tailwind classes
- Table now properly stretches to fill available space
2025-08-29 14:04:16 +00:00
Pulse Monitor 7a4ae397db fix: restore node selection highlighting and fix PBS column count
- Added blue left border indicator when a node is selected
- Fixed PBS nodes showing wrong number of columns on dashboard tab
- PBS nodes now show dashes for VMs/Containers columns they don't have
2025-08-29 14:02:31 +00:00
Pulse Monitor 3d9a1a10f7 chore: remove redundant PVENodeTable and PBSNodeTable components
- Deleted old table components that were causing confusion
- Added CRITICAL section to CLAUDE.md about removing redundant code
- Prevents future issues where updated code gets ignored because old version still exists
2025-08-29 13:57:27 +00:00
Pulse Monitor 9705e60908 fix: replace old PVENodeTable with NodeSummaryTable for correct column ordering
- Fixed escape key not clearing tag filters from search box
- Replaced PVENodeTable/PBSNodeTable with unified NodeSummaryTable
- Column order now correctly shows: Node, Status, Uptime, CPU, Memory, Disk, VMs/Containers
2025-08-29 13:55:53 +00:00
Pulse Monitor 18d1786643 chore: consolidate development environment and fix multiple issues
- Fixed alert acknowledgment persistence bug in monitor.go
- Reordered columns in NodeSummaryTable for better logical grouping
- Consolidated development environment with improved hot-dev script
- Updated vite.config.dev.ts for consistent port usage (7656)
- Enhanced Go main.go with better development mode detection
- Removed obsolete development scripts for cleaner repository
- Added comprehensive development documentation in CLAUDE.md

Development improvements ensure consistent port 7655 usage and
eliminate conflicts between different development approaches.
2025-08-29 13:49:45 +00:00
Pulse Monitor c67d6d960d fix: alert acknowledgment not persisting - map update was missing
The AcknowledgeAlert function was modifying the alert pointer but not writing
it back to the activeAlerts map. Since Go maps store values (not references),
the acknowledged state wasn't being persisted. Fixed by adding the map update
after modifying the alert properties.
2025-08-29 12:47:15 +00:00
Pulse Monitor b732b09654 feat: increase tag hover scale animation to 150% for better visibility 2025-08-29 12:18:01 +00:00
Pulse Monitor f18dbbbeab feat: add smooth scale animation to tag indicators on hover 2025-08-29 12:16:22 +00:00
Pulse Monitor beca07ad21 fix: convert CPU from decimal to percentage in PVENodeTable - the component actually being used 2025-08-29 12:10:24 +00:00
Pulse Monitor 0ba776074b fix: properly convert CPU from decimal to percentage in NodeSummaryTable 2025-08-29 12:07:09 +00:00
Pulse Monitor 363ac05c42 fix: correct CPU percentage calculation in NodeSummaryTable - was incorrectly multiplying by 100 2025-08-29 12:02:28 +00:00
Pulse Monitor 96e0aacfff fix: remove mock code from production builds to fix Docker compilation 2025-08-29 11:57:40 +00:00
Pulse Monitor 799a3133fe fix: remove unused TypeScript variables in PVENodeTable 2025-08-29 11:54:03 +00:00
Pulse Monitor 7c57099760 chore: bump version to v4.10.0-rc.2 2025-08-29 11:50:16 +00:00
Pulse Monitor ae53c23fc4 fix: improve Proxmox API permission error messages
Addresses #379 - Added clearer error messages for common authentication issues:
- 403 errors now explain that permissions must be set on the USER (not just the token) in Proxmox GUI
- 595 errors indicate authentication failure
- 401 errors indicate invalid credentials

While the setup script handles this correctly, these messages help users who manually configure permissions.
2025-08-29 11:43:01 +00:00
Pulse Monitor fd501d40d6 fix: update acknowledged count immediately when alert is acknowledged
addresses #380 - the acknowledged count now updates instantly when an alert
is acknowledged, rather than waiting for the next websocket update
2025-08-29 11:23:12 +00:00
Pulse Monitor bbf499cd10 fix: address Discord webhook issues from #378
- Remove invalid url field from Discord embed (was causing 400 error)
- Remove SVG avatar/footer icons (Discord doesn't support SVG)
- Fix test webhook to use proper instance URL instead of 'pulse-monitoring'
- Discord webhook template now sends valid payloads
2025-08-29 11:15:35 +00:00
Pulse Monitor e6c15f620a feat: add version column to node tables
- Shows PVE/PBS version in node summary tables
- Helps quickly identify nodes needing updates
- Extracts just version number from PVE (e.g. 9.0.5)
- Also improved mock mode system for local development
2025-08-29 10:58:23 +00:00
Pulse Monitor c2917947ec fix: remove column constraint from backup date row headers 2025-08-29 10:42:28 +00:00
Pulse Monitor 597e695f0e feat: improve UI consistency and visual feedback
- Remove redundant status column from node tables (green/red dot is sufficient)
- Make stopped guests more visually distinct (red indicator + dimmed row)
- Improve node selection behavior (visual only, no search field modification)
- Fix hover vs selected visual states for clarity
- Standardize hover highlighting across all tables (hover:bg-gray-50 dark:hover:bg-gray-700/30)
- Add better visual separation for tooltips (tags and backups)
- Remove unnecessary rebuild.sh script (only needed at release time)
- Fix backend-watch.sh to use correct PORT environment variable
- Update vite.config.ts to proxy to correct backend port (7656)
- Clean up console.log debugging statements
2025-08-29 10:39:45 +00:00
Pulse Monitor 6d93fcd391 fix: ensure PATH and update command work for all installations
- Created setup_update_command() function to handle PATH and update script setup
- Adds /usr/local/bin to PATH in /etc/profile and /etc/bash.bashrc
- Creates /usr/local/bin/update script if it doesn't exist
- Called during all installation/update flows (fresh, update, reinstall)
- Fixes issue where existing users couldn't run 'update' command without full path
- Addresses #377
2025-08-29 07:59:03 +00:00
Pulse Monitor fa3bd2df0e fix: add /usr/local/bin to PATH in containers so 'update' command works
This addresses #377 where users couldn't run the 'update' command
without specifying the full path when using pct enter.
2025-08-29 07:55:11 +00:00
Pulse Monitor 3b6202d2c7 feat: improve tag indicator design
- Remove outer bright ring from tag indicators for cleaner flat design
- Increase indicator size from 1.5 to 2 for better visibility
- Keep active state ring for selected tags
2025-08-29 07:42:57 +00:00
Pulse Monitor 50d414ed39 fix: remove Node column from list view entirely
After discussion, the Node column in list view adds unnecessary clutter. The purpose of list view is to see all guests as a unified, sortable list regardless of node. Users who need to know which node a guest is on should use grouped view - that's what it's for.

This simplifies the table, saves horizontal space, and makes the UI cleaner.
2025-08-29 07:29:31 +00:00
Pulse Monitor 0c3a178422 chore: remove debug console.log from IOMetric component 2025-08-29 07:23:36 +00:00
Pulse Monitor 8bc15e6493 fix: properly implement Node column in list view
addresses #370 - added Node column that only appears in flat/list view mode, positioned between VMID and Uptime columns. This allows users to see which node each guest belongs to when viewing the flat list, while keeping the cleaner view when in grouped mode.
2025-08-29 07:17:13 +00:00
Pulse Monitor 27e727a187 fix: remove broken Node column from list view
addresses #370 - completely removed the Node column feature from list view as it was causing persistent table alignment issues. Users can still see which node a guest is on by using the grouped view.
2025-08-29 07:05:24 +00:00
Pulse Monitor 64e920ac16 fix: use SolidJS Show component for proper conditional rendering
addresses #370 - switched from JSX conditional expressions to SolidJS Show component for table column conditional rendering to ensure proper DOM updates
2025-08-29 06:56:16 +00:00
Pulse Monitor 6a23cf9f86 fix: use conditional rendering instead of hidden class for Node column
addresses #370 - the hidden class doesn't work properly with table-fixed layout, causing columns to still take up space. Changed to conditional rendering with JSX expressions to properly add/remove the column from the DOM based on grouping mode
2025-08-29 06:54:41 +00:00
Pulse Monitor 0b0ffa6317 fix: resolve table column misalignment in flat list view
addresses #370 - changed from Show component to class-based hiding for the Node column to ensure proper table structure is maintained in both grouped and flat views. The Node column now always exists in the DOM but is hidden with CSS when not needed, preventing column shift issues.
2025-08-29 06:50:34 +00:00
Pulse Monitor 2e01d0d9f0 Revert "Revert "fix: add missing Node column header in flat list view""
This reverts commit 1e068742e7.
2025-08-29 06:48:04 +00:00
Pulse Monitor 1e068742e7 Revert "fix: add missing Node column header in flat list view"
This reverts commit 437e4f9528.
2025-08-29 06:47:44 +00:00
Pulse Monitor 437e4f9528 fix: add missing Node column header in flat list view
addresses #370 - the table headers were missing the Node column when in flat/list view mode, causing all columns after VMID to be misaligned by one position
2025-08-29 06:45:17 +00:00
Pulse Monitor b5de59400d chore: bump version to v4.10.0-rc.1 2025-08-28 17:41:26 +00:00
Pulse Monitor 7518f994d1 fix: improve configuration loading reliability and UX
- Added retry logic for failed node loading with automatic 3-second retry
- Added loading indicator while configuration is being fetched
- Prevents showing empty configuration during initial load
- Better handles transient network or rate limit errors

This further addresses #372 by ensuring configuration data loads properly
even when there are temporary issues like rate limiting or network hiccups.
2025-08-28 17:37:19 +00:00
Pulse Monitor 754ccee715 fix: address intermittent configuration display issue (#372)
- Increased rate limits for configuration GET endpoints to prevent 429 errors
- Added automatic retry logic for rate-limited requests with exponential backoff
- Added small delays between initial API calls to prevent burst requests
- Configuration read endpoints now use PublicEndpoints limit (1000/min vs 500/min)

This should resolve the issue where the configuration page sometimes shows
no information and prompts for system setup even when it's already configured.
2025-08-28 17:32:29 +00:00
Pulse Monitor 2b79ae8648 feat: improve dashboard UI with tags and better filtering
- Add clickable tag badges with Proxmox-style coloring for VM/container tags
- Implement grouping toggle to switch between node-grouped and flat list views
- Replace alert dot indicators with left border highlighting to avoid visual conflicts
- Add tag filtering support in search (tags:tagname)
- Fix alert visualization on storage page to use left borders
- Improve search functionality with uptime metric support
- Remove info tooltip from search field, add clear button instead
- Update placeholder text to be more helpful

addresses #370, addresses #371
2025-08-28 17:26:57 +00:00
Pulse Monitor ca28f42edb feat: add grouping toggle for flat list view
adds a grouped/list toggle to the dashboard that allows users to switch between:
- grouped view: vms/containers grouped by node (default)
- list view: flat list of all vms/containers across cluster

in list view, users can sort by any column to identify top resource consumers across the entire cluster, useful for monitoring high bandwidth/cpu/memory usage

addresses #370
2025-08-28 14:39:36 +00:00
Pulse Monitor 027db449aa fix: clear update cache when version changes after update
- Automatically invalidate cached update info when current version changes
- Prevents stale update banner after user updates Pulse
- Cache now checks if version matches before using cached data
2025-08-28 14:13:11 +00:00
Pulse Monitor cad7656d76 fix: support non-local storage for templates in install.sh (addresses #368)
- Use selected storage instead of hardcoded 'local' for template listing
- Use storage:vztmpl/template format instead of hardcoded paths
- Downloads now go to the selected storage (btrfs, zfs, etc.)
- Check template existence using pveam list with correct storage
2025-08-28 14:07:09 +00:00
Pulse Monitor d9e0571605 fix: make install script interactive when piped from curl
- Modified safe_read to properly detect when no TTY is available
- Returns failure status when truly non-interactive (no /dev/tty)
- Only auto-selects update when safe_read actually fails
- Now curl | bash will show the interactive menu if terminal is available
2025-08-28 13:48:56 +00:00
Pulse Monitor a3cef7c5be chore: bump version to v4.9.1 2025-08-28 13:30:19 +00:00
Pulse Monitor 921ccf3008 fix: hide PVE nodes without backups in backup tab (addresses #366)
- Filter PVE nodes to only show those with backups or snapshots
- Hide entire PVE nodes table when no nodes have any backups
- Prevents empty/useless rows from cluttering the UI
2025-08-28 13:26:30 +00:00
Pulse Monitor ea12cfff58 feat: enhance diagnostics to show detailed VM disk monitoring issues
- show which specific VMs have disk monitoring problems
- list filesystem details showing what's filtered and why
- provide actionable info for troubleshooting guest agent issues
- addresses #367 by giving users better debugging information
2025-08-28 12:48:42 +00:00
Pulse Monitor af4c0afe40 fix: show dash instead of 0% for VMs without guest agent disk data
addresses #367 - when VMs don't have working guest agent data, display a dash instead of misleading 0% disk usage
2025-08-28 12:44:46 +00:00
Pulse Monitor 8c0556bbb6 fix: improve error handling for node connection tests (addresses #362, #363)
- Handle standalone nodes properly in diagnostics (fixes #362)
  - Try /nodes endpoint first which works for both clustered and standalone
  - Make cluster status optional, not required for connection success
  - Set cluster node count to 1 for standalone nodes

- Fix test connection UI showing success styling on errors (fixes #363)
  - Return proper HTTP error status when test-config endpoint fails
  - Clean up error messages to remove "API request failed: XXX" prefix
  - Add debug logging to trace test result states
  - Ensure consistent error status codes from all test endpoints

Both issues reported connection problems - standalone nodes failing to connect
and error messages appearing with success styling. These fixes ensure proper
handling of both scenarios.
2025-08-28 11:56:02 +00:00