Skip to content

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 public plantuml.com server, 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/render accepts 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).
  • KrokiClient with IKrokiClient interface following SOLID, 26 supported diagram types, configurable timeout (30s).
  • KROKI_URL configurable via environment variable (default http://kroki:8000).
  • Centralized diagramRenderer.ts utility routing Mermaid to client-side and PlantUML/D2 to backend.
  • d2ConfigManager.ts for embedding/parsing D2 themes via vars block.
  • validate_d2 validator in SyntaxValidator with brace balancing.
  • AI prompts with full D2 context (chat, generation, improvement, fix).
  • plantuml-encoder dependency removed from frontend.

♻️ Refactors

  • Full responsiveness: all views adapted for mobile and tablet (editor, dashboard, profile, shared view, navbar).
  • CodeEditor component extended with D2 language support.
  • CSS utility .scrollbar-hide for 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.