Commit Graph

191 Commits

Author SHA1 Message Date
courtmanr@gmail.com 1d6f4b8a64 feat: add RC testing version with visual indicators
- Add RC badge to header for easy identification
- Update page title to indicate RC version
- Prepare v3.22.2-rc.1 for testing update mechanism
2025-06-04 15:23:03 +01:00
courtmanr@gmail.com bb4a06d1bb feat: implement sudoless update system with polkit integration
- Add polkit rule for sudoless service management
- Improve update manager with multi-strategy restart approach
- Fix npm dependency conflicts in update process
- Add comprehensive test suite for update system
- Enhance frontend update progress tracking
- Update install script with automatic polkit setup
2025-06-04 15:20:00 +01:00
courtmanr@gmail.com c8e1f5d360 chore: release v3.22.1-rc.1 2025-06-04 14:24:51 +01:00
courtmanr@gmail.com acd2223ff6 chore: release v3.22.0 2025-06-04 14:21:23 +01:00
courtmanr@gmail.com b827a90bd9 chore: release v3.21.0-rc.2 2025-06-04 10:53:30 +01:00
courtmanr@gmail.com ccf3525618 chore: release v3.21.0-rc.1 2025-06-03 21:11:47 +01:00
courtmanr@gmail.com 4c67aab7e8 chore: release v3.20.0 2025-06-02 18:50:19 +01:00
courtmanr@gmail.com 8ff6f8f366 test: significantly improve test coverage and fix Jest configuration
## Test Coverage Achievements
- **apiClients.js**: 100% statement coverage 
- **configLoader.js**: 100% statement coverage 
- **pbsUtils.js**: 100% statement coverage 
- **Overall coverage**: 77.97% (up from 77.83%)
- **All tests passing**: 116/116 

## Key Improvements

### Jest Configuration
- Fix Jest configuration to use V8 coverage provider instead of Babel
- Resolve Babel/Istanbul errors that were preventing tests from running
- Add `testEnvironment: "node"` and `coverageProvider: "v8"` settings

### Test Coverage Enhancements
- **pbsUtils.js**: Export and test `categorizeAndCountTasks` function for complete coverage
- **configLoader.js**: Add test for config directory loading path
- **dataFetcher.js**: Add defensive null checking for API clients and comprehensive test fixes
- **All test files**: Update test expectations to match current application behavior

### Test Reliability
- Fix config tests to match new setup mode behavior instead of error throwing
- Update dataFetcher tests for correct API call sequences and error messages
- Add proper mock data for backup functionality testing
- Resolve test flakiness with proper async handling

### Code Quality
- Add null safety check in dataFetcher for missing API client endpoints
- Export previously internal function for better testability
- Maintain backward compatibility while improving robustness

## Files Changed
- `package.json`: Update Jest configuration
- `server/pbsUtils.js`: Export categorizeAndCountTasks function
- `server/dataFetcher.js`: Add null client validation
- `server/tests/*.test.js`: Comprehensive test updates and additions

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 09:49:48 +01:00
courtmanr@gmail.com 945c3e4320 fix: upgrade Nodemailer to 7.0.3 and resolve Express 5 route conflicts
- Upgraded Nodemailer 6.10.1 → 7.0.3 (fully compatible with SMTP usage)
- Temporarily keep Express 4.21.2 due to path-to-regexp v8 breaking changes
- Removed duplicate threshold routes from configApi.js (moved to thresholdRoutes.js)
- Express 5 upgrade will require route pattern updates for compatibility

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 09:47:21 +01:00
courtmanr@gmail.com ade598d295 chore: upgrade Express to 5.1.0 and Nodemailer to 7.0.3
- Express 4.21.2 → 5.1.0: Major version upgrade with improved performance
- Nodemailer 6.10.1 → 7.0.3: Major version upgrade with SESv2 support
- Both upgrades are fully compatible with existing codebase
- No breaking changes affect current SMTP usage or Express routes
- Automated dependency security and feature improvements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-02 09:38:41 +01:00
courtmanr@gmail.com 6b9c464072 chore: release v3.19.0 2025-06-01 23:27:39 +01:00
courtmanr@gmail.com 3ba287fd50 chore: release v3.18.0 2025-06-01 21:30:12 +01:00
courtmanr@gmail.com 29889e5e10 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 b58baa9d14 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 d0c7b9fbc1 3.17.3 2025-05-31 22:57:26 +01:00
courtmanr@gmail.com ff17a1786a 3.17.2 2025-05-31 22:36:12 +01:00
courtmanr@gmail.com 65a556bc68 fix: update Express to 4.21.2 to resolve security vulnerabilities
Fixes 7 Dependabot security alerts:
- HIGH: path-to-regexp ReDoS vulnerabilities (CVE-2024-45296, CVE-2024-45813)
- HIGH: body-parser DoS vulnerability (CVE-2024-45590)
- LOW: cookie out of bounds characters (CVE-2024-47764)
- LOW: express XSS via response.redirect() (CVE-2024-43796)
- LOW: send/serve-static template injection XSS (CVE-2024-43799, CVE-2024-43800)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 22:33:31 +01:00
courtmanr@gmail.com 0cfce98e16 chore: release v3.17.1 2025-05-31 22:10:02 +01:00
courtmanr@gmail.com 12bf7d2473 chore: release v3.17.0 2025-05-31 18:12:32 +01:00
courtmanr@gmail.com 6c2236a9a7 Revert "chore: bump version to 3.16.2"
This reverts commit c466a58f7a.
2025-05-31 15:47:55 +01:00
courtmanr@gmail.com e1e05731c9 chore: bump version to 3.16.2 2025-05-31 15:45:28 +01:00
courtmanr@gmail.com 01278509c5 chore: bump version to 3.16.1
- Fix installer and dependency issues
- Prepare for patch release
2025-05-31 15:36:05 +01:00
courtmanr@gmail.com 88c5146bee fix: resolve path-to-regexp error by pinning Express to 4.19.2
- Downgrade Express from ^4.21.2 to 4.19.2 to avoid path-to-regexp compatibility issues
- Express 4.21.x includes a newer version of path-to-regexp with breaking changes
- Routes with multiple parameters (e.g., /api/thresholds/:endpointId/:nodeId/:vmid) were causing startup failures
- This resolves the "pulse-monitor.service: Failed with result 'exit-code'" error

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 14:42:50 +01:00
courtmanr@gmail.com 93c14b6ecb fix: resolve Express v5 compatibility issues and improve server startup
- Downgrade Express from ^5.1.0 to ^4.21.2 to resolve path-to-regexp v8 compatibility issues
- Fix "Missing parameter name" server startup error caused by Express v5/path-to-regexp v8 breaking changes
- Move initial discovery cycle to background execution to allow immediate HTTP server startup
- Remove conflicting server/node_modules directory that contained outdated path-to-regexp

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 14:17:11 +01:00
courtmanr@gmail.com 1590d7a385 chore: release v3.16.0 2025-05-31 11:51:08 +01:00
courtmanr@gmail.com ac5b90755a chore: release v3.15.1 2025-05-31 00:14:32 +01:00
courtmanr@gmail.com b804acfe2d chore: release v3.15.0 2025-05-30 23:50:41 +01:00
courtmanr@gmail.com d48998e611 chore: release v3.14.0 2025-05-30 18:20:33 +01:00
courtmanr@gmail.com e1bc163886 chore: release v3.13.0 2025-05-30 15:22:48 +01:00
courtmanr@gmail.com d44a0f04d8 fix: remove --env-file flag to allow server start without .env file
The --env-file=.env flag causes Node.js to exit with code 9 when the file doesn't exist.
Using just -r dotenv/config allows the server to start and redirect to the setup wizard.
2025-05-30 11:40:02 +01:00
courtmanr@gmail.com 395c7c4669 fix: use GNU tar to eliminate macOS extended attributes completely
- Auto-detect and prefer GNU tar (gtar) when available
- Fallback to BSD tar with COPYFILE_DISABLE=1 if GNU tar not available
- Verified: GNU tar produces clean tarballs with zero warnings
- Final solution for macOS extended attribute issues
2025-05-29 23:39:51 +01:00
courtmanr@gmail.com 7828346de0 fix: completely eliminate macOS extended attributes from tarballs
- Strip extended attributes from source files before copying
- Add final cleanup step to remove attributes from staging directory
- Verified: tar extraction produces zero warnings
- Version 3.12.5 - the definitive fix
2025-05-29 23:35:36 +01:00
courtmanr@gmail.com 18c2579bc2 fix: add COPYFILE_DISABLE=1 to all cp commands in release script
- Prevents macOS extended attributes from being included in tarball
- Fixes tar extraction warnings for all copied files
- Version bump to 3.12.4 for testing
2025-05-29 23:31:54 +01:00
courtmanr@gmail.com c770c07671 chore: release v3.12.3
- Test tarball creation script to prevent macOS extended attribute warnings
- Minor improvements to data fetcher
2025-05-29 23:22:42 +01:00
courtmanr@gmail.com f8d7410976 chore: begin development for next release 2025-05-29 22:57:02 +01:00
courtmanr@gmail.com 41bcd72c7d chore: release v3.12.2 2025-05-29 22:52:51 +01:00
courtmanr@gmail.com ac4ad50360 chore: release v3.12.1 2025-05-29 21:59:02 +01:00
courtmanr@gmail.com 5b7b8bc787 chore: begin development for next release 2025-05-29 16:34:10 +01:00
courtmanr@gmail.com c2d2abbcd9 chore: release v3.12.0 2025-05-29 16:30:07 +01:00
courtmanr@gmail.com 937445c64e chore: begin development for next release 2025-05-28 00:47:52 +01:00
courtmanr@gmail.com b18001df1f chore: release v3.11.1 2025-05-28 00:42:50 +01:00
courtmanr@gmail.com c191923310 chore: begin development for next release 2025-05-28 00:25:02 +01:00
courtmanr@gmail.com 1fd9442170 chore: release v3.11.0 2025-05-28 00:23:20 +01:00
courtmanr@gmail.com e567eb8b41 chore: begin development for next release 2025-05-27 21:17:36 +01:00
courtmanr@gmail.com ac30d1a12b chore: release v3.10.1 2025-05-27 21:13:32 +01:00
courtmanr@gmail.com baf209b3fa Post-release: Update UI components and JavaScript files 2025-05-27 19:56:42 +01:00
courtmanr@gmail.com 55393ed916 chore: set release version 3.9.0 2025-05-27 13:09:42 +01:00
dependabot[bot] 3d7883620d build(deps): bump p-limit from 4.0.0 to 6.2.0 (#79)
Bumps [p-limit](https://github.com/sindresorhus/p-limit) from 4.0.0 to 6.2.0.
- [Release notes](https://github.com/sindresorhus/p-limit/releases)
- [Commits](https://github.com/sindresorhus/p-limit/compare/v4.0.0...v6.2.0)

---
updated-dependencies:
- dependency-name: p-limit
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-27 09:59:17 +01:00
courtmanr@gmail.com ead3460499 chore: set release version 3.8.0 2025-05-26 22:08:31 +01:00
courtmanr@gmail.com 3f3afaac5d fix: Resolve test failures and integrate recent UI/backend updates 2025-05-26 22:08:12 +01:00