Commit Graph

269 Commits

Author SHA1 Message Date
courtmanr@gmail.com 8434356569 feat: consolidate update system and improve version comparison UI
- Consolidate dual update mechanisms to use proven install script
- Fix critical version parameter extraction bug
- Add comprehensive commit differences display with GitHub links
- Improve update UI with expandable details and compact summary
- Remove redundant channel recommendation warnings
- Add proper error handling and cleanup for update process
2025-06-04 14:20:28 +01:00
courtmanr@gmail.com fc1929c205 feat: implement user-controlled update channels (stable/RC)
Add comprehensive update channel system allowing users to choose between:
- Stable: Production releases only (default, safe)
- RC: Release candidate versions for testing fixes and new features

Key Features:
- Safe defaults: All users start on stable channel unless explicitly changed
- Clear UI warnings: RC selection shows warning about potential bugs
- Robust validation: Invalid values auto-correct to stable with warnings
- Security: URL validation prevents malicious downloads
- Bulletproof error handling: Handles all edge cases gracefully

Technical Implementation:
- UPDATE_CHANNEL environment variable (stable/rc)
- Enhanced UpdateManager with channel-specific GitHub API calls
- Frontend UI with clear channel selection and warnings
- Configuration persistence and validation
- Comprehensive edge case handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-04 10:49:22 +01:00
courtmanr@gmail.com d455e93b59 feat: improve calendar date handling for different timezones
- Changed calendar to use local dates instead of UTC throughout
- Added formatLocalDateKey() helper for consistent date formatting
- Updated date comparisons and grid generation to use local timezone
- Fixed day number display to use getDate() instead of getUTCDate()

This should address timezone-related issues where backups appeared on incorrect days.

Related to #120 - Please check the next RC release to see if this resolves the calendar date issues.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-03 20:43:00 +01:00
courtmanr@gmail.com a419763f9c fix: webhook configuration persistence and Discord 400 errors
- Add webhook configuration to structured config response in configApi
- Update settings UI to properly display webhook enabled state
- Fix Discord webhook 400 errors by sending platform-specific payloads
- Detect webhook type (Discord/Slack) and send appropriate format
- Preserve webhook settings when saving configuration
- Update both test webhook and alert webhook sending logic

Fixes #119

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-03 19:31:07 +01:00
courtmanr@gmail.com ac089c8487 fix: resolve webhook configuration loading and checkbox persistence issues
Fixes two webhook-related problems reported in issue #119:
- Webhook checkbox not persisting after save due to config not being included in API response
- 400 errors during webhook testing due to incorrect form data binding

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-03 15:18:02 +01:00
courtmanr@gmail.com 3c77b5890e feat: redesign backup health card with clearer statistics and improved layout
- Make health score more prominent with larger font and context
- Replace confusing guest counts with clear total backup count
- Add recent coverage metric showing guests with backups in last 7 days
- Reorganize backup type statistics with clear labeling
- Add coverage ratio showing protected vs unprotected guests
- Improve visual hierarchy and information density

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 18:48:08 +01:00
courtmanr@gmail.com cb9f8f1457 feat: improve backup type labels with styled badges in history card
- Convert plain text backup type labels to rounded badge components
- Add proper spacing between multiple backup types (PBS, PVE, SNAP)
- Implement consistent styling across multi-date and single-date views
- Include dark mode support with appropriate color contrasts
- Left-align types column for better visual consistency

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 18:20:06 +01:00
courtmanr@gmail.com c817791aa8 fix: resolve webhook notification timestamp error and improve scroll timing
- Fix RangeError in AlertManager by using correct timestamp fields (triggeredAt/lastUpdate) instead of non-existent alert.timestamp
- Replace Promise.resolve() with requestAnimationFrame() for better scroll position restoration timing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 16:53:49 +01:00
courtmanr@gmail.com 96934b6c95 feat: implement consistent backup type filtering across detail card views
- Add comprehensive backup type filtering to detail card when filters are active
- Show only filtered backup types (PBS/PVE/SNAP) instead of all types
- Ensure calendar date selections respect active backup type filters
- Implement three helper functions for different data structures
- Clean up debug logging and improve scroll position handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 16:51:00 +01:00
courtmanr@gmail.com aea8b79a72 fix: improve backup health monitoring and add comprehensive validation
Enhanced backup health status calculations with more accurate age-based
categorization and improved UI filtering. Added comprehensive backup data
validation test suite and ground truth testing framework.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 15:20:59 +01:00
courtmanr@gmail.com 3430024f63 fix: resolve PVE backup detection and cross-cluster guest ID collisions
- Fix PVE backup task classification logic that incorrectly defaulted to PBS when log parsing failed
- Implement proper separation between PVE backups (actual backup files) and snapshots (point-in-time states)
- Add cross-node backup matching within clusters while maintaining cross-cluster isolation
- Resolve duplicate guest display issue caused by identical guest IDs across different Proxmox clusters
- Remove reliance on unparseable job-level backup tasks in favor of actual backup file detection

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-01 23:25:11 +01:00
courtmanr@gmail.com 2b1157c8ca debug: add logging to auto-update mechanism to troubleshoot download URL issue 2025-06-01 21:51:53 +01:00
courtmanr@gmail.com 964db89507 feat: implement webhook notifications for alerts
- Add comprehensive webhook support for Discord, Slack, Teams
- Rich embeds with color-coded severity and inline fields
- Webhook configuration UI with test functionality
- Dual payload format (Discord embeds + Slack attachments)
- Error handling with timeout and proper HTTP responses
- Test webhook endpoint with sample alert data

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-01 21:16:47 +01:00
courtmanr@gmail.com dd98d7707e feat: implement email notifications for alerts
- Add nodemailer dependency for SMTP email sending
- Implement email notification channel in AlertManager
- Add rich HTML email templates with alert details
- Create email configuration UI in settings page
- Add test email functionality with validation
- Support for multiple recipients and Gmail app passwords
- Addresses feature request in issue #111

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-01 21:03:28 +01:00
courtmanr@gmail.com f7303b573a fix: resolve custom threshold dropdown validation error
- Client now uses 'auto-detect' placeholder when node can't be determined
- Server handles node auto-detection by looking up VM/LXC in current state
- Fixes 'Please select a VM/LXC from the dropdown first' error in v3.17.3
- Addresses issue #110
2025-06-01 20:51:53 +01:00
courtmanr@gmail.com b4bae69b83 feat: make node names clickable in summary cards
Added clickable links to node names in both regular and mobile summary cards.
When a node URL is available, users can now click the node name to open the
node's web interface in a new tab.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 23:50:49 +01:00
courtmanr@gmail.com 04ae1fd0bf fix: resolve update mechanism issues and add test mode
- Fix download URL property mismatch (downloadUrl vs browser_download_url)
- Add comprehensive error logging for update failures
- Create test mode for update mechanism (UPDATE_TEST_MODE=true)
- Add test script for easy update testing without releases
- Improve restart logic for different deployment environments
- Add tar package dependency for creating update packages
- Update .gitignore to exclude backup and temp directories
- Add documentation for update testing workflow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 23:38:08 +01:00
courtmanr@gmail.com 7069f8c2a2 fix: prioritize display names in node link resolution
When custom node names are configured, the dashboard shows display names
but node links were failing because getHostUrl was checking actual node
names first. This fix reorders the lookup to check display names first,
ensuring that custom-named nodes have working links.

- Check display names before actual node names in getHostUrl
- Maintains backward compatibility for non-custom setups
- Fixes issue where clicking custom node names didn't open web interface

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 22:56:56 +01:00
courtmanr@gmail.com f2b3617941 fix: resolve stuck tooltip issue with improved event handling
- Fixed handleMouseOut to properly detect when leaving tooltip triggers
- Added document mouseleave handler to hide tooltips when mouse leaves viewport
- Added scroll event handler to prevent tooltips getting stuck during scrolling
- Improved event handling to prevent premature tooltip hiding from child element bubbling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 22:04:40 +01:00
courtmanr@gmail.com d08ca39312 fix: improve node name display and configuration handling
- Add support for custom display names via PROXMOX_NODE_NAME configuration
- Handle multi-node clusters properly by prefixing node names with endpoint name
- Fix dashboard and nodes views to show configured display names
- Fix non-sequential endpoint numbering issue in settings (node_2, node_8, node_14)
- Improve endpoint configuration loading to handle any index number

Fixes #100

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 21:41:01 +01:00
courtmanr@gmail.com bba5e6be09 fix: remove diagnostics modal icon from UI
- Removed diagnostics icon button from header
- Removed JavaScript code that managed icon visibility
- Removed event listener for diagnostics icon click
- Diagnostics functionality remains available in settings menu

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 21:16:19 +01:00
courtmanr@gmail.com aa6673537e fix: implement Apply Update functionality in settings
- Store release data when checking for updates
- Use server API for update checks to get Docker status
- Implement proper applyUpdate function with progress tracking
- Handle Docker deployments with appropriate warning message
- Add WebSocket listeners for update progress events
2025-05-31 18:25:51 +01:00
courtmanr@gmail.com 8abd768784 fix: prevent PBS host from saving with protocol prefix
- Strip http:// or https:// from PBS_HOST values in settings form
- Update placeholders to show IP/hostname format without protocol
- Fix discovery cycle to trigger for PBS-only configurations
- Resolves issue where PBS data wouldn't load due to malformed host URL

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 18:04:10 +01:00
courtmanr@gmail.com 5da22ab973 feat: integrate diagnostics into settings menu
- Move diagnostics from standalone page to settings modal tab
- Add Diagnostics tab to settings navigation
- Port all diagnostic functionality to settings UI module
- Update diagnostics button to open settings modal directly
- Remove standalone diagnostics.html page
- Preserve all features: report generation, sanitization, copy/download

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 17:46:19 +01:00
courtmanr@gmail.com 34b66f166a fix: resolve custom threshold configuration errors
- Add validation to prevent API calls with missing nodeId/vmid parameters
- Implement proper guest selector initialization for edit modal
- Add server-side error handlers to return JSON instead of HTML for API routes
- Include debug logging for threshold configuration troubleshooting
- Ensure dropdown selection properly populates all required hidden fields

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 11:48:39 +01:00
courtmanr@gmail.com eba6074fd7 feat: consolidate alert functionality into unified Alert Configuration tab
• Merge separate "Alerts" and "Custom Thresholds" tabs into single "Alert Configuration" tab
• Improve UX by organizing all alert settings in one logical location
• Add comprehensive custom per-VM/LXC threshold management system with migration support
• Include blue "T" badges for VMs with custom thresholds in dashboard
• Implement full CRUD operations for threshold configurations via REST API
• Support migration-aware threshold keys (endpointId:vmid) for cluster environments

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 11:32:16 +01:00
courtmanr@gmail.com be303cea3a refactor: improve type safety in guest ID comparisons
Replace loose equality/inequality operators with strict comparisons and proper type conversion for guest vmid matching:

- Use parseInt() with strict equality for all guest ID comparisons
- Prevents type coercion bugs between string and number vmids
- Ensures consistent behavior across different data sources
- Improves reliability in multi-cluster environments

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 09:35:12 +01:00
courtmanr@gmail.com ef7ad49c3b fix: resolve guest identification issues in backups tab
Fixed guest lookup logic to properly handle guests with the same vmid on different nodes by implementing unique guest identification throughout the backup data pipeline:

- Updated guest filtering to use vmid-node combinations instead of simple vmid matching
- Enhanced PBS vs PVE backup system awareness for node-specific vs centralized filtering
- Fixed calendar heatmap data structures to prevent guest data mixing
- Improved calendar date filtering to use unique guest identifiers
- Added node-aware filtering for backup tasks and snapshot detection

This resolves issues where the filtered summary and calendar would incorrectly display or mix data from guests sharing the same vmid across different nodes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 09:29:47 +01:00
courtmanr@gmail.com c0e988303f fix: resolve sticky column header issue in storage tab
Apply the same sticky header pattern used in dashboard to fix column header
positioning in storage table. Individual header cells are now sticky instead
of relying on row-level sticky positioning.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 00:33:34 +01:00
courtmanr@gmail.com 91dc6ffee5 fix: update backup filter color scheme for better visual distinction
- Changed PBS filter from green to purple
- Changed PVE filter from yellow to orange
- Changed Snapshots filter from blue to yellow
- Improves accessibility and visual clarity between backup types

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 23:47:56 +01:00
courtmanr@gmail.com 7216d7e977 fix: resolve PVE backup visibility issue with hybrid node discovery and filtering fixes
Implements comprehensive solution for GitHub issue #80 where PVE backups stored on local node storage weren't appearing in the backup tab. Adds intelligent node discovery system that creates direct connections to access node-local storage while maintaining backward compatibility with shared storage setups.

Key improvements:
- Hybrid discovery approach with automatic node IP detection and connection caching
- Fixed data structure mismatches and key collision issues for duplicate VMIDs across nodes
- Corrected PVE backup filtering logic in summary cards and calendar views
- Enhanced API token permission documentation for storage content access
- Optimized connection handling with reduced timeouts for faster discovery cycles

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 23:43:56 +01:00
courtmanr@gmail.com 115460990c feat: enhance settings with auto-updates, theme management, and version checking
- Add comprehensive auto-update configuration with scheduling options
- Move theme toggle to settings with Auto/Light/Dark modes and system preference detection
- Implement automatic version checking against GitHub releases with visual status indicators
- Reorganize test connections to be tab-specific (PVE/PBS tabs only)
- Add helpful documentation links for API token creation
- Fix configuration loading by removing incorrect success property check
- Improve settings organization with logical grouping of related features

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 18:14:36 +01:00
courtmanr@gmail.com e4dc686944 fix: prevent sticky column border transparency during horizontal scroll
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 18:00:29 +01:00
courtmanr@gmail.com d6c8549d50 feat: redesign settings menu with tabbed interface for better organization
- Replace single-page settings form with clean tabbed navigation
- Organize settings into logical sections: Proxmox VE, Backup Server, Alerts, System
- Improve visual hierarchy and reduce cognitive load
- Restore comfortable spacing while maintaining app's condensed philosophy
- Preserve all existing functionality with enhanced user experience

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 17:53:08 +01:00
courtmanr@gmail.com 02d63661ac fix: resolve sticky column border visual artifacts at different resolutions
- Add bottom border to sticky columns in dashboard, PBS, and storage views
- Ensure sticky cells inherit row background colors (failed/running tasks)
- Fix issue where every other row appeared grouped due to missing borders

Fixes #87

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 17:23:13 +01:00
courtmanr@gmail.com ea14f179a7 fix: make update system Docker-aware and prevent container modifications
- Added Docker environment detection to prevent in-place updates
- Show Docker-specific update instructions in UI instead of update button
- Provide proper docker pull commands for Docker users
- Updated README with web-based update documentation
- Ensure Docker container immutability is maintained
2025-05-30 16:35:24 +01:00
courtmanr@gmail.com 81320b17fa feat: add web-based update management system
- Created UpdateManager class for handling application updates
- Added update check, download, and apply functionality
- Integrated update UI into settings modal with progress tracking
- Added version display and update notifications
- Implemented proper backup and rollback mechanism
- Added Docker-aware restart logic
- Enhanced configuration API to include version information
- Added real-time progress updates via WebSocket
2025-05-30 16:31:14 +01:00
courtmanr@gmail.com 839bfc2b59 feat: replace setup screen with automatic settings modal for initial configuration
- Remove redirect to setup.html in favor of always serving main application
- Add automatic detection of placeholder configuration values on page load
- Automatically open settings modal when configuration needs setup
- Provide seamless unified interface for both initial setup and ongoing management
- Eliminate need for separate setup.html page while maintaining full functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 15:10:27 +01:00
courtmanr@gmail.com 594d1dc644 fix: resolve additional PVE/PBS server functionality in settings
- Fix indexing logic to correctly count existing endpoints
- Add support for loading existing additional endpoints from config
- Implement proper form population for saved additional servers
- Ensure empty state management works correctly
- Fix dynamic endpoint addition and removal functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 14:10:22 +01:00
courtmanr@gmail.com a970e8e0e6 improve: clarify settings modal UI for primary vs additional endpoints
- Add descriptive text under section headers to explain purpose
- Change button text from "Add PVE Server" to "Add Another PVE Server"
- Add plus icons to add buttons for better visual clarity
- Include empty state messages in additional server containers
- Improve button tooltips and visual hierarchy
- Add remove endpoint functionality with proper empty state handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 14:03:10 +01:00
courtmanr@gmail.com db3c40645d fix: resolve undefined property access error in settings modal
- Add safe default structure for configuration properties
- Ensure currentConfig never remains undefined/null
- Always render form even if config loading fails
- Replace unsafe property access with safe variable references
- Prevent "Cannot read properties of undefined (reading 'host')" errors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 13:56:49 +01:00
courtmanr@gmail.com d26f4b642f feat: redesign settings as comprehensive modal-based configuration system
- Replace settings tab with settings icon in top-right header
- Implement comprehensive modal interface for ALL .env variables
- Add support for multiple PVE and PBS endpoints with dynamic forms
- Include all service settings (intervals) and alert configuration
- Support both old structured format (setup) and new raw .env format
- Add connection testing and form validation
- Enable complete web-based configuration without SSH access

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 13:49:53 +01:00
courtmanr@gmail.com c2620d8d45 feat: add Settings tab for configuration management
- Add Settings tab to main interface with configuration form
- Create settings.js module for handling configuration updates
- Allow editing Proxmox credentials without SSH access
- Support partial updates (keep existing token secret if not provided)
- Integrate settings module into tab system and initialization
- Update server configApi to handle partial configuration updates

Users can now edit their configuration through the web interface after initial setup.
2025-05-30 12:04:33 +01:00
courtmanr@gmail.com d767f687ca fix: eliminate dashboard initialization error on first load
- Make updateDashboardTable gracefully handle uninitialized elements
- Try to find elements if not already cached
- Silently return instead of logging error during initial page load

This prevents the 'Dashboard table body or status element not found' error when the socket connection updates arrive before DOM is ready.
2025-05-30 11:57:18 +01:00
courtmanr@gmail.com 72547e3179 fix: improve configuration readiness detection in setup flow
- Add system info to health endpoint including configPlaceholder status
- Update setup page to check correct health properties
- Include hasData and clientsInitialized flags for better readiness detection

This ensures the 'Continue to Pulse' button appears when the server is actually ready with data, not just when it times out.
2025-05-30 11:49:11 +01:00
courtmanr@gmail.com bf27ef2a6b feat: improve setup flow with health check and Continue button
- Add health endpoint polling after configuration save
- Show progress messages and loading spinner during initialization
- Display 'Continue to Pulse' button when server is ready
- Add explicit /setup.html route handler
- Improve error handling and logging in configApi
- Prevent form submission on button clicks
- Add percentage progress indicator during setup

This provides better user feedback during the configuration process and ensures users don't navigate to the dashboard before the server is ready.
2025-05-30 11:35:40 +01:00
courtmanr@gmail.com e74f8bf944 fix: initialize PulseApp before using theme on setup page
- Create PulseApp object before loading theme.js
- Add safety check before calling theme.init()
- This fixes "PulseApp is not defined" error on setup page

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 11:16:05 +01:00
courtmanr@gmail.com c3276951fb fix: prevent browser autofill issues on setup form
- Add autocomplete="off" to form and text inputs
- Add autocomplete="new-password" to password fields
- Add debug logging to see what's being saved
- This prevents browser from auto-filling URL into token secret field

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 11:14:37 +01:00
courtmanr@gmail.com 07ee4f4183 fix: correct test connection success message
- Make success message text dynamic instead of hardcoded
- Test connection now shows "Connection test successful\!"
- Save configuration still shows "Configuration saved. Redirecting..."
- Prevents confusion when testing connection

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 11:01:16 +01:00
courtmanr@gmail.com 97ae118b2c feat: add comprehensive configuration options to setup page
- Add advanced settings section with all .env.example options
- Include metric/discovery intervals configuration
- Add alert system configuration (enabled/thresholds)
- Add PBS node name field (required for non-Sys.Audit tokens)
- Update config API to handle all settings
- Group settings logically in generated .env file
- Load and save all configuration options properly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 10:53:51 +01:00