- Added TypeScript definitions for nodemailer to improve type safety in email handling.
- Refactored comment email test handler to utilize a dedicated logger for better error tracking and debugging.
- Simplified email configuration retrieval by consolidating it into a single object for clarity and maintainability.
This update enhances the email notification system's robustness and developer experience.
Introduce an email field in the user profile, allowing users to input their email address. Implement email format validation on the server side to ensure proper formatting before saving. Update the profile form to include the email input, enhancing user experience and notification capabilities.
Made-with: Cursor
Skip reply notification sending when receiver email format is invalid, while preserving best-effort behavior and adding test coverage for invalid receiver email.
Made-with: Cursor
Pass postId and commentId into reply notification flow and log structured failure context with receiverUserId and reason while keeping best-effort behavior unchanged.
Made-with: Cursor
Trigger reply notification email after comment creation for public and unlisted endpoints with gated checks for global switch, SMTP readiness, receiver preferences, and self-notify suppression.
Made-with: Cursor
Remove legacy guest compatibility fallback in service logic so undefined guestIsAnonymous is treated as false and guest email stays required by default. Update tests to assert missing anonymous flag without email now fails.
Made-with: Cursor
Add a temporary legacy fallback so guest payloads missing both guestEmail and guestIsAnonymous are treated as anonymous during rollout. Add service-level and API body parsing tests for guest email rules, logged-in ignore behavior, and public/unlisted passthrough.
Made-with: Cursor
Add guest email validation with anonymous-mode exceptions and persist guestEmail/guestIsAnonymous in comment creation. Update comment form to collect anonymous and email fields for guests and reset them after successful submit.
Made-with: Cursor
Add IP-based rate limiting for the admin test-email API and set SMTP connection/send timeouts to avoid long blocking requests, with extra admin email format validation.
Made-with: Cursor
Add an admin-only test email endpoint with SMTP config and admin email validation, plus a config-page action button to trigger test sends and minimal service tests for key 400 failure paths.
Made-with: Cursor
Apply trim/blank-to-empty normalization for comment email/smtp global keys in setGlobalConfigValue, and replace registry test casts with KnownConfigKey-safe assertions plus normalization coverage.
Made-with: Cursor
- Introduced user notes for media assets, allowing admins and users to add descriptions.
- Enhanced media asset listing with reference contexts, providing links to related content.
- Updated API endpoints to support note saving and retrieval.
- Modified database schema to include user notes and related fields.
- Improved search functionality to include user notes in media asset queries.
Made-with: Cursor
- Introduced new types for audit rows and reference details to improve data structure.
- Updated the media storage audit logic to include references for each asset, allowing for better tracking of media usage.
- Enhanced UI to display reference sources for media assets, clarifying the relationship between assets and their references.
- Improved cleanup descriptions and toast messages for better user understanding of actions taken.
Made-with: Cursor
- Added site name configuration to global settings.
- Improved public home layout with dynamic header and navigation.
- Introduced detailed view for posts and timeline with visibility controls.
- Implemented admin interface for site configuration management.
- Enhanced user experience with responsive design adjustments and improved loading states.
Transition the database from PostgreSQL to SQLite, updating migration files, database connection settings, and schema definitions accordingly. Adjust package dependencies to reflect the new database type and ensure compatibility. Remove obsolete migration files and snapshots related to PostgreSQL. Enhance error handling in authentication and configuration services to accommodate the new database structure.
Add new database tables for global and user configurations, along with corresponding migration files. Introduce API endpoints for managing configuration values, including retrieval and updates. Enhance authentication context to support configuration access, and implement error handling for configuration-related operations.
Implement the username-password register and login flow with cookie-backed sessions, auth APIs, and login/register pages. Include the supporting auth schema, migration files, service validation fixes, and planning/design docs for the scoped delivery.
Made-with: Cursor