- Upgraded TypeScript dependency from 5.7.3 to 5.8.3 for improved type checking and features.
- Modified ContactForm component to include a hidden input for the domain, capturing the current hostname.
- Updated API contact handling to log and utilize the domain information in email notifications.
- Refactored email sending functions to conditionally include the domain in the sender's address for better context.
- Removed localStorage fallback from CookieBanner, simplifying consent management.
- Refactored manual review email handling in the Contact API to utilize HTML templates for better structure and security.
- Enhanced email content generation by escaping HTML special characters and using template files for dynamic data insertion.
- Introduced a utility function to escape HTML special characters in email content, preventing potential XSS vulnerabilities.
- Updated email templates to utilize the escapeHtml function for user inputs, including name, email, message, IP address, and user agent.
- Ensured that all dynamic content in emails is properly sanitized before being rendered, enhancing overall security and reliability.
- Added detailed logging for spam check attempts and results to aid in debugging.
- Implemented error handling for API key issues and service unavailability, ensuring the system fails open by returning false if Gemini is unreachable.
- Maintained existing spam detection logic while enhancing robustness and user feedback during the process.
- Integrated Gemini AI for spam detection in the contact form API, returning a token for manual review requests if spam is detected.
- Implemented a manual review UI in the Form.astro component, allowing users to submit their email and justification for review.
- Updated email handler to send manual review requests to a designated email address.
- Enhanced rate limiter configuration to allow more attempts in a shorter duration for better user experience.
- Added new dependencies: jsonwebtoken and @types/jsonwebtoken for handling JWTs in the spam detection process.
- Deleted multiple blog-related components including Grid, GridItem, Headline, List, ListItem, Pagination, RelatedPosts, SinglePost, and Tags to simplify the codebase.
- Removed associated configurations from src/config.yaml, eliminating unused blog settings.
- Cleaned up email templates and layouts related to blog functionality to enhance maintainability.
- Updated styles in tailwind.css for consistency following the removal of blog components.
- Added luxon library for improved date handling.
- Updated UptimeStatusIsland component to format and display local time for heartbeats.
- Enhanced state management to track user timezone and locale.
- Ensured UTC formatting for timestamps in API responses.
- Simplify SMTP transporter setup for production by removing unnecessary authentication for local Postfix relay.
- Enhance error and success logging for SMTP connection verification.
- Update development mode to log email output to console with a warning message.
- Modify the from address logic to use a default 'noreply' address if SMTP_USER is not set in production.
- Add debug logging for email sending details, including connection target and sender/recipient information.
- Simplify error logging by removing specific SMTP error messages while retaining the full error stack for troubleshooting.