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_promptfor refine operations. - Chat session provider now correctly propagates to diagram preferences.
- Fixed missing
exceptblock in chat servicesend_message.
♻️ Refactors¶
- Removed dead code from legacy conversation/improvement chat modes.
- Removed
modefield from chat messages (data model simplification).