- Add server/index.js that shows clear migration instructions
- Prevents v3 from running with partial v4 files
- Users see clear error message in logs with migration steps
- Update build script to include shim in releases
- Remove .air.toml (hot reload config)
- Remove tygo.yaml (TypeScript generation)
- Remove systemd service files (not needed for Docker)
- Remove .env.example (outdated config format)
- Remove Makefile (development convenience)
- Remove scripts/ directory (development scripts)
- Remove testing-tools/ directory (only for testing)
These files are only needed for development and shouldn't be in the production repository
- Replace real Gmail app password with placeholder in all test files
- Fix remaining production node name references in documentation
- Ensure no sensitive credentials remain in codebase
IMPORTANT: The exposed Gmail app password should be revoked immediately
- Replace personal email with generic test@example.com
- Replace production node names (delly, pimox) with generic examples
- Replace specific security tokens with placeholder values
- Update IP addresses to use localhost or generic examples
- Sanitize all testing files and documentation
The issue: Backend returns empty password for security, so when UI
loaded the config and sent it back for testing, it had no password.
Solution: Don't send config from UI - let backend use the saved
config which has the actual encrypted password.
This fixes the issue where UI said "success" but no email was sent.
- Frontend was sending 'server' but backend expects 'smtpHost'
- Fixed field mapping in testEmailConfig function
- Changed config type to 'any' since backend expects different structure
- Removed provider and starttls fields not needed by backend
The UI test email button should now work correctly.
- Backend now uses From address as recipient when To array is empty
- Fixed sendEmail and sendGroupedEmail to not check for recipients
- Added detailed logging for SMTP operations
- Fixed recipient logging to show actual recipients sent
This allows users to send test emails to themselves without
having to enter their email address in the recipients field,
as promised by the UI.
- Fix alert acknowledgement API calls to use correct URL format
- Remove all TypeScript 'any' types - notifications.ts now properly typed
- Add comprehensive alert and threshold testing scripts
- Add final system verification test
- Clean up test artifacts and screenshots
- Update testing tools documentation in package.json and CLAUDE.md
- Verify all systems operational with 100% test pass rate
- Fix Gmail email configuration (field mapping between frontend/backend)
- Implement proper AES-256-GCM encryption for sensitive config files
- Add responsive column hiding for Storage tab on mobile devices
- Fix email configuration persistence and auto-populate recipients
- Add comprehensive testing tools for UI and API validation
- Fix alert acknowledge/clear functionality returning 404 errors
- Improve mobile UX: Storage shows only essential columns on small screens
- Revert dashboard to consistent table view (removed card layout experiment)
- Fix various UI issues: threshold detection, email template spacing
- Update notification system to use actual node data in test emails