Skip to content

0.3.0 (2026-04-23)

Social login with OAuth, AI description generation, and unified smart chat.

✨ Features

  • OAuth / Social Login with Google: provider-agnostic architecture (IOAuthProvider + OAuthProviderFactory) with Google OAuth 2.0 / OpenID Connect as the first provider. Extensible for future providers (GitHub, Microsoft) by adding only an adapter class.
  • OAuth managed as an integration from the admin panel (enable/disable).
  • Automatic account linking: if the OAuth email matches an existing account, the provider is linked automatically.
  • New OAuth users get automatic account creation with FREE subscription.
  • MFA bypass for OAuth logins — 5-day JWT issued directly.
  • CSRF protection via server-side state tokens (10-minute TTL, MongoDB auto-cleanup).
  • ID token validation (signature, issuer, audience, expiration) for OpenID Connect.
  • Rate limiting on OAuth callback endpoint.
  • Audit logging for all OAuth events (login success/failure, account linking).
  • Profile page shows linked OAuth providers with link date.
  • Language selector on login and register pages (top-right corner).
  • App version displayed on the login page.
  • MFA banner hidden for OAuth sessions (MFA does not apply to social logins).
  • Free-form AI description generation: generates structured Markdown descriptions for existing diagrams, with the ability to refine the generated description.
  • Unified chat with automatic intent detection: the AI chat automatically detects whether the user wants to converse, generate a new diagram, or improve the existing one — no need to manually select a mode.

🐛 Fixes

  • Improved description prompts for consistent structured Markdown output.
  • Description generation now respects the diagram's preferred provider.
  • Added DeepSeek support to _call_with_prompt for refine operations.
  • Chat session provider now correctly propagates to diagram preferences.
  • Fixed missing except block in chat service send_message.

♻️ Refactors

  • Removed dead code from legacy conversation/improvement chat modes.
  • Removed mode field from chat messages (data model simplification).