Skip to content

Releases: likec4/likec4

v1.59.2

Choose a tag to compare

@likec4-ci likec4-ci released this 22 Jul 18:58
Immutable release. Only release title and notes can be modified.
f970062

🐞 Bug Fixes

  • Fixed dynamic views that reference imported elements from another project. Thanks @ckeller42, #3135, fixes #2989
  • Allow dynamic view flow keywords such as alt to be used as metadata keys again. Thanks @ckeller42, #3114, fixes #3110
  • Fixed npx installs of the MCP server by publishing its runtime dependencies. Thanks @ckeller42, #3113

Full Changelog: v1.59.1...v1.59.2

v1.59.1

Choose a tag to compare

@likec4-ci likec4-ci released this 20 Jul 20:03
Immutable release. Only release title and notes can be modified.
d583a1c

🐞 Bug Fixes

  • Project exclude patterns now match Windows drive-letter URI paths, and workspace startup loads files from configured include paths. Thanks @ckeller42, #3107, fixes #2546

  • Fixed rendering of self-loops in sequence diagrams (56772b3)

  • Fixed code completion in dynamic views (224b586)

v1.59.0

Choose a tag to compare

@likec4-ci likec4-ci released this 19 Jul 13:49
Immutable release. Only release title and notes can be modified.
97946d3

🚀 Features

  • Flow Control in Dynamic Views:

    Besides parallel, steps can now be grouped into flow blocks with an optional title -- opt, loop and break blocks, alt with when / else branches, and try / catch / finally. Sequence diagrams render these as nested frames, actors stay visible when zoomed in, and during a walkthrough a docked Sequence Outline panel shows the flow as a collapsible tree. #3084, resolves #2745, #2993, #3074

    Docs

  • Title, Description and Links on Relationship Kinds:
    Define title, description and link on relationship kinds in the specification, the same way as for element kinds. These properties are inherited by every relationship of that kind and can be overridden per relationship. Thanks @farhan523, #3053, closes #2260

  • Tags on Relationship Kinds:
    Define tags on relationship kinds in the specification. Tags are inherited by every relationship of that kind (merged with the relationship's own tags), so they can be used in view predicates like where tag is #tcp. Thanks @farhan523, #3083, closes #2533

  • Programmatic Enrichment and DSL Writeback:
    New SDK APIs to seed a Builder from a loaded workspace and write it back to .c4 DSL: Builder.fromParsed(data, mode?), LikeC4.parsedModel(), LikeC4.toBuilder(), LikeC4.toTypedBuilder(), LikeC4.toDSL(), and the Node-only writeDSL() helper. The DSL round-trip is intentionally lossy -- comments, source positions and original formatting are not preserved. #2984, resolves #2833

  • Diagram Accessibility Improvements:
    Diagrams now expose node and relationship text to assistive technologies and allow focused nodes and relationships to be activated from the keyboard. Added keyboard zoom shortcuts for focused diagrams and made zoomable diagrams keyboard-focusable. Thanks @ckeller42, #2990, #3056, fixes #2988, #2915

  • View Description Tooltip in Navigation Panel:
    Hovering a view in the navigation menu now reveals its complete description in a tooltip, so long (truncated) descriptions stay readable. Thanks @farhan523, #3060, closes #2933

🐞 Bug Fixes

  • Inherit relationship kind styles in dynamic views. Thanks @ckeller42, #3055, fixes #2916

  • Fixed EMFILE: too many open files, watch crash in likec4 serve / dev on large repositories -- the file watcher now honors the project's exclude patterns. Thanks @Vinceveve, #3058

  • Fixed project exclude patterns so they also filter matching files loaded through include.paths. Thanks @ckeller42, #3093

  • Keep generated dot, d2, mermaid, and plantuml files inside the requested output directory when views come from external include paths. Thanks @ckeller42, #3094

  • Stop stdio MCP servers when the client closes stdin, so file watchers are cleaned up instead of leaving orphaned processes. Thanks @ckeller42, #3097

  • Relationships browser: keep the direct parent of leaf elements when flattening hierarchy, so a nested component's owner stays visible. Thanks @kindasorrow, #3099

  • Fixed sidebar navigation drawer rendering every view as an empty expandable folder instead of a clickable leaf. Thanks @kindasorrow, #3089

v1.58.0

Choose a tag to compare

@likec4-ci likec4-ci released this 05 Jun 12:31
Immutable release. Only release title and notes can be modified.
510a368

🚀 Features

  • Delete Elements/Edges in the Editor:
    Select nodes and/or edges in the diagram editor and press delete to remove them from the view. Edges connected to a deleted node are dropped automatically, and the change is added to undo/redo history. Not available for dynamic views.

  • Edit Edge Label Positions:
    Select a relationship edge and drag its label to reposition it; the position is saved to the manual layout with undo/redo. A manually placed label moves together with the edge when its curve is reshaped, keeping its offset.

  • Accurate Tag Text Color via APCA Contrast:
    Tags with custom hex / rgb colors now get an accurate text color derived from the background via APCA contrast, instead of the previous CSS-filter workaround. Thanks @farhan523, #2978, resolves #2143

🐞 Bug Fixes

  • Fixed export png / export jpg failing in the Docker image with browserType.launch: Executable doesn't exist. The bundled Playwright and the installed Chromium browsers are now kept in sync. #3032, fixes #2961

  • Fixed favicon 404 in likec4 build --output-single-file by inlining the favicon as a base64 data URI so the single HTML file stays self-contained. Thanks @MichaelMcCodington, #3030

  • Fixed deployment relationship filters so source and target metadata predicates use deployed instance metadata. Thanks @ckeller42, #2986

  • Nested parallel blocks in dynamic views now produce a clear validation error (Nested parallel blocks are not allowed) instead of a cryptic parser error. Thanks @farhan523, #2985, resolves #988

  • Fixed "apply latest" action incorrectly triggering the new AI layout enhancement. #2995

v1.57.0

Choose a tag to compare

@likec4-ci likec4-ci released this 22 May 14:29
Immutable release. Only release title and notes can be modified.
1533fd6

🚀 Features

  • Multiple Relationships in Views:
    Support expanding merged relationships into separate edges with the multiple flag. Set multiple true on a relationship kind in specification, or per-view via with { multiple true }, to show each relationship as its own edge with its own label instead of merging them into a single [...] edge. Thanks @galuszkak, #2939, resolves #663

  • includeAncestors for Deployment Views:
    Add includeAncestors property to deployment views to include all ancestors of visible nodes. Thanks @Kiiv, #2935, fixes #1483

  • --public option for likec4 build and likec4 start:
    Specify a directory that Vite serves and copies as-is into the output (Vite's publicDir). Files in this directory are preserved in the build output, including when --output-single-file is used. Thanks @farhan523, #2968, resolves #1941

  • color-scheme Attribute for Web Component:
    Add color-scheme attribute to the web component to force light or dark mode. Thanks @dkapitan, #2955

  • Experimental: AI-Assisted Semantic Layout:
    Add AI layout advisor that analyzes diagram semantics and suggests graphviz layout hints (rank constraints, edge weights, invisible edges) for more readable and visually balanced diagrams. Includes a VSCode chat participant, command, and MCP tool for triggering AI layout enhancement. This feature is experimental and may change in future releases. Documentation is coming later; reach out to us on Discord. #2878

  • Image Export Options:
    Add --description and --notation options to PNG and JPEG exports to include the view title, Markdown description, and non-overlapping view notation in generated images. Thanks @ckeller42, #2950

  • --hmr-port option for likec4 start:
    Specify the HMR WebSocket port via --hmr-port or the HMR_PORT environment variable. If neither is provided, a free port is auto-discovered in the range 24678–24690. Thanks @kieronlanning, #2947

  • Emacs Setup Documentation:
    Expand the Emacs section in the editors docs with a complete setup using @likec4/lsp -- covers both Eglot (Emacs 29+) and lsp-mode, with a likec4-mode definition for .c4 / .likec4 files. Thanks @farhan523, #2972, resolves #2268

  • AspireC4 Community Docs:
    Add community docs page for AspireC4 -- a .NET Aspire extension that auto-generates live LikeC4 architecture diagrams from the Aspire resource graph. Thanks @kieronlanning, #2952

🐞 Bug Fixes

  • Fixed relationship popovers not showing in static embedded views generated with likec4 build. Thanks @ckeller42, #2969, fixes #2962

  • Fixed expanded embedded LikeC4 views rendering with a transparent overlay background. Thanks @ckeller42, #2967, fixes #2965

  • Fixed formatter to preserve metadata arrays instead of converting them to strings. Thanks @ckeller42, #2944

  • Allow reserved keywords such as group as metadata keys. Thanks @ckeller42, #2948, fixes #2932

  • Fixed CSS bundling for react/webcomponents when rendered in shadow root.

  • Fixed single-project overview page always showing the CLI --title value instead of the title from likec4.config.json. Thanks @kieronlanning, #2952

  • Fixed validation of browser property in webcomponent (now accepts string values "true"/"false"/"yes"/"no"), closes #2936

  • Fixed overlay animations (relationships browser, element details, search) glitching on open/close. #2976

  • Upgraded pnpm to 11

v1.56.0

Choose a tag to compare

@likec4-ci likec4-ci released this 28 Apr 13:09
Immutable release. Only release title and notes can be modified.
177b98e

🚀 Features

  • Improved Color Palette:
    Element rendering now uses a more accurate color palette that better matches the color specified by the user. Thanks @Kiiv, #2912, closes #2101

  • On-demand Icon Loading from CDN:
    Icons are now loaded on demand from CDN instead of bundling all icon components, significantly reducing bundle size. Icons are resolved from local cache, then @likec4/icons package, then fetched from icons.like-c4.dev. #2906

  • Extracted @likec4/spa Package:
    Web app extracted into a separate @likec4/spa package, decoupling it from the CLI for better modularity, faster builds and smaller bundles. #2689

  • Apply View Changes from dev server:
    Support applying view changes in vite-plugin/CLI (previously was possible only in IDE). #2904

🐞 Bug Fixes

  • Fixed greedy output panel that stole focus from the editor on errors in VSCode extension

  • Fixed left-click on external links in VSCode extension diagram preview -- links in element details now open in the default browser on left-click. Thanks @ckeller42, #2908

  • Improved edge label readability and fixed color token references. #2918

  • Updated Mantine to 9.1.0 -- the light variant of Buttons, Alerts, and ActionIcons now uses solid colors instead of transparency. #2921

Full Changelog: v1.55.1...v1.56.0

v1.55.1

Choose a tag to compare

@likec4-ci likec4-ci released this 15 Apr 19:01
Immutable release. Only release title and notes can be modified.
1f8a0b7

🚀 Features

  • JPG Export:
    Add JPEG export support for architecture diagrams -- new "Export as .jpg" option in the web UI and likec4 export jpg CLI command with --quality option. JPEG renders with a solid background adapting to the current theme. #2899, closes #2892

🐞 Bug Fixes

  • Fixed text overflow in relationship popover and element details card when displaying long names, titles, and technology strings. Thanks @ckeller42, #2894

  • Fixed search overlay persisting after navigating to a view via Ctrl+K search. Thanks @ckeller42, #2875

  • Fixed programmatic config (likec4.config.ts) not being loaded in VSCode extension and standalone LSP. #2896

  • Allow using reserved keyword relationship as an identifier in LikeC4 DSL (e.g. as element kind). #2897

  • Improved edge visibility in dark mode by increasing background stroke opacity. Thanks @ckeller42, #2891

Full Changelog: v1.55.0...v1.55.1

v1.55.0

Choose a tag to compare

@likec4-ci likec4-ci released this 13 Apr 08:17
Immutable release. Only release title and notes can be modified.
eb57e11

🚀 Features

  • --theme option for likec4 build:
    Set the default color scheme (light/dark) for the generated static website. Thanks @ckeller42, #2874

  • likec4.exclude VS Code setting:
    Exclude files and folders from LikeC4 processing via glob patterns. #2861

  • Standalone @likec4/mcp package:
    MCP server and tools extracted into a dedicated package for reuse in other projects. #2877

🐞 Bug Fixes

  • Fixed relationship styles (color, line, head, tail) not inheriting from specification in dynamic views, closes #2797. #2864

  • Fixed custom element description and summary being overwritten by specification defaults in Builder API, closes #2795. #2860

  • Fixed wildcard predicate evaluation with where filter applying only to root/scoped elements instead of all elements, closes #2837. #2858

  • Fixed crash on views with manual layout in dev mode (applyManualLayout invariant). Thanks @ckeller42, #2883

  • Fixed codegen react and view hooks not applying manual layouts. Thanks @ckeller42, #2876

  • Fixed external links in VSCode preview opening blank page instead of browser, closes #2422. Thanks @ckeller42, #2880

  • Allow data: URIs in markdown image src. Thanks @ckeller42, #2881, fixes #2871

  • Improved MCP and agent skill documentation for LeanIX bridge and Draw.io workflows. Thanks @sraphaz, #2828

Full Changelog: v1.54.0...v1.55.0

v1.54.0

Choose a tag to compare

@likec4-ci likec4-ci released this 07 Apr 20:31
Immutable release. Only release title and notes can be modified.
802ec74

🚀 Features

  • Standalone LSP Package:
    New @likec4/lsp package -- a self-contained, fully-bundled CJS language server with zero runtime dependencies for third-party editor integrations (Neovim, Zed, etc.). Fixes #2840, #2843

  • list-icons CLI Command:
    New likec4 list-icons command to list all available built-in icons with --format text|json and --group filter options. #2832

  • LikeC4 DSL Agent Skill:
    AI agents can now write correct LikeC4 code without hallucinating syntax. Install skills via npx skills add https://likec4.dev/. Thanks @vincent067, @a-scolan, Resolves #2636, #2782

🐞 Bug Fixes

  • Fixed dynamic view variant setting not being honored when navigating to a dynamic view, closes #2802. Thanks @kavishkartha05, #2827

  • Fixed manual layout alignment tools (Align Left, Right, Center, Top, Middle, Bottom) not working, closes #2771, #2791

  • Fixed LikeC4 generator not emitting element name in DSL output, closes #2815. Thanks @kavishkartha05, #2825

  • Fixed element names starting with underscore followed by digit (e.g. _1password) being incorrectly rejected by the parser, closes #2836, #2845

  • Improved navigation from VSCode preview panel to sources by showing editor in a different tab group #2826

  • Validate LeanIX mapping partials before merge; align exports and mapping registry behaviour with specs. Thanks @sraphaz, #2829

  • Hardened likec4:icons virtual module literals for CodeQL; raised floors for transitive dependencies. Thanks @sraphaz, #2831

v1.53.0

Choose a tag to compare

@likec4-ci likec4-ci released this 20 Mar 16:02
Immutable release. Only release title and notes can be modified.
8ab9fda

🚀 Features

  • Metadata Filtering in View Predicates:
    Filter elements and relations by metadata key existence (where metadata.key) or value (where metadata.key = 'value'). Works with != for negation and supports source.metadata / target.metadata for relation participants. Thanks @galuszkak, #2769

  • LeanIX Bridge Integration:
    New @likec4/leanix-bridge package for syncing architecture models with LeanIX. Includes identity manifest, inventory snapshots, reconciliation, drift reports, governance checks, and ADR generation. CLI adds gen leanix-inventory-snapshot, gen leanix-reconcile, and sync leanix commands. Draw.io export gains a --profile leanix option for bridge-managed metadata round-trip. Thanks @sraphaz, #2746, #2768

  • Landing Page Configuration:
    New landingPage config option to control landing page behavior: redirect: true to skip the landing page and go directly to the index view, and include / exclude selectors to filter which views appear in the landing page grid. Thanks @purple52, #2733

  • Improved likec4 validate Command:
    Fix exit code (now properly exits with 1 on validation failure), add --json flag for structured JSON output, --file flag to filter errors to specific files, --no-layout flag to skip layout drift checks, and --project support for multi-project workspaces. #2790

🐞 Bug Fixes

  • Fixed drag behavior for group nodes #2785

  • Fixed scroll in walkthrough notes panel, closes #2729

  • Fixed web extension failing to start language server, closes #2702

  • Restored Markdown syntax highlighting in triple-quoted strings in VSCode #2785

  • Added configurable Node.js path for language server runtime in VSCode #2773

  • Draw.io: improved person shape inference on re-import for round-trip fidelity. Thanks @sraphaz, #2685