0.4.0 (2026-04-29)¶
Kroki integration as a server-side rendering engine, D2 diagram support, significant UX/UI improvements, and full platform responsiveness.
✨ Features¶
- Kroki integration: self-hosted server-side diagram rendering engine via Docker (
yuzutech/kroki). PlantUML now renders through Kroki instead of the publicplantuml.comserver, keeping diagram content private. - D2 diagram support: new diagram type with a modern declarative language. Includes rendering via Kroki, Monaco Editor syntax highlighting, 19 theme options (light, dark, special), syntax validation, AI-powered fixes, and full AI chat support.
- Public render endpoint:
POST /api/v1/diagrams/renderaccepts source code and diagram type, returns rendered SVG. Accessible without authentication for shared diagrams. - Project selector in editor: dropdown with search to switch projects without leaving the editing view.
- Redesigned diagram panel: floating sidebar with search, quick actions, active diagram indicator, and folder hierarchy.
- IDE-style code editor: dark theme, macOS title bar, file tab with error indicator, status bar with error/line/type info.
- Improved dashboard: personalized greeting with user name, stats cards (projects, diagrams, last activity, current plan).
- Redesigned new diagram modal: horizontal layout with type selector (Mermaid, PlantUML, D2), translated descriptions, and visual checkmark.
- Resizable description panel: resize handle accessible outside the container, width persisted per diagram.
🔧 Internal¶
- Kroki Docker service added to all 3 Docker Compose configurations (root, local-full, external-mongodb).
KrokiClientwithIKrokiClientinterface following SOLID, 26 supported diagram types, configurable timeout (30s).KROKI_URLconfigurable via environment variable (defaulthttp://kroki:8000).- Centralized
diagramRenderer.tsutility routing Mermaid to client-side and PlantUML/D2 to backend. d2ConfigManager.tsfor embedding/parsing D2 themes viavarsblock.validate_d2validator inSyntaxValidatorwith brace balancing.- AI prompts with full D2 context (chat, generation, improvement, fix).
plantuml-encoderdependency removed from frontend.
♻️ Refactors¶
- Full responsiveness: all views adapted for mobile and tablet (editor, dashboard, profile, shared view, navbar).
CodeEditorcomponent extended with D2 language support.- CSS utility
.scrollbar-hidefor invisible scrollbar with scroll functionality.
🌐 Translations¶
- i18n keys for D2: diagram type, description, theme hint, rendering errors.
- i18n keys for dashboard: greeting, stats.
- i18n keys for editor: diagram name, diagram type, Mermaid/PlantUML descriptions.
- Hardcoded strings replaced with
t()keys in code panel and sidebar.