Skip to content

v16.2.0

Choose a tag to compare

@EdiWang EdiWang released this 03 Aug 23:31
· 112 commits to master since this release

New Features

  • Added Mermaid diagram support for Markdown posts and post preview pages
  • Added a built-in Moonglade.Email module with database-backed email outbox processing
  • Added configurable email outbox worker settings, including batch size, polling interval, lease duration, retry limits, and retry delays
  • Added a “Clear all” action for activity logs, with the clear operation recorded in the activity log
  • Added a Development-only option to bypass local-account TOTP verification with Authentication:Totp:Required=false

Updates & Improvements

  • Replaced the legacy external Moonglade.Email Azure Function client with in-process queued email delivery
  • Queued comment, reply, Webmention, and test-email notifications through the new durable outbox
  • Updated the notification settings page to show configured email provider, sender address, and outbox worker status
  • Migrated Markdown, page HTML, page CSS, and custom CSS editing to the unified Moonglade.Editor code editor
  • Switched Moonglade.Editor assets to the Moonglade.Editor.StaticAssets NuGet package served from /_content/Moonglade.Editor.StaticAssets/moonglade-editor/
  • Removed leftover Monaco editor and inline attachment assets
  • Enabled response compression with Brotli and Gzip, including feed and manifest MIME types
  • Fixed Vary header handling in the preferred color scheme middleware
  • Refreshed the local account management UI for password changes and authenticator reset
  • Removed outdated full Azure deployment guidance and the ediwang-specific WAF Bicep asset

Upgrade Information

  • Automatic database upgrade: A new EmailOutboxMessage table will be created for durable email notification delivery. If automatic migration is disabled, apply the included SQL Server or PostgreSQL migration script manually.
  • Email notification configuration: The previous Email:ApiEndpoint, Email:ApiKey, and Email:ApiKeyHeader settings are no longer used. Configure the new Email section with Provider, Azure Communication Services or SMTP settings, and Email:OutboxWorker options.
  • Email delivery behavior: Email delivery is now at-least-once through the database outbox. If the app stops while sending, a later retry may occasionally send a duplicate notification.
  • Outbox worker: Setting Email:OutboxWorker:Enabled=false stops in-process delivery but does not stop notification enqueueing. Use this only when another process is responsible for draining the outbox.
  • Local account authentication: Authentication:Totp:Required=false bypasses the TOTP step only in the Development environment. Production and other non-Development environments still require TOTP.